Package org.mapstruct.ap.internal.model
Class ForgedMethod
- java.lang.Object
-
- org.mapstruct.ap.internal.model.ForgedMethod
-
-
Constructor Summary
Constructors Constructor Description ForgedMethod(String name, ForgedMethod forgedMethod)
creates a new ForgedMethod with the same arguments but with a new name
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addThrownTypes(List<Type> thrownTypesToAdd)
String
describe()
boolean
equals(Object o)
static ForgedMethod
forElementMapping(String name, Type sourceType, Type returnType, Method basedOn, ForgedMethodHistory history, boolean forgedNameBased)
Creates a new forged method for mapping a collection element, map key/value or stream elementstatic ForgedMethod
forParameterMapping(String name, Type sourceType, Type returnType, Method basedOn)
Creates a new forged method with the given name for mapping a method parameter to a property.static ForgedMethod
forPropertyMapping(String name, Type sourceType, Type returnType, List<Parameter> parameters, Method basedOn, ForgedMethodHistory history, MappingReferences mappingReferences, boolean forgedNameBased)
Creates a new forged method for mapping a bean property to a propertystatic ForgedMethod
forSubclassMapping(String name, Type sourceType, Type returnType, Method basedOn, MappingReferences mappingReferences, ForgedMethodHistory history, boolean forgedNameBased)
Creates a new forged method for mapping a SubclassMapping elementAccessibility
getAccessibility()
Returns theAccessibility
of this method.List<Parameter>
getContextParameters()
returns the list of mapping context parameters, i.e. those parameters that are annotated withContext
.ParameterProvidedMethods
getContextProvidedMethods()
Type
getDeclaringMapper()
Returns the mapper type declaring this method if it is not declared by the mapper interface currently processed but by another mapper imported viaMapper#users()
.Type
getDefiningType()
ExecutableElement
getExecutable()
ForgedMethodHistory
getHistory()
MappingReferences
getMappingReferences()
Parameter
getMappingTargetParameter()
Returns the parameter designated as mapping target (if present)MappingTarget
String
getName()
Returns then name of the method.MappingMethodOptions
getOptions()
List<String>
getParameterNames()
List<Parameter>
getParameters()
In contrast toMethod.getSourceParameters()
this method returns all parametersType
getResultType()
Returns the type of the result.Type
getReturnType()
Returns the return type of the methodList<Parameter>
getSourceParameters()
returns the list of 'true' source parameters excluding the parameter(s) that are designated as target, target type or context parameter.Parameter
getTargetTypeParameter()
Returns the parameter designated as target type (if present)TargetType
List<Type>
getThrownTypes()
Returns all exceptions thrown by this methodList<Type>
getTypeParameters()
Returns the formal type parameters of this method in declaration order.int
hashCode()
boolean
isDefault()
Whether this method is Java 8 default methodboolean
isForgedNamedBased()
boolean
isLifecycleCallbackMethod()
boolean
isObjectFactory()
object factory mechanism not supported for forged methodsboolean
isStatic()
Whether this method is static or an instance methodboolean
isUpdateMethod()
boolean
matches(List<Type> sourceTypes, Type targetType)
Checks whether the provided sourceType and provided targetType match with the parameter respectively return type of the method.boolean
overridesMethod()
Whether this method overrides an abstract method.String
toString()
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.mapstruct.ap.internal.model.source.Method
getMappingSourceType, isMappingTargetAssignableToReturnType, isPresenceCheck
-
-
-
-
Constructor Detail
-
ForgedMethod
public ForgedMethod(String name, ForgedMethod forgedMethod)
creates a new ForgedMethod with the same arguments but with a new name- Parameters:
name
- the new nameforgedMethod
- existing forge method
-
-
Method Detail
-
forParameterMapping
public static ForgedMethod forParameterMapping(String name, Type sourceType, Type returnType, Method basedOn)
Creates a new forged method with the given name for mapping a method parameter to a property.- Parameters:
name
- the (unique name) for this methodsourceType
- the source typereturnType
- the return type.basedOn
- the method that (originally) triggered this nested method generation.- Returns:
- a new forge method
-
forPropertyMapping
public static ForgedMethod forPropertyMapping(String name, Type sourceType, Type returnType, List<Parameter> parameters, Method basedOn, ForgedMethodHistory history, MappingReferences mappingReferences, boolean forgedNameBased)
Creates a new forged method for mapping a bean property to a property- Parameters:
name
- the (unique name) for this methodsourceType
- the source typereturnType
- the return type.parameters
- other parameters (including the context + @MappingTargetbasedOn
- the method that (originally) triggered this nested method generation.history
- a parent forged method if this is a forged method within a forged methodmappingReferences
- the mapping options for this methodforgedNameBased
- forges a name based (matched) mapping method- Returns:
- a new forge method
-
forElementMapping
public static ForgedMethod forElementMapping(String name, Type sourceType, Type returnType, Method basedOn, ForgedMethodHistory history, boolean forgedNameBased)
Creates a new forged method for mapping a collection element, map key/value or stream element- Parameters:
name
- the (unique name) for this methodsourceType
- the source typereturnType
- the return type.basedOn
- the method that (originally) triggered this nested method generation.history
- a parent forged method if this is a forged method within a forged methodforgedNameBased
- forges a name based (matched) mapping method- Returns:
- a new forge method
-
forSubclassMapping
public static ForgedMethod forSubclassMapping(String name, Type sourceType, Type returnType, Method basedOn, MappingReferences mappingReferences, ForgedMethodHistory history, boolean forgedNameBased)
Creates a new forged method for mapping a SubclassMapping element- Parameters:
name
- the (unique name) for this methodsourceType
- the source typereturnType
- the return type.basedOn
- the method that (originally) triggered this nested method generation.history
- a parent forged method if this is a forged method within a forged methodforgedNameBased
- forges a name based (matched) mapping method- Returns:
- a new forge method
-
matches
public boolean matches(List<Type> sourceTypes, Type targetType)
Description copied from interface:Method
Checks whether the provided sourceType and provided targetType match with the parameter respectively return type of the method. The check also should incorporate wild card and generic type variables
-
getDeclaringMapper
public Type getDeclaringMapper()
Description copied from interface:Method
Returns the mapper type declaring this method if it is not declared by the mapper interface currently processed but by another mapper imported viaMapper#users()
.- Specified by:
getDeclaringMapper
in interfaceMethod
- Returns:
- The declaring mapper type
-
getName
public String getName()
Description copied from interface:Method
Returns then name of the method.
-
getParameters
public List<Parameter> getParameters()
Description copied from interface:Method
In contrast toMethod.getSourceParameters()
this method returns all parameters- Specified by:
getParameters
in interfaceMethod
- Returns:
- all parameters
-
getSourceParameters
public List<Parameter> getSourceParameters()
Description copied from interface:Method
returns the list of 'true' source parameters excluding the parameter(s) that are designated as target, target type or context parameter.- Specified by:
getSourceParameters
in interfaceMethod
- Returns:
- list of 'true' source parameters
-
getContextParameters
public List<Parameter> getContextParameters()
Description copied from interface:Method
returns the list of mapping context parameters, i.e. those parameters that are annotated withContext
.- Specified by:
getContextParameters
in interfaceMethod
- Returns:
- list of context parameters
-
getContextProvidedMethods
public ParameterProvidedMethods getContextProvidedMethods()
- Specified by:
getContextProvidedMethods
in interfaceMethod
- Returns:
- a mapping between
Method.getContextParameters()
to factory and lifecycle methods provided by them.
-
getMappingTargetParameter
public Parameter getMappingTargetParameter()
Description copied from interface:Method
Returns the parameter designated as mapping target (if present)MappingTarget
- Specified by:
getMappingTargetParameter
in interfaceMethod
- Returns:
- mapping target parameter (when present) null otherwise.
-
getTargetTypeParameter
public Parameter getTargetTypeParameter()
Description copied from interface:Method
Returns the parameter designated as target type (if present)TargetType
- Specified by:
getTargetTypeParameter
in interfaceMethod
- Returns:
- target type parameter (when present) null otherwise.
-
getAccessibility
public Accessibility getAccessibility()
Description copied from interface:Method
Returns theAccessibility
of this method.- Specified by:
getAccessibility
in interfaceMethod
- Returns:
- the
Accessibility
of this method
-
getReturnType
public Type getReturnType()
Description copied from interface:Method
Returns the return type of the method- Specified by:
getReturnType
in interfaceMethod
- Returns:
- return type
-
getThrownTypes
public List<Type> getThrownTypes()
Description copied from interface:Method
Returns all exceptions thrown by this method- Specified by:
getThrownTypes
in interfaceMethod
- Returns:
- exceptions thrown
-
getHistory
public ForgedMethodHistory getHistory()
-
isForgedNamedBased
public boolean isForgedNamedBased()
-
getResultType
public Type getResultType()
Description copied from interface:Method
Returns the type of the result. The result is defined as the type of the parameter designated withMappingTarget
, or in absence the return type.- Specified by:
getResultType
in interfaceMethod
- Returns:
- result type
-
getParameterNames
public List<String> getParameterNames()
- Specified by:
getParameterNames
in interfaceMethod
- Returns:
- the names of the parameters of this mapping method
-
overridesMethod
public boolean overridesMethod()
Description copied from interface:Method
Whether this method overrides an abstract method.- Specified by:
overridesMethod
in interfaceMethod
- Returns:
- true when an abstract method is overridden.
-
getExecutable
public ExecutableElement getExecutable()
- Specified by:
getExecutable
in interfaceMethod
-
isLifecycleCallbackMethod
public boolean isLifecycleCallbackMethod()
- Specified by:
isLifecycleCallbackMethod
in interfaceMethod
- Returns:
true
, if the method represents a mapping lifecycle callback (Before/After mapping method)
-
isStatic
public boolean isStatic()
Description copied from interface:Method
Whether this method is static or an instance method
-
isDefault
public boolean isDefault()
Description copied from interface:Method
Whether this method is Java 8 default method
-
getDefiningType
public Type getDefiningType()
- Specified by:
getDefiningType
in interfaceMethod
- Returns:
- the Type (class or interface) that defines this method.
-
isUpdateMethod
public boolean isUpdateMethod()
- Specified by:
isUpdateMethod
in interfaceMethod
- Returns:
true
, if the method is an update method, i.e. it has a parameter annotated with@MappingTarget
.
-
isObjectFactory
public boolean isObjectFactory()
object factory mechanism not supported for forged methods- Specified by:
isObjectFactory
in interfaceMethod
- Returns:
- false
-
getOptions
public MappingMethodOptions getOptions()
- Specified by:
getOptions
in interfaceMethod
- Returns:
- the mapping options for this method
-
getTypeParameters
public List<Type> getTypeParameters()
Description copied from interface:Method
Returns the formal type parameters of this method in declaration order.- Specified by:
getTypeParameters
in interfaceMethod
- Returns:
- the formal type parameters, or an empty list if there are none
-
describe
public String describe()
-
getMappingReferences
public MappingReferences getMappingReferences()
-
-