Class VersionRangeMatcher

java.lang.Object
org.apache.ivy.plugins.version.AbstractVersionMatcher
org.apache.ivy.plugins.version.VersionRangeMatcher
All Implemented Interfaces:
IvySettingsAware, VersionMatcher

public class VersionRangeMatcher extends AbstractVersionMatcher
Matches version ranges: [1.0,2.0] matches all versions greater or equal to 1.0 and lower or equal to 2.0 [1.0,2.0[ matches all versions greater or equal to 1.0 and lower than 2.0 ]1.0,2.0] matches all versions greater than 1.0 and lower or equal to 2.0 ]1.0,2.0[ matches all versions greater than 1.0 and lower than 2.0 [1.0,) matches all versions greater or equal to 1.0 ]1.0,) matches all versions greater than 1.0 (,2.0] matches all versions lower or equal to 2.0 (,2.0[ matches all versions lower than 2.0 This class uses a latest strategy to compare revisions. If none is set, it uses the default one of the ivy instance set through setIvy(). If neither a latest strategy nor a ivy instance is set, an IllegalStateException will be thrown when calling accept(). Note that it can't work with latest time strategy, cause no time is known for the limits of the range. Therefore only purely revision based LatestStrategy can be used.
  • Constructor Details

    • VersionRangeMatcher

      public VersionRangeMatcher()
    • VersionRangeMatcher

      public VersionRangeMatcher(String name)
    • VersionRangeMatcher

      public VersionRangeMatcher(String name, LatestStrategy strategy)
  • Method Details

    • isDynamic

      public boolean isDynamic(ModuleRevisionId askedMrid)
      Description copied from interface: VersionMatcher
      Indicates if the given asked ModuleRevisionId should be considered as dynamic for the current VersionMatcher or not.
      Parameters:
      askedMrid - the dependency module revision id as asked by a module
      Returns:
      true if this revision is considered as a dynamic one, false otherwise
    • accept

      public boolean accept(ModuleRevisionId askedMrid, ModuleRevisionId foundMrid)
      Description copied from interface: VersionMatcher
      Indicates if this version matcher considers that the module revision found matches the asked one.
      Parameters:
      askedMrid - ModuleRevisionId
      foundMrid - ModuleRevisionId
      Returns:
      boolean
    • compare

      public int compare(ModuleRevisionId askedMrid, ModuleRevisionId foundMrid, Comparator<ModuleRevisionId> staticComparator)
      Description copied from class: AbstractVersionMatcher
      This method should be overridden in most cases, because it uses the default contract to return 1 when it's not possible to know which revision is greater.
      Specified by:
      compare in interface VersionMatcher
      Overrides:
      compare in class AbstractVersionMatcher
      Parameters:
      askedMrid - ModuleRevisionId
      foundMrid - ModuleRevisionId
      staticComparator - Comparator
      Returns:
      int
    • getLatestStrategy

      public LatestStrategy getLatestStrategy()
    • setLatestStrategy

      public void setLatestStrategy(LatestStrategy latestStrategy)
    • setLatest

      public void setLatest(String latestStrategyName)