Class RulesCatalog

    • Constructor Detail

      • RulesCatalog

        public RulesCatalog()
    • Method Detail

      • register

        public void register​(Rule rule)
      • getDomains

        public Set<String> getDomains()
        Returns:
        A set of domains for which rules are registered.
      • isRegistered

        public boolean isRegistered​(Rule rule)
      • getRuleIds

        public Set<RuleId> getRuleIds()
        Returns:
        A set of known RuleIds.
      • 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 or null.
        Parameters:
        id - The RuleId.
        Returns:
        The Rule associated to id or null.
      • 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)
        Returns true if an IssuesDetector.Descriptor is registered for a Rule and a Class.
        Parameters:
        rule - The rule.
        dataClass - The data class
        Returns:
        true if an IssuesDetector.Descriptor is registered for rule and dataClass.
      • getDescriptor

        public <T> IssuesDetector.Descriptor<T> getDescriptor​(Rule rule,
                                                              Class<T> dataClass)
        Returns the IssuesDetector.Descriptor associated to a Rule and a Class.
        Type Parameters:
        T - The data type.
        Parameters:
        rule - The rule.
        dataClass - The data class.
        Returns:
        The IssuesDetector.Descriptor associated to rule and dataClass.
        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 rule and dataClass and configured with params.
        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.