public class ModuleRules
extends java.lang.Object
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 and Description |
---|
ModuleRules()
Constructs an empty ModuleRules.
|
Modifier and Type | Method and Description |
---|---|
java.lang.Object |
clone() |
void |
defineRule(MapMatcher condition,
java.lang.Object rule)
Defines a new rule for the given condition.
|
void |
dump(java.lang.String prefix)
Dump the list of rules to
Message.debug(String) |
java.util.Map |
getAllRules()
Returns an unmodifiable view of all the rules defined on this ModuleRules.
|
java.lang.Object |
getRule(ModuleId mid)
Returns the rule object matching the given
ModuleId , or null if no rule
applies. |
java.lang.Object |
getRule(ModuleId mid,
Filter filter)
|
java.lang.Object |
getRule(ModuleRevisionId mrid)
Returns the rule object matching the given
ModuleRevisionId , or null if
no rule applies. |
java.lang.Object |
getRule(ModuleRevisionId mrid,
Filter filter)
Returns the rule object matching the given
ModuleRevisionId and accepted by the given
Filter , or null if no rule applies. |
java.lang.Object[] |
getRules(ModuleId mid)
Returns the rules objects matching the given
ModuleId , or an empty array if no rule
applies. |
java.lang.Object[] |
getRules(ModuleRevisionId mrid,
Filter filter)
Returns the rules object matching the given
ModuleRevisionId and accepted by the
given Filter , or an empty array if no rule applies. |
public void defineRule(MapMatcher condition, java.lang.Object rule)
condition
- the condition for which the rule should be applied. Must not be null
.rule
- the rule to apply. Must not be null
.public java.lang.Object getRule(ModuleId mid)
ModuleId
, or null
if no rule
applies.mid
- the ModuleId
to search the rule for. Must not be null
.ModuleId
, or null
if no rule
applies.getRule(ModuleId, Filter)
public java.lang.Object[] getRules(ModuleId mid)
ModuleId
, or an empty array if no rule
applies.public java.lang.Object getRule(ModuleRevisionId mrid)
ModuleRevisionId
, or null
if
no rule applies.mrid
- the ModuleRevisionId
to search the rule for. Must not be null
.ModuleRevisionId
, or null
if
no rule applies.getRule(ModuleRevisionId, Filter)
public java.lang.Object getRule(ModuleId mid, Filter filter)
ModuleId
and accepted by the given
Filter
, or null
if no rule applies.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
.ModuleId
, or null
if no rule
applies.getRule(ModuleRevisionId, Filter)
public java.lang.Object getRule(ModuleRevisionId mrid, Filter filter)
ModuleRevisionId
and accepted by the given
Filter
, or null
if no rule applies.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
.ModuleRevisionId
, or null
if
no rule applies.getRule(ModuleRevisionId)
public java.lang.Object[] getRules(ModuleRevisionId mrid, Filter filter)
ModuleRevisionId
and accepted by the
given Filter
, or an empty array if no rule applies.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
.ModuleRevisionId
.public void dump(java.lang.String prefix)
Message.debug(String)
prefix
- the prefix to use for each line dumpedpublic java.util.Map getAllRules()
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.
public java.lang.Object clone()
clone
in class java.lang.Object