Class FromAnnotationsRuleSet

  • All Implemented Interfaces:
    RuleSet

    public final class FromAnnotationsRuleSet
    extends java.lang.Object
    implements RuleSet
    A RuleSet implementation that's able to inject Rules created with the annotations analysis.
    Since:
    2.1
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void addMappedClass​(java.lang.Class<?> clazz)
      Remember that this RuleSet is able to build Digester mapping rules for the input type.
      void addRuleInstances​(Digester digester)
      Add the set of Rule instances defined in this RuleSet to the specified Digester instance, associating them with our namespace URI (if any).
      <A extends java.lang.annotation.Annotation,​E extends java.lang.reflect.AnnotatedElement,​R extends Rule,​T extends AnnotationRuleProvider<A,​E,​R>>
      void
      addRuleProvider​(java.lang.String pattern, java.lang.Class<T> klass, A annotation, E element)
      Builds and register an AnnotationRuleProvider for a specific pattern.
      void addRuleProvider​(java.lang.String pattern, AnnotationRuleProvider<? extends java.lang.annotation.Annotation,​? extends java.lang.reflect.AnnotatedElement,​? extends Rule> ruleProvider)
      Register an AnnotationRuleProvider for a specific pattern.
      void addRules​(java.lang.Class<?> target)
      Analyzes the target class and adds the AnnotationRuleProviders to this FromAnnotationsRuleSet.
      void addRulesProviderFrom​(FromAnnotationsRuleSet ruleSet)
      Add created AnnotationRuleProviders created in another analysis session.
      java.lang.String getNamespaceURI()
      Return the namespace URI that will be applied to all Rule instances created from this RuleSet.
      <T extends AnnotationRuleProvider<? extends java.lang.annotation.Annotation,​? extends java.lang.reflect.AnnotatedElement,​? extends Rule>>
      T
      getProvider​(java.lang.String pattern, java.lang.Class<T> providerClass)
      Retrieves a specific instance of the AnnotationRuleProvider for the input pattern.
      private java.util.Map<java.lang.String,​java.util.List<AnnotationRuleProvider<java.lang.annotation.Annotation,​java.lang.reflect.AnnotatedElement,​Rule>>> getRules()
      Returns the data structure the patterns/AnnotationRuleProvider pairs.
      protected boolean mapsClass​(java.lang.Class<?> clazz)
      Checks if this RuleSet builds Digester mapping rules for the input type.
      void setNamespaceURI​(java.lang.String namespaceURI)
      Sets the namespace URI that will be applied to all Rule instances created from this RuleSet.
      java.lang.String toString()
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • rules

        private final java.util.Map<java.lang.String,​java.util.List<AnnotationRuleProvider<java.lang.annotation.Annotation,​java.lang.reflect.AnnotatedElement,​Rule>>> rules
        The data structure that stores the patterns/AnnotationRuleProvider pairs.
      • mappedClasses

        private final java.util.Set<java.lang.Class<?>> mappedClasses
        Maintains all the classes that this RuleSet produces mapping for.
      • namespaceURI

        private volatile java.lang.String namespaceURI
        The namespace URI.
    • Constructor Detail

      • FromAnnotationsRuleSet

        protected FromAnnotationsRuleSet​(DigesterLoader digesterLoader)
        Created a new FromAnnotationsRuleSet instance.
        Parameters:
        digesterLoader - the parent DigesterLoader.
    • Method Detail

      • addRuleInstances

        public void addRuleInstances​(Digester digester)
        Add the set of Rule instances defined in this RuleSet to the specified Digester instance, associating them with our namespace URI (if any). This method should only be called by a Digester instance.
        Specified by:
        addRuleInstances in interface RuleSet
        Parameters:
        digester - Digester instance to which the new Rule instances should be added.
      • addRuleProvider

        public <A extends java.lang.annotation.Annotation,​E extends java.lang.reflect.AnnotatedElement,​R extends Rule,​T extends AnnotationRuleProvider<A,​E,​R>> void addRuleProvider​(java.lang.String pattern,
                                                                                                                                                                                                                  java.lang.Class<T> klass,
                                                                                                                                                                                                                  A annotation,
                                                                                                                                                                                                                  E element)
        Builds and register an AnnotationRuleProvider for a specific pattern.
        Type Parameters:
        T - the AnnotationRuleProvider type.
        Parameters:
        pattern - the pattern has to be associated to the rule provider.
        klass - the AnnotationRuleProvider type has to be instantiated.
        annotation - the current visited annotation.
        element - the current visited element.
      • addRuleProvider

        public void addRuleProvider​(java.lang.String pattern,
                                    AnnotationRuleProvider<? extends java.lang.annotation.Annotation,​? extends java.lang.reflect.AnnotatedElement,​? extends Rule> ruleProvider)
        Register an AnnotationRuleProvider for a specific pattern.
        Parameters:
        pattern - the pattern has to be associated to the rule provider.
        ruleProvider - the provider that builds the digester rule.
      • addRulesProviderFrom

        public void addRulesProviderFrom​(FromAnnotationsRuleSet ruleSet)
        Add created AnnotationRuleProviders created in another analysis session.
        Parameters:
        ruleSet - the RuleSet created in another analysis session.
      • mapsClass

        protected boolean mapsClass​(java.lang.Class<?> clazz)
        Checks if this RuleSet builds Digester mapping rules for the input type.
        Parameters:
        clazz - the input type.
        Returns:
        true, if this RuleSet builds Digester mapping rules for the input type, false otherwise.
      • addMappedClass

        protected void addMappedClass​(java.lang.Class<?> clazz)
        Remember that this RuleSet is able to build Digester mapping rules for the input type.
        Parameters:
        clazz - the input type.
      • getNamespaceURI

        public java.lang.String getNamespaceURI()
        Return the namespace URI that will be applied to all Rule instances created from this RuleSet.
        Specified by:
        getNamespaceURI in interface RuleSet
      • setNamespaceURI

        public void setNamespaceURI​(java.lang.String namespaceURI)
        Sets the namespace URI that will be applied to all Rule instances created from this RuleSet.
        Parameters:
        namespaceURI - the namespace URI that will be applied to all Rule instances created from this RuleSet.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object