Package cdc.issues.rules
Interface RulesCatalog
-
- All Known Implementing Classes:
CompositeRulesCatalog,DefaultRulesCatalog
public interface RulesCatalogInterface implemented by classes that manage and domains, rules and associated services.- Author:
- Damien Carbonne
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default voidapply(Project project, IssuesHandler<Issue> issuesHandler, cdc.util.events.ProgressController controller)Checks all data associated to a project with available enabled rules.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.default <T> voidapply(String project, String snapshot, ConfiguredRule configuredRule, Class<T> dataClass, 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.default <T> voidapply(String project, String snapshot, Profile profile, DataSource<T> source, IssuesHandler<Issue> issuesHandler, cdc.util.events.ProgressController controller)Checks all possible rules enabled in a profile and matching a data source.default <T> IssuesDetector<T>createIssuesDetector(String project, String snapshot, ConfiguredRule configuredRule, Class<T> dataClass)Creates and configures one IssuesDetector for one rule and parameters.default <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.Set<IssuesDetector.Descriptor<?>>getDescriptors()<T> Set<IssuesDetector.Descriptor<T>>getDescriptors(Class<T> dataClass)Returns a set of all Descriptors registered for a data class.Set<String>getDomains()Set<Rule>getRules()default Set<Rule>getRules(String domain)Returns a set of all known rules belonging to a domain.default booleanhasDescriptor(Rule rule, Class<?> dataClass)Returnstrueif anIssuesDetector.Descriptoris registered for a Rule and a Class.default booleanhasDomain(String domain)default booleanhasRule(Rule rule)Returnstrueif a rule is registered.
-
-
-
Method Detail
-
hasDomain
default boolean hasDomain(String domain)
- Parameters:
domain- The domain- Returns:
trueifdomainis known.
-
hasRule
default boolean hasRule(Rule rule)
Returnstrueif a rule is registered.- Parameters:
rule- The rule- Returns:
trueifruleis registered.
-
getRules
default Set<Rule> getRules(String domain)
Returns a set of all known rules belonging to a domain.- Parameters:
domain- The domain.- Returns:
- A set of rules belonging to
domain.
-
getDescriptors
Set<IssuesDetector.Descriptor<?>> getDescriptors()
- Returns:
- A set of all known
IssuesDetector.Descriptors.
-
getDescriptors
<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.
-
getDescriptorOrNull
<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
default <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.
-
hasDescriptor
default 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.
-
createIssuesDetector
default <T> IssuesDetector<T> createIssuesDetector(String project, String snapshot, ConfiguredRule configuredRule, Class<T> dataClass)
Creates and configures one IssuesDetector for one rule and parameters.- Type Parameters:
T- The data type.- Parameters:
project- The project for which the detector is created.snapshot- The snapshot for which the detector is created.configuredRule- The configured rule.dataClass- The data class.- Returns:
- An IssueDetector matching
configuredRuleanddataClass, and configured withprojectandsnapshot. - Throws:
cdc.util.lang.NotFoundException- When no matching IssuesDetector could be found.
-
apply
default <T> void apply(String project, String snapshot, ConfiguredRule configuredRule, Class<T> dataClass, 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:
project- The project for which the detector is created.snapshot- The snapshot for which the detector is created.configuredRule- The configured rule.dataClass- The data class.spliterator- The data spliterator.issuesHandler- The issues handler that will collect issues.controller- The progress controller.
-
apply
default <T> void apply(String project, String snapshot, Profile profile, DataSource<T> source, IssuesHandler<Issue> issuesHandler, cdc.util.events.ProgressController controller)
Checks all possible rules enabled in a profile and matching a data source.WARNING: A enabled rule for which no appropriate descriptor is declared in this catalog won't be checked.
- Type Parameters:
T- The data type.- Parameters:
project- The project for which the detector is created.snapshot- The snapshot for which the detector is created.profile- The profile.source- The data source.issuesHandler- The issues handler that will collect issues.controller- The progress controller.
-
apply
default void apply(Project project, IssuesHandler<Issue> issuesHandler, cdc.util.events.ProgressController controller)
Checks all data associated to a project with available enabled rules.- Parameters:
project- The project.issuesHandler- The issues handler that will collect issues.controller- The progress controller.
-
apply
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.
-
-