We currently have two MergePolicy implementations that are wrappers around another MP: SortingMergePolicy and UpgradeIndexMergePolicy. A MergePolicyWrapper will simplify building additional such wrapping MPs by delegating all method calls to the wrapped instance, and allowing implementations to override only what they need.
Also, this issue removes the final modifier from MP public methods so that they can be delegated properly. See
LUCENE-7008 for a test failure that uncovered this issue.