org.apache.ivy.plugins.version
Class LatestVersionMatcher

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

public class LatestVersionMatcher
extends AbstractVersionMatcher


Constructor Summary
LatestVersionMatcher()
           
 
Method Summary
 boolean accept(ModuleRevisionId askedMrid, ModuleDescriptor foundMD)
          Indicates if this version matcher considers that the module found matches the asked one.
 boolean accept(ModuleRevisionId askedMrid, ModuleRevisionId foundMrid)
          Indicates if this version matcher considers that the module revision found matches the asked one.
 int compare(ModuleRevisionId askedMrid, ModuleRevisionId foundMrid, java.util.Comparator staticComparator)
          If we don't need a module descriptor we can consider the dynamic revision to be greater.
 boolean isDynamic(ModuleRevisionId askedMrid)
          Indicates if the given asked ModuleRevisionId should be considered as dynamic for the current VersionMatcher or not.
 boolean needModuleDescriptor(ModuleRevisionId askedMrid, ModuleRevisionId foundMrid)
          Indicates if this VersionMatcher needs module descriptors to determine if a module revision matches the asked one.
 
Methods inherited from class org.apache.ivy.plugins.version.AbstractVersionMatcher
getName, getSettings, setName, setSettings, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

LatestVersionMatcher

public LatestVersionMatcher()
Method Detail

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.

Returns:

needModuleDescriptor

public boolean needModuleDescriptor(ModuleRevisionId askedMrid,
                                    ModuleRevisionId foundMrid)
Description copied from interface: VersionMatcher
Indicates if this VersionMatcher needs module descriptors to determine if a module revision matches the asked one. Note that returning true in this method may imply big performance issues.

Specified by:
needModuleDescriptor in interface VersionMatcher
Overrides:
needModuleDescriptor in class AbstractVersionMatcher
Returns:

accept

public boolean accept(ModuleRevisionId askedMrid,
                      ModuleDescriptor foundMD)
Description copied from interface: VersionMatcher
Indicates if this version matcher considers that the module found matches the asked one. This method can be called even needModuleDescriptor(ModuleRevisionId askedMrid, ModuleRevisionId foundMrid) returns false, so it is required to implement it in any case, a usual default implementation being: return accept(askedMrid, foundMD.getResolvedModuleRevisionId());

Specified by:
accept in interface VersionMatcher
Overrides:
accept in class AbstractVersionMatcher
Returns:

compare

public int compare(ModuleRevisionId askedMrid,
                   ModuleRevisionId foundMrid,
                   java.util.Comparator staticComparator)
If we don't need a module descriptor we can consider the dynamic revision to be greater. If we need a module descriptor then we can't know which one is greater and return 0.

Specified by:
compare in interface VersionMatcher
Overrides:
compare in class AbstractVersionMatcher
Parameters:
askedMrid - the dynamic revision to compare
foundMrid - the static revision to compare
staticComparator - a comparator which can be used to compare static revisions
Returns:
0 if it's not possible to know which one is greater, greater than 0 if askedMrid should be considered greater, lower than 0 if it can't be consider greater