java.lang.Object
org.dominokit.jacksonapt.processor.Type

public class Type
extends java.lang.Object

Type class.

Version:
$Id: $Id
Author:
vegegoku
  • Field Summary

    Fields
    Modifier and Type Field Description
    static java.lang.String BEAN_JSON_DESERIALIZER_IMPL
    Constant BEAN_JSON_DESERIALIZER_IMPL="BeanJsonDeserializerImpl"
    static java.lang.String BEAN_JSON_SERIALIZER_IMPL
    Constant BEAN_JSON_SERIALIZER_IMPL="BeanJsonSerializerImpl"
  • Constructor Summary

    Constructors
    Constructor Description
    Type()  
  • Method Summary

    Modifier and Type Method Description
    static javax.lang.model.type.TypeMirror arrayComponentType​(javax.lang.model.type.TypeMirror typeMirror)
    arrayComponentType.
    static javax.lang.model.type.TypeMirror deepArrayComponentType​(javax.lang.model.type.TypeMirror typeMirror)
    deepArrayComponentType.
    static java.lang.String deserializerName​(java.lang.String packageName, javax.lang.model.type.TypeMirror beanType)
    Returns deserializer name for given typeMirror.
    static <A extends java.lang.annotation.Annotation>
    A
    findClassAnnotation​(javax.lang.model.element.Element classElement, java.lang.Class<A> annotation)  
    static java.util.Optional<javax.lang.model.type.TypeMirror> findClassValueFromClassAnnotation​(javax.lang.model.element.Element classElement, java.lang.Class<? extends java.lang.annotation.Annotation> annotation, java.lang.String paramName)  
    static javax.lang.model.type.TypeMirror firstTypeArgument​(javax.lang.model.type.TypeMirror typeMirror)
    firstTypeArgument.
    static java.lang.String generateDeserializer​(javax.lang.model.type.TypeMirror typeMirror)
    Generate deserializer for given TypeMirror.
    static java.lang.String generateSerializer​(javax.lang.model.type.TypeMirror typeMirror)
    Generate serializer for given TypeMirror.
    static java.util.Optional<javax.lang.model.type.TypeMirror> getClassValueFromAnnotation​(javax.lang.model.element.Element element, java.lang.Class<? extends java.lang.annotation.Annotation> annotation, java.lang.String paramName)  
    static javax.lang.model.type.TypeMirror getDeclaredType​(javax.lang.model.type.TypeMirror type, java.util.Map<? extends javax.lang.model.element.TypeParameterElement,​? extends javax.lang.model.type.TypeMirror> parametersToArgumentsMap)
    Create TypeMirror for given generic type, with type parameters replaced by actual type arguments, specified in parametersToArgumentsMap
    static java.lang.String getPackage​(javax.lang.model.type.TypeMirror typeMirror)
    Returns package name of given TypeMirror as String.
    static SubTypesInfo getSubTypes​(javax.lang.model.type.TypeMirror type)
    Returns all subtypes described with @JsonSubInfo and @JsonSubType for given TypeMirror
    static java.lang.String getTypeQualifiedName​(javax.lang.model.type.TypeMirror typeMirror)  
    static boolean hasTypeArgumentWithBoundedWildcards​(javax.lang.model.type.TypeMirror type)
    Check if given type is generic class (and not being collection, iterable, enum or map) with type argument containing bounded wildcard.
    static boolean hasTypeParameter​(javax.lang.model.type.TypeMirror type)
    Check if given TypeMirror has type parameter(s).
    static boolean hasUnboundedWildcards​(javax.lang.model.type.TypeMirror type)
    Check if given type has type argument containing unbounded wildcard
    static boolean hasWildcards​(javax.lang.model.type.TypeMirror type)
    Check if given TypeMirror has wildcards
    static boolean is2dArray​(javax.lang.model.type.TypeMirror typeMirror)
    is2dArray.
    static boolean isArray​(javax.lang.model.type.TypeMirror typeMirror)
    isArray.
    static boolean isAssignableFrom​(javax.lang.model.element.Element element, java.lang.Class<?> targetClass)  
    static boolean isAssignableFrom​(javax.lang.model.type.TypeMirror typeMirror, java.lang.Class<?> targetClass)
    isAssignableFrom.
    static boolean isBasicType​(javax.lang.model.type.TypeMirror typeMirror)
    isBasicType.
    static boolean isCollection​(javax.lang.model.type.TypeMirror typeMirror)
    isCollection.
    static boolean isEnum​(javax.lang.model.type.TypeMirror typeMirror)
    isEnum.
    static boolean isGenericType​(javax.lang.model.type.TypeMirror type)
    Check if given TypeMirror is a generic Java type
    static boolean isIterable​(javax.lang.model.type.TypeMirror typeMirror)
    isIterable.
    static boolean isJsonMapper​(javax.lang.model.type.TypeMirror typeMirror)  
    static boolean isMap​(javax.lang.model.type.TypeMirror typeMirror)
    isMap.
    static boolean isPrimitiveArray​(javax.lang.model.type.TypeMirror typeMirror)
    isPrimitiveArray.
    static java.util.Optional<BeanIdentityInfo> processIdentity​(javax.lang.model.type.TypeMirror beanType)
    processIdentity
    static javax.lang.model.type.TypeMirror removeOuterWildCards​(javax.lang.model.type.TypeMirror type)
    If given type is bounded wildcard, remove the wildcard and returns extends bound if exists.
    static javax.lang.model.type.TypeMirror secondTypeArgument​(javax.lang.model.type.TypeMirror typeMirror)
    secondTypeArgument.
    static java.lang.String serializerName​(java.lang.String packageName, javax.lang.model.type.TypeMirror beanType)
    Create serializer name for given packageName and beanType.
    static javax.lang.model.element.Name simpleName​(javax.lang.model.type.TypeMirror typeMirror)
    simpleName.
    static java.lang.String stringifyType​(javax.lang.model.type.TypeMirror type)
    Stringify given TypeMirror including generic arguments.
    static java.lang.String stringifyTypeWithPackage​(javax.lang.model.type.TypeMirror type)
    Stringify given TypeMirror including generic arguments and append package name
    static com.squareup.javapoet.TypeName wrapperType​(javax.lang.model.type.TypeMirror type)
    wrapperType.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • BEAN_JSON_SERIALIZER_IMPL

      public static final java.lang.String BEAN_JSON_SERIALIZER_IMPL
      Constant BEAN_JSON_SERIALIZER_IMPL="BeanJsonSerializerImpl"
      See Also:
      Constant Field Values
    • BEAN_JSON_DESERIALIZER_IMPL

      public static final java.lang.String BEAN_JSON_DESERIALIZER_IMPL
      Constant BEAN_JSON_DESERIALIZER_IMPL="BeanJsonDeserializerImpl"
      See Also:
      Constant Field Values
  • Constructor Details

    • Type

      public Type()
  • Method Details

    • wrapperType

      public static com.squareup.javapoet.TypeName wrapperType​(javax.lang.model.type.TypeMirror type)

      wrapperType.

      Parameters:
      type - a TypeMirror object.
      Returns:
      a TypeName object.
    • isPrimitiveArray

      public static boolean isPrimitiveArray​(javax.lang.model.type.TypeMirror typeMirror)

      isPrimitiveArray.

      Parameters:
      typeMirror - a TypeMirror object.
      Returns:
      a boolean.
    • isArray

      public static boolean isArray​(javax.lang.model.type.TypeMirror typeMirror)

      isArray.

      Parameters:
      typeMirror - a TypeMirror object.
      Returns:
      a boolean.
    • is2dArray

      public static boolean is2dArray​(javax.lang.model.type.TypeMirror typeMirror)

      is2dArray.

      Parameters:
      typeMirror - a TypeMirror object.
      Returns:
      a boolean.
    • arrayComponentType

      public static javax.lang.model.type.TypeMirror arrayComponentType​(javax.lang.model.type.TypeMirror typeMirror)

      arrayComponentType.

      Parameters:
      typeMirror - a TypeMirror object.
      Returns:
      a TypeMirror object.
    • deepArrayComponentType

      public static javax.lang.model.type.TypeMirror deepArrayComponentType​(javax.lang.model.type.TypeMirror typeMirror)

      deepArrayComponentType.

      Parameters:
      typeMirror - a TypeMirror object.
      Returns:
      a TypeMirror object.
    • isEnum

      public static boolean isEnum​(javax.lang.model.type.TypeMirror typeMirror)

      isEnum.

      Parameters:
      typeMirror - a TypeMirror object.
      Returns:
      a boolean.
    • isCollection

      public static boolean isCollection​(javax.lang.model.type.TypeMirror typeMirror)

      isCollection.

      Parameters:
      typeMirror - a TypeMirror object.
      Returns:
      a boolean.
    • isIterable

      public static boolean isIterable​(javax.lang.model.type.TypeMirror typeMirror)

      isIterable.

      Parameters:
      typeMirror - a TypeMirror object.
      Returns:
      a boolean.
    • isAssignableFrom

      public static boolean isAssignableFrom​(javax.lang.model.type.TypeMirror typeMirror, java.lang.Class<?> targetClass)

      isAssignableFrom.

      Parameters:
      typeMirror - a TypeMirror object.
      targetClass - a Class object.
      Returns:
      a boolean.
    • isAssignableFrom

      public static boolean isAssignableFrom​(javax.lang.model.element.Element element, java.lang.Class<?> targetClass)
    • isMap

      public static boolean isMap​(javax.lang.model.type.TypeMirror typeMirror)

      isMap.

      Parameters:
      typeMirror - a TypeMirror object.
      Returns:
      a boolean.
    • firstTypeArgument

      public static javax.lang.model.type.TypeMirror firstTypeArgument​(javax.lang.model.type.TypeMirror typeMirror)

      firstTypeArgument.

      Parameters:
      typeMirror - a TypeMirror object.
      Returns:
      a TypeMirror object.
    • secondTypeArgument

      public static javax.lang.model.type.TypeMirror secondTypeArgument​(javax.lang.model.type.TypeMirror typeMirror)

      secondTypeArgument.

      Parameters:
      typeMirror - a TypeMirror object.
      Returns:
      a TypeMirror object.
    • isBasicType

      public static boolean isBasicType​(javax.lang.model.type.TypeMirror typeMirror)

      isBasicType.

      Parameters:
      typeMirror - a TypeMirror object.
      Returns:
      a boolean.
    • getPackage

      public static java.lang.String getPackage​(javax.lang.model.type.TypeMirror typeMirror)
      Returns package name of given TypeMirror as String. For primitive types, returns emtpy string
      Parameters:
      typeMirror - a TypeMirror object.
      Returns:
      a String object.
    • simpleName

      public static javax.lang.model.element.Name simpleName​(javax.lang.model.type.TypeMirror typeMirror)

      simpleName.

      Parameters:
      typeMirror - a TypeMirror object.
      Returns:
      a Name object.
    • serializerName

      public static java.lang.String serializerName​(java.lang.String packageName, javax.lang.model.type.TypeMirror beanType)
      Create serializer name for given packageName and beanType. Package name for corresponding serializer is prepended to the result.
      Parameters:
      packageName - a String object.
      beanType - TypeMirror object
      Returns:
      fully-qualified serializer class name
    • deserializerName

      public static java.lang.String deserializerName​(java.lang.String packageName, javax.lang.model.type.TypeMirror beanType)
      Returns deserializer name for given typeMirror. Package name for corresponding deserializer is prepended to the result.
      Parameters:
      packageName - a String object.
      beanType - a TypeMirror object
      Returns:
      fully qualified deserializer name
    • stringifyTypeWithPackage

      public static java.lang.String stringifyTypeWithPackage​(javax.lang.model.type.TypeMirror type)
      Stringify given TypeMirror including generic arguments and append package name
      Parameters:
      type - a TypeMirror object
      Returns:
      a String containing string representation of given TypeMirror
    • stringifyType

      public static java.lang.String stringifyType​(javax.lang.model.type.TypeMirror type)
      Stringify given TypeMirror including generic arguments. Package of the TypeMirror is not prepended to the result.
      Parameters:
      type - a TypeMirror object
      Returns:
      a String containing string representation of given TypeMirror
    • generateDeserializer

      public static java.lang.String generateDeserializer​(javax.lang.model.type.TypeMirror typeMirror)
      Generate deserializer for given TypeMirror. Deserializer is situated in the specified package.
      Parameters:
      typeMirror - a TypeMirror object.
      Returns:
      a fully qualified deserializer name
    • generateSerializer

      public static java.lang.String generateSerializer​(javax.lang.model.type.TypeMirror typeMirror)
      Generate serializer for given TypeMirror. Serializer is situated in the specified package.
      Parameters:
      typeMirror - a TypeMirror object.
      Returns:
      a fully qualified serializer name
    • removeOuterWildCards

      public static javax.lang.model.type.TypeMirror removeOuterWildCards​(javax.lang.model.type.TypeMirror type)
      If given type is bounded wildcard, remove the wildcard and returns extends bound if exists. If extends bounds is non existing - return the super bound.

      If given type is not wildcard, returns type.

      Parameters:
      type - TypeMirror to be processed
      Returns:
      extends or super bounds for given wildcard type
    • hasWildcards

      public static boolean hasWildcards​(javax.lang.model.type.TypeMirror type)
      Check if given TypeMirror has wildcards
      Parameters:
      type - TypeMirror to be checked
      Returns:
      true if given TypeMirror has wildcards
    • isGenericType

      public static boolean isGenericType​(javax.lang.model.type.TypeMirror type)
      Check if given TypeMirror is a generic Java type
      Parameters:
      type - TypeMirror to be checked
      Returns:
      true if given TypeMirror is a generic type
    • hasTypeParameter

      public static boolean hasTypeParameter​(javax.lang.model.type.TypeMirror type)
      Check if given TypeMirror has type parameter(s).
      Parameters:
      type - TypeMirror object to be checked
      Returns:
      true if given TypeMirror has type parameter(s)
    • getSubTypes

      public static SubTypesInfo getSubTypes​(javax.lang.model.type.TypeMirror type)
      Returns all subtypes described with @JsonSubInfo and @JsonSubType for given TypeMirror
      Parameters:
      type - TypeMirror to be inspected for subtypes
      Returns:
      SubTypesInfo object containing information for subtypes
    • getDeclaredType

      public static javax.lang.model.type.TypeMirror getDeclaredType​(javax.lang.model.type.TypeMirror type, java.util.Map<? extends javax.lang.model.element.TypeParameterElement,​? extends javax.lang.model.type.TypeMirror> parametersToArgumentsMap)
      Create TypeMirror for given generic type, with type parameters replaced by actual type arguments, specified in parametersToArgumentsMap
      Parameters:
      type - TypeMirror to be processed
      parametersToArgumentsMap - mapping type parameter elements to types
      Returns:
      TypeMirror having type parameters replaced by actual type arguments
    • hasUnboundedWildcards

      public static boolean hasUnboundedWildcards​(javax.lang.model.type.TypeMirror type)
      Check if given type has type argument containing unbounded wildcard
      Parameters:
      type - TypeMirror to be checked
      Returns:
      true if given type has type argument containing unbounded wildcard
    • hasTypeArgumentWithBoundedWildcards

      public static boolean hasTypeArgumentWithBoundedWildcards​(javax.lang.model.type.TypeMirror type)
      Check if given type is generic class (and not being collection, iterable, enum or map) with type argument containing bounded wildcard.

      All type parameters of the type needs to be resolved to actual type arguments prior calling this method. Note that presence of type parameter causes RuntimeException.

      Parameters:
      type - TypeMirror to be checked.
      Returns:
      true of type is generic class with type argument containing bounded wildcards
    • isJsonMapper

      public static boolean isJsonMapper​(javax.lang.model.type.TypeMirror typeMirror)
    • findClassAnnotation

      public static <A extends java.lang.annotation.Annotation> A findClassAnnotation​(javax.lang.model.element.Element classElement, java.lang.Class<A> annotation)
    • findClassValueFromClassAnnotation

      public static java.util.Optional<javax.lang.model.type.TypeMirror> findClassValueFromClassAnnotation​(javax.lang.model.element.Element classElement, java.lang.Class<? extends java.lang.annotation.Annotation> annotation, java.lang.String paramName)
    • getClassValueFromAnnotation

      public static java.util.Optional<javax.lang.model.type.TypeMirror> getClassValueFromAnnotation​(javax.lang.model.element.Element element, java.lang.Class<? extends java.lang.annotation.Annotation> annotation, java.lang.String paramName)
    • processIdentity

      public static java.util.Optional<BeanIdentityInfo> processIdentity​(javax.lang.model.type.TypeMirror beanType)

      processIdentity

      Parameters:
      beanType - a TypeMirror object.
    • getTypeQualifiedName

      public static java.lang.String getTypeQualifiedName​(javax.lang.model.type.TypeMirror typeMirror)