1 /* 2 * Licensed under the Apache License, Version 2.0 (the "License"); 3 * you may not use this file except in compliance with the License. 4 * You may obtain a copy of the License at 5 * 6 * http://www.apache.org/licenses/LICENSE-2.0 7 * 8 * Unless required by applicable law or agreed to in writing, software 9 * distributed under the License is distributed on an "AS IS" BASIS, 10 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 * See the License for the specific language governing permissions and 12 * limitations under the License. 13 */ 14 15 package org.basepom.mojo.dvc.strategy; 16 17 import org.apache.maven.artifact.versioning.ComparableVersion; 18 19 /** 20 * A strategy implementation decides whether two versions are compatible with each other. 21 */ 22 public interface Strategy { 23 24 /** 25 * @return The name of the strategy. 26 */ 27 String getName(); 28 29 /** 30 * @param expectedVersion The artifact version expected (artifact version b). 31 * @param resolvedVersion The proposed artifact version (artifact version a). 32 * @return True if an artifact with Version b can be replaced by an artifact with Version a. 33 */ 34 boolean isCompatible(ComparableVersion expectedVersion, ComparableVersion resolvedVersion); 35 } 36