Package cdc.issues.api.rules
Class RulesCatalog
- java.lang.Object
-
- cdc.issues.api.rules.RulesCatalog
-
public class RulesCatalog extends Object
Catalog ofRules andIssuesDetector.Descriptors.- Author:
- Damien Carbonne
-
-
Constructor Summary
Constructors Constructor Description RulesCatalog()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <T> voidapply(IssuesDetector<T> detector, Spliterator<LocatedData<T>> spliterator, IssuesHandler<Issue> issuesHandler, cdc.util.events.ProgressController controller)Applies an IssuesDetector to data provided by a Spliterator.<T> voidapply(Rule rule, Class<T> dataClass, Params params, Spliterator<LocatedData<T>> spliterator, IssuesHandler<Issue> issuesHandler, cdc.util.events.ProgressController controller)Creates and configures an appropriate IssuesDetector, and applies it to data provided by a Spliterator.<T> voidapply(Class<T> dataClass, Params params, Spliterator<LocatedData<T>> spliterator, IssuesHandler<Issue> issuesHandler, cdc.util.events.ProgressController controller)Create all possible IssueDectectors for a data class, configures them with all supported rules, and apply them to data provided by a Spliterator.<T> IssuesDetector<T>createIssuesDetector(Rule rule, Class<T> dataClass, Params params)Creates and configures one IssuesDetector for one rule and parameters.<T> IssuesDetector.Descriptor<T>getDescriptor(Rule rule, Class<T> dataClass)Returns theIssuesDetector.Descriptorassociated to a Rule and a Class.<T> IssuesDetector.Descriptor<T>getDescriptorOrNull(Rule rule, Class<T> dataClass)Returns theIssuesDetector.Descriptorassociated to a Rule and a Class, ornull.<T> Set<IssuesDetector.Descriptor<T>>getDescriptors(Class<T> dataClass)Returns a set of all Descriptors registered for a data class.Set<IssuesDetector.Descriptor<?>>getDescriptpors()Set<String>getDomains()Set<RuleId>getRuleIds()RulegetRuleOrNull(RuleId id)Returns the rule associated to an id ornull.Collection<Rule>getRules()Set<Rule>getRules(String domain)Returns a set rules associated to a domain.booleanhasDescriptor(Rule rule, Class<?> dataClass)Returnstrueif anIssuesDetector.Descriptoris registered for a Rule and a Class.booleanisRegistered(Rule rule)<T> voidregister(IssuesDetector.Descriptor<T> descriptor)voidregister(Rule rule)
-
-
-
Method Detail
-
register
public void register(Rule rule)
-
register
public <T> void register(IssuesDetector.Descriptor<T> descriptor)
-
getDomains
public Set<String> getDomains()
- Returns:
- A set of domains for which rules are registered.
-
isRegistered
public boolean isRegistered(Rule rule)
-
getRules
public Collection<Rule> getRules()
- Returns:
- A set of known Rules.
-
getRules
public Set<Rule> getRules(String domain)
Returns a set rules associated to a domain.- Parameters:
domain- The domain.- Returns:
- A set of rules associated to a domain and registered in this catalog.
-
getRuleOrNull
public Rule getRuleOrNull(RuleId id)
Returns the rule associated to an id ornull.- Parameters:
id- The RuleId.- Returns:
- The Rule associated to
idornull.
-
getDescriptpors
public Set<IssuesDetector.Descriptor<?>> getDescriptpors()
- Returns:
- A set of all registered Descriptors.
-
getDescriptors
public <T> Set<IssuesDetector.Descriptor<T>> getDescriptors(Class<T> dataClass)
Returns a set of all Descriptors registered for a data class.- Type Parameters:
T- The data type.- Parameters:
dataClass- The data class.- Returns:
- A set of all Descriptors registered for
dataClass.
-
hasDescriptor
public boolean hasDescriptor(Rule rule, Class<?> dataClass)
Returnstrueif anIssuesDetector.Descriptoris registered for a Rule and a Class.- Parameters:
rule- The rule.dataClass- The data class- Returns:
trueif anIssuesDetector.Descriptoris registered forruleanddataClass.
-
getDescriptorOrNull
public <T> IssuesDetector.Descriptor<T> getDescriptorOrNull(Rule rule, Class<T> dataClass)
Returns theIssuesDetector.Descriptorassociated to a Rule and a Class, ornull.- Type Parameters:
T- The data type.- Parameters:
rule- The rule.dataClass- The data class.- Returns:
- The
IssuesDetector.Descriptorassociated toruleanddataClass, ornull.
-
getDescriptor
public <T> IssuesDetector.Descriptor<T> getDescriptor(Rule rule, Class<T> dataClass)
Returns theIssuesDetector.Descriptorassociated to a Rule and a Class.- Type Parameters:
T- The data type.- Parameters:
rule- The rule.dataClass- The data class.- Returns:
- The
IssuesDetector.Descriptorassociated toruleanddataClass. - Throws:
cdc.util.lang.NotFoundException- When no matching Descriptor could be found.
-
createIssuesDetector
public <T> IssuesDetector<T> createIssuesDetector(Rule rule, Class<T> dataClass, Params params)
Creates and configures one IssuesDetector for one rule and parameters.- Type Parameters:
T- The data type.- Parameters:
rule- The rule.dataClass- The data class.params- The detector effective parameters.- Returns:
- An IssueDetector matching
ruleanddataClassand configured withparams. - Throws:
cdc.util.lang.NotFoundException- When no matching IssuesDetector could be found.
-
apply
public <T> void apply(Rule rule, Class<T> dataClass, Params params, Spliterator<LocatedData<T>> spliterator, IssuesHandler<Issue> issuesHandler, cdc.util.events.ProgressController controller)
Creates and configures an appropriate IssuesDetector, and applies it to data provided by a Spliterator.- Type Parameters:
T- The data type.- Parameters:
rule- The rule.dataClass- The data class.params- The rule effective parameters.spliterator- The data spliterator.issuesHandler- The issues handler that will collect issues.controller- The progress controller.
-
apply
public <T> void apply(Class<T> dataClass, Params params, Spliterator<LocatedData<T>> spliterator, IssuesHandler<Issue> issuesHandler, cdc.util.events.ProgressController controller)
Create all possible IssueDectectors for a data class, configures them with all supported rules, and apply them to data provided by a Spliterator.Note: The passed params must be usable for all created detectors, each using the appropriate parameters and ignoring those that are meaningless.
- Type Parameters:
T- The data type.- Parameters:
dataClass- The data class.params- The rule effective parameters.spliterator- The data spliterator.issuesHandler- The issues handler that will collect issues.controller- The progress controller.
-
apply
public static <T> void apply(IssuesDetector<T> detector, Spliterator<LocatedData<T>> spliterator, IssuesHandler<Issue> issuesHandler, cdc.util.events.ProgressController controller)
Applies an IssuesDetector to data provided by a Spliterator.- Type Parameters:
T- The data type.- Parameters:
detector- The detector.spliterator- The data spliterator.issuesHandler- The issues handler that will collect issues.controller- The progress controller.
-
-