Class BuiltInMethod

java.lang.Object
org.mapstruct.ap.internal.model.source.builtin.BuiltInMethod
All Implemented Interfaces:
Method
Direct Known Subclasses:
AbstractToXmlGregorianCalendar, CalendarToZonedDateTime, XmlGregorianCalendarToCalendar, XmlGregorianCalendarToDate, XmlGregorianCalendarToJodaDateTime, XmlGregorianCalendarToJodaLocalDate, XmlGregorianCalendarToJodaLocalDateTime, XmlGregorianCalendarToJodaLocalTime, XmlGregorianCalendarToLocalDate, XmlGregorianCalendarToLocalDateTime, XmlGregorianCalendarToString, ZonedDateTimeToCalendar

public abstract class BuiltInMethod extends Object implements Method
Represents a "built-in" mapping method which will be added as private method to the generated mapper. Built-in methods are used in cases where a simple conversation doesn't suffice, e.g. as several lines of source code or a try/catch block are required.
Author:
Sjaak Derksen
  • Constructor Details

    • BuiltInMethod

      public BuiltInMethod()
  • Method Details

    • getName

      public String getName()
      Returns then name of the method.
      Specified by:
      getName in interface Method
      Returns:
      default method name is equal to class name of build in method name
    • getImportTypes

      public Set<Type> getImportTypes()
      Returns the types used by this method for which import statements need to be generated. Defaults to the empty set. To be overridden by implementations in case they make use of additional types (note that the parameter and return type don't need to be added).
      Returns:
      the types used by this method for which import statements need to be generated
    • matches

      public 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. The check also should incorporate wild card and generic type variables

      Default the targetType should be assignable to the returnType and the sourceType to the parameter, excluding generic type variables. When the implementor sees a need for this, this method can be overridden.

      Specified by:
      matches in interface Method
      Parameters:
      sourceTypes - the sourceTypes to match to the parameter
      targetType - the targetType to match to the returnType
      Returns:
      true when match
    • 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 interface Method
      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 with Context.
      Specified by:
      getContextParameters in interface Method
      Returns:
      list of context parameters
    • getContextProvidedMethods

      public ParameterProvidedMethods getContextProvidedMethods()
      Specified by:
      getContextProvidedMethods in interface Method
      Returns:
      a mapping between Method.getContextParameters() to factory and lifecycle methods provided by them.
    • getDeclaringMapper

      public final 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 via Mapper#users().

      For built-in methods, the declaring mapper is always null as they will be added as private methods to the generated mapper.

      Specified by:
      getDeclaringMapper in interface Method
      Returns:
      null
    • getParameters

      public List<Parameter> getParameters()
      Description copied from interface: Method
      In contrast to Method.getSourceParameters() this method returns all parameters
      Specified by:
      getParameters in interface Method
      Returns:
      all parameters
    • getMappingTargetParameter

      public Parameter getMappingTargetParameter()
      mapping target parameter mechanism not supported for built-in methods
      Specified by:
      getMappingTargetParameter in interface Method
      Returns:
      null
    • getTargetTypeParameter

      public Parameter getTargetTypeParameter()
      target type parameter mechanism not supported for built-in methods
      Specified by:
      getTargetTypeParameter in interface Method
      Returns:
      null
    • isObjectFactory

      public boolean isObjectFactory()
      object factory mechanism not supported for built-in methods
      Specified by:
      isObjectFactory in interface Method
      Returns:
      false
    • getContextParameter

      public String getContextParameter(ConversionContext conversionContext)
      the conversion context is used to format an auxiliary parameter in the method call with context specific information such as a date format.
      Parameters:
      conversionContext - context
      Returns:
      null if no context parameter should be included "null" if there should be an explicit null call "'dateFormat'" for instance, to indicate how the build-in method should format the date
    • 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 interface Method
      Returns:
      the formal type parameters, or an empty list if there are none
    • hashCode

      public int hashCode()
      hashCode based on class
      Overrides:
      hashCode in class Object
      Returns:
      hashCode
    • equals

      public boolean equals(Object obj)
      equals based on class
      Overrides:
      equals in class Object
      Parameters:
      obj - other class
      Returns:
      true when classes are the same
    • doTypeVarsMatch

      public boolean doTypeVarsMatch(Type parameter, Type returnType)
      Analyzes the Java Generic type variables in the parameter do match the type variables in the build in method same goes for the returnType.
      Parameters:
      parameter - source
      returnType - target
      Returns:
      true, iff the type variables match
    • getParameter

      public abstract Parameter getParameter()
      There's currently only one parameter foreseen instead of a list of parameter
      Returns:
      the parameter
    • getAccessibility

      public Accessibility getAccessibility()
      Description copied from interface: Method
      Returns the Accessibility of this method.
      Specified by:
      getAccessibility in interface Method
      Returns:
      the Accessibility of this method
    • getThrownTypes

      public List<Type> getThrownTypes()
      Description copied from interface: Method
      Returns all exceptions thrown by this method
      Specified by:
      getThrownTypes in interface Method
      Returns:
      exceptions thrown
    • 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 with MappingTarget, or in absence the return type.
      Specified by:
      getResultType in interface Method
      Returns:
      result type
    • getParameterNames

      public List<String> getParameterNames()
      Specified by:
      getParameterNames in interface Method
      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 interface Method
      Returns:
      true when an abstract method is overridden.
    • getExecutable

      public ExecutableElement getExecutable()
      Specified by:
      getExecutable in interface Method
    • isStatic

      public boolean isStatic()
      Description copied from interface: Method
      Whether this method is static or an instance method
      Specified by:
      isStatic in interface Method
      Returns:
      true when static.
    • isDefault

      public boolean isDefault()
      Description copied from interface: Method
      Whether this method is Java 8 default method
      Specified by:
      isDefault in interface Method
      Returns:
      true when Java 8 default method
    • getDefiningType

      public Type getDefiningType()
      Specified by:
      getDefiningType in interface Method
      Returns:
      the Type (class or interface) that defines this method.
    • isLifecycleCallbackMethod

      public boolean isLifecycleCallbackMethod()
      Specified by:
      isLifecycleCallbackMethod in interface Method
      Returns:
      true, if the method represents a mapping lifecycle callback (Before/After mapping method)
    • isUpdateMethod

      public boolean isUpdateMethod()
      Specified by:
      isUpdateMethod in interface Method
      Returns:
      true, if the method is an update method, i.e. it has a parameter annotated with @MappingTarget.
    • getOptions

      public MappingMethodOptions getOptions()
      Specified by:
      getOptions in interface Method
      Returns:
      the mapping options for this method
    • getFieldReference

      public FieldReference getFieldReference()
    • getConstructorFragment

      public ConstructorFragment getConstructorFragment()
    • describe

      public String describe()
      Specified by:
      describe in interface Method
      Returns:
      the short name for error messages when verbose, full name when not