Class ModuleRules<T>

java.lang.Object
org.apache.ivy.core.module.id.ModuleRules<T>
Type Parameters:
T - a type parameter

public class ModuleRules<T> extends Object
A list of module specific rules.

This class defines a list of module specific rules. For each module only one rule apply, sometimes none.

To know which rule to apply, they are configured using matchers. So you can define a rule applying to all module from one particular organization, or to all modules with a revisions matching a pattern, and so on.

Rules condition are evaluated in order, so the first matching rule is returned.

Rules themselves can be represented by any object, depending on the purpose of the rule (define which resolver to use, which TTL in cache, ...)

  • Constructor Details

    • ModuleRules

      public ModuleRules()
      Constructs an empty ModuleRules.
  • Method Details

    • defineRule

      public void defineRule(MapMatcher condition, T rule)
      Defines a new rule for the given condition.
      Parameters:
      condition - the condition for which the rule should be applied. Must not be null.
      rule - the rule to apply. Must not be null.
    • getRule

      public T getRule(ModuleId mid)
      Returns the rule object matching the given ModuleId, or null if no rule applies.
      Parameters:
      mid - the ModuleId to search the rule for. Must not be null.
      Returns:
      the rule object matching the given ModuleId, or null if no rule applies.
      See Also:
    • getRules

      public List<T> getRules(ModuleId mid)
      Returns the rules objects matching the given ModuleId, or an empty array if no rule applies.
      Parameters:
      mid - the ModuleId to search the rule for. Must not be null.
      Returns:
      an array of rule objects matching the given ModuleId.
    • getRule

      public T getRule(ModuleRevisionId mrid)
      Returns the rule object matching the given ModuleRevisionId, or null if no rule applies.
      Parameters:
      mrid - the ModuleRevisionId to search the rule for. Must not be null .
      Returns:
      the rule object matching the given ModuleRevisionId, or null if no rule applies.
      See Also:
    • getRule

      public T getRule(ModuleId mid, Filter<T> filter)
      Returns the rule object matching the given ModuleId and accepted by the given Filter, or null if no rule applies.
      Parameters:
      mid - the ModuleRevisionId to search the rule for. Must not be null .
      filter - the filter to use to filter the rule to return. The Filter.accept(Object) method will be called only with rule objects matching the given ModuleId, and the first rule object accepted by the filter will be returned. Must not be null.
      Returns:
      the rule object matching the given ModuleId, or null if no rule applies.
      See Also:
    • getRule

      public T getRule(ModuleRevisionId mrid, Filter<T> filter)
      Returns the rule object matching the given ModuleRevisionId and accepted by the given Filter, or null if no rule applies.
      Parameters:
      mrid - the ModuleRevisionId to search the rule for. Must not be null .
      filter - the filter to use to filter the rule to return. The Filter.accept(Object) method will be called only with rule objects matching the given ModuleRevisionId, and the first rule object accepted by the filter will be returned. Must not be null.
      Returns:
      the rule object matching the given ModuleRevisionId, or null if no rule applies.
      See Also:
    • getRules

      public List<T> getRules(ModuleRevisionId mrid, Filter<T> filter)
      Returns the rules object matching the given ModuleRevisionId and accepted by the given Filter, or an empty array if no rule applies.
      Parameters:
      mrid - the ModuleRevisionId to search the rule for. Must not be null .
      filter - the filter to use to filter the rule to return. The Filter.accept(Object) method will be called only with rule objects matching the given ModuleRevisionId. Must not be null.
      Returns:
      an array of rule objects matching the given ModuleRevisionId.
    • dump

      public void dump(String prefix)
      Dump the list of rules to Message.debug(String)
      Parameters:
      prefix - the prefix to use for each line dumped
    • getAllRules

      public Map<MapMatcher,T> getAllRules()
      Returns an unmodifiable view of all the rules defined on this ModuleRules.

      The rules are returned in a Map where they keys are the MapMatchers matching the rules object, and the values are the rules object themselves.

      Returns:
      an unmodifiable view of all the rules defined on this ModuleRules.
    • clone

      public ModuleRules<T> clone()
      Overrides:
      clone in class Object