Class DigesterLoader
java.lang.Object
org.apache.commons.digester.annotations.DigesterLoader
This class manages the creation of Digester instances analyzing target classes
annotated with digester annotations.
- Since:
- 2.1
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AnnotationRuleProviderFactory
private final RuleSetCache
In-memory LRU cache that stores already analyzed classes and relativeRuleSet
.private final DigesterLoaderHandlerFactory
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
DigesterLoader
(AnnotationRuleProviderFactory annotationRuleProviderFactory, DigesterLoaderHandlerFactory digesterLoaderHandlerFactory) Creates a newDigesterLoader
instance. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Add rules to an already created Digester instance, analyzing the digester annotations in the target class.void
addRulesTo
(Class<?> target, FromAnnotationsRuleSet ruleSet) Analyzes the target class and adds theAnnotationRuleProvider
s to the existingFromAnnotationsRuleSet
.createDigester
(Class<?> target) Creates a new digester which rules are defined by analyzing the digester annotations in the target class.protected AnnotationRuleProviderFactory
protected DigesterLoaderHandlerFactory
getRuleSet
(Class<?> target) Builds a newRuleSet
analyzing the digester annotations in the target class.private <A extends Annotation,
E extends AnnotatedElement, R extends Rule>
voidhandle
(A annotation, E element, FromAnnotationsRuleSet ruleSet) Handles the current visited element and related annotation, invoking the right handler putting the rule provider in the rule set.private void
handle
(AnnotatedElement element, FromAnnotationsRuleSet ruleSet) Executes an analysis for each annotation present in the element.
-
Field Details
-
cachedRuleSet
In-memory LRU cache that stores already analyzed classes and relativeRuleSet
. -
annotationRuleProviderFactory
-
digesterLoaderHandlerFactory
-
-
Constructor Details
-
DigesterLoader
protected DigesterLoader(AnnotationRuleProviderFactory annotationRuleProviderFactory, DigesterLoaderHandlerFactory digesterLoaderHandlerFactory) Creates a newDigesterLoader
instance.- Parameters:
annotationRuleProviderFactory
-digesterLoaderHandlerFactory
-
-
-
Method Details
-
getAnnotationRuleProviderFactory
-
getDigesterLoaderHandlerFactory
-
createDigester
Creates a new digester which rules are defined by analyzing the digester annotations in the target class.- Parameters:
target
- the class has to be analyzed.- Returns:
- a new Digester instance.
-
addRules
Add rules to an already created Digester instance, analyzing the digester annotations in the target class.- Parameters:
target
- the class has to be analyzed.digester
- the Digester instance reference.
-
getRuleSet
Builds a newRuleSet
analyzing the digester annotations in the target class. It avoids iterate the annotations analysis for already analyzed classes, using an in-memory LRU cache.- Parameters:
target
- the class has to be analyzed.- Returns:
- a new
RuleSet
.
-
addRulesTo
Analyzes the target class and adds theAnnotationRuleProvider
s to the existingFromAnnotationsRuleSet
.- Parameters:
target
- the class has to be analyzed.ruleSet
- the RuleSet where adding the providers.
-
handle
Executes an analysis for each annotation present in the element.- Parameters:
element
- the current element under analysis.ruleSet
- the ruleSet where add providers.
-
handle
private <A extends Annotation,E extends AnnotatedElement, void handleR extends Rule> (A annotation, E element, FromAnnotationsRuleSet ruleSet) Handles the current visited element and related annotation, invoking the right handler putting the rule provider in the rule set.- Parameters:
annotation
- the current visited annotation.element
- the current visited element.
-