Class AnnotationBasedComponentModelProcessor
- java.lang.Object
-
- org.mapstruct.ap.internal.processor.AnnotationBasedComponentModelProcessor
-
- All Implemented Interfaces:
ModelElementProcessor<Mapper,Mapper>
- Direct Known Subclasses:
CdiComponentProcessor
,JakartaCdiComponentProcessor
,JakartaComponentProcessor
,Jsr330ComponentProcessor
,SpringComponentProcessor
public abstract class AnnotationBasedComponentModelProcessor extends Object implements ModelElementProcessor<Mapper,Mapper>
AnModelElementProcessor
which converts the givenMapper
object into an annotation based component model in case a matching model is selected as target component model for this mapper.- Author:
- Gunnar Morling, Andreas Gudian, Kevin Grüneberg
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.mapstruct.ap.internal.processor.ModelElementProcessor
ModelElementProcessor.ProcessorContext
-
-
Constructor Summary
Constructors Constructor Description AnnotationBasedComponentModelProcessor()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected boolean
additionalPublicEmptyConstructor()
protected void
adjustDecorator(Mapper mapper, org.mapstruct.ap.internal.gem.InjectionStrategyGem injectionStrategy)
protected abstract String
getComponentModelIdentifier()
protected List<Annotation>
getDecoratorAnnotations()
protected List<Annotation>
getDelegatorReferenceAnnotations(Mapper mapper)
protected abstract List<Annotation>
getMapperReferenceAnnotations()
int
getPriority()
Returns the priority value of this processor which must be between 1 (highest priority) and 10000 (lowest priority).protected abstract List<Annotation>
getTypeAnnotations(Mapper mapper)
protected TypeFactory
getTypeFactory()
Mapper
process(ModelElementProcessor.ProcessorContext context, TypeElement mapperTypeElement, Mapper mapper)
Processes the given source element, representing a Java bean mapper in one form or another.protected Field
replacementMapperReference(Field originalReference, List<Annotation> annotations, org.mapstruct.ap.internal.gem.InjectionStrategyGem injectionStrategy)
protected abstract boolean
requiresGenerationOfDecoratorClass()
-
-
-
Method Detail
-
process
public Mapper process(ModelElementProcessor.ProcessorContext context, TypeElement mapperTypeElement, Mapper mapper)
Description copied from interface:ModelElementProcessor
Processes the given source element, representing a Java bean mapper in one form or another.- Specified by:
process
in interfaceModelElementProcessor<Mapper,Mapper>
- Parameters:
context
- Context providing common infrastructure objects.mapperTypeElement
- The original type element from which the given mapper object is derived.mapper
- The current representation of the bean mapper. Nevernull
(the very first processor receives the original type element).- Returns:
- The resulting representation of the bean mapper; may be the same
as the source representation, e.g. if a given implementation just
performs some sort of validity check. Implementations must never
return
null
except for the very last processor which generates the resulting Java source file.
-
adjustDecorator
protected void adjustDecorator(Mapper mapper, org.mapstruct.ap.internal.gem.InjectionStrategyGem injectionStrategy)
-
additionalPublicEmptyConstructor
protected boolean additionalPublicEmptyConstructor()
-
getDelegatorReferenceAnnotations
protected List<Annotation> getDelegatorReferenceAnnotations(Mapper mapper)
-
replacementMapperReference
protected Field replacementMapperReference(Field originalReference, List<Annotation> annotations, org.mapstruct.ap.internal.gem.InjectionStrategyGem injectionStrategy)
- Parameters:
originalReference
- the reference to be replacedannotations
- the list of annotationsinjectionStrategy
- strategy for injection- Returns:
- the mapper reference replacing the original one
-
getComponentModelIdentifier
protected abstract String getComponentModelIdentifier()
- Returns:
- the component model identifier
-
getTypeAnnotations
protected abstract List<Annotation> getTypeAnnotations(Mapper mapper)
- Parameters:
mapper
- the mapper- Returns:
- the annotation(s) to be added at the mapper type implementation
-
getDecoratorAnnotations
protected List<Annotation> getDecoratorAnnotations()
- Returns:
- the annotation(s) to be added at the decorator of the mapper
-
getMapperReferenceAnnotations
protected abstract List<Annotation> getMapperReferenceAnnotations()
- Returns:
- the annotation of the field for the mapper reference
-
requiresGenerationOfDecoratorClass
protected abstract boolean requiresGenerationOfDecoratorClass()
- Returns:
- if a decorator (sub-)class needs to be generated or not
-
getPriority
public int getPriority()
Description copied from interface:ModelElementProcessor
Returns the priority value of this processor which must be between 1 (highest priority) and 10000 (lowest priority). Processors are invoked in order from highest to lowest priority, starting with the mapping method retrieval processor (priority 1) and finishing with the code generation processor (priority 10000). Processors working on the builtMapper
model must have a priority > 1000.- Specified by:
getPriority
in interfaceModelElementProcessor<Mapper,Mapper>
- Returns:
- The priority value of this processor.
-
getTypeFactory
protected TypeFactory getTypeFactory()
-
-