private void setUpOverrideCompatibilityChanges(JarArchiveComparatorOptions comparatorOptions, PluginParameters pluginParameters) throws MojoFailureException { if (pluginParameters.getParameterParam() != null && pluginParameters.getParameterParam().getOverrideCompatibilityChangeParameters() != null) { List<Parameter.OverrideCompatibilityChangeParameter> overrideCompatibilityChangeParameters = pluginParameters.getParameterParam().getOverrideCompatibilityChangeParameters(); for (Parameter.OverrideCompatibilityChangeParameter configChange : overrideCompatibilityChangeParameters) { String compatibilityChange = configChange.getCompatibilityChange(); JApiCompatibilityChange foundChange = null; for (JApiCompatibilityChange change : JApiCompatibilityChange.values()) { if (change.name().equalsIgnoreCase(compatibilityChange)) { foundChange = change; break; } } if (foundChange == null) { throw new MojoFailureException("Unknown compatibility change '" + compatibilityChange + "'. Supported values: " + Joiner.on(',').join(JApiCompatibilityChange.values())); } JApiSemanticVersionLevel foundSemanticVersionLevel = foundChange.getSemanticVersionLevel(); String semanticVersionLevel = configChange.getSemanticVersionLevel(); for (JApiSemanticVersionLevel level : JApiSemanticVersionLevel.values()) { if (level.name().equalsIgnoreCase(semanticVersionLevel)) { foundSemanticVersionLevel = level; break; } } if (foundSemanticVersionLevel == null) { throw new MojoFailureException("Unknown semantic version level '" + semanticVersionLevel + "'. Supported values: " + Joiner.on(',').join(JApiSemanticVersionLevel.values())); } comparatorOptions.addOverrideCompatibilityChange(new JarArchiveComparatorOptions.OverrideCompatibilityChange(foundChange, configChange.isBinaryCompatible(), configChange.isSourceCompatible(), foundSemanticVersionLevel)); } } }