Class ApNavigator

  • All Implemented Interfaces:
    Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>

    public final class ApNavigator
    extends java.lang.Object
    implements Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
    Navigator implementation for annotation processing. TODO: check the spec on how generics are supposed to be handled
    Author:
    Kohsuke Kawaguchi (kk@kohsuke.org)
    • Constructor Summary

      Constructors 
      Constructor Description
      ApNavigator​(javax.annotation.processing.ProcessingEnvironment env)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      javax.lang.model.element.TypeElement asDecl​(java.lang.Class c)
      Gets the C representation for the given class.
      javax.lang.model.element.TypeElement asDecl​(javax.lang.model.type.TypeMirror m)
      If the given type is an use of class declaration, returns the type casted as C.
      javax.lang.model.type.TypeMirror erasure​(javax.lang.model.type.TypeMirror t)
      Computes the erasure
      javax.lang.model.type.TypeMirror getBaseClass​(javax.lang.model.type.TypeMirror type, javax.lang.model.element.TypeElement sup)
      Gets the parameterization of the given base type.
      Location getClassLocation​(javax.lang.model.element.TypeElement typeElement)
      Returns a location of the specified class.
      java.lang.String getClassName​(javax.lang.model.element.TypeElement t)
      Gets the fully-qualified name of the class.
      java.lang.String getClassShortName​(javax.lang.model.element.TypeElement t)
      Gets the short name of the class ("Object" for Object.) For nested classes, this method should just return the inner name.
      javax.lang.model.type.TypeMirror getComponentType​(javax.lang.model.type.TypeMirror t)
      Gets the component type of the array.
      javax.lang.model.element.VariableElement getDeclaredField​(javax.lang.model.element.TypeElement clazz, java.lang.String fieldName)
      Gets the named field declared on the given class.
      java.util.Collection<javax.lang.model.element.VariableElement> getDeclaredFields​(javax.lang.model.element.TypeElement typeElement)
      Gets all the declared fields of the given class.
      java.util.Collection<javax.lang.model.element.ExecutableElement> getDeclaredMethods​(javax.lang.model.element.TypeElement typeElement)
      Gets all the declared methods of the given class (regardless of their access modifiers, regardless of whether they override methods of the base classes.)
      javax.lang.model.element.TypeElement getDeclaringClassForField​(javax.lang.model.element.VariableElement f)
      Gets the class that declares the given field.
      javax.lang.model.element.TypeElement getDeclaringClassForMethod​(javax.lang.model.element.ExecutableElement m)
      Gets the class that declares the given method.
      javax.lang.model.element.VariableElement[] getEnumConstants​(javax.lang.model.element.TypeElement clazz)
      Gets the enumeration constants from an enum class.
      Location getFieldLocation​(javax.lang.model.element.VariableElement variableElement)  
      java.lang.String getFieldName​(javax.lang.model.element.VariableElement f)
      Gets the name of the field.
      javax.lang.model.type.TypeMirror getFieldType​(javax.lang.model.element.VariableElement f)
      Gets the type of the field.
      Location getMethodLocation​(javax.lang.model.element.ExecutableElement executableElement)  
      java.lang.String getMethodName​(javax.lang.model.element.ExecutableElement m)
      Gets the name of the method, such as "toString" or "equals".
      javax.lang.model.type.TypeMirror[] getMethodParameters​(javax.lang.model.element.ExecutableElement m)
      Returns the list of parameters to the method.
      java.lang.String getPackageName​(javax.lang.model.element.TypeElement clazz)
      Gets the package name of the given class.
      javax.lang.model.type.TypeMirror getPrimitive​(java.lang.Class primitiveType)
      Returns the representation for the given primitive type.
      javax.lang.model.type.TypeMirror getReturnType​(javax.lang.model.element.ExecutableElement m)
      Gets the return type of a method.
      javax.lang.model.element.TypeElement getSuperClass​(javax.lang.model.element.TypeElement typeElement)
      Gets the base class of the specified class.
      javax.lang.model.type.TypeMirror getTypeArgument​(javax.lang.model.type.TypeMirror typeMirror, int i)
      Gets the i-th type argument from a parameterized type.
      java.lang.String getTypeName​(javax.lang.model.type.TypeMirror typeMirror)
      Gets the display name of the type object
      javax.lang.model.type.TypeMirror getVoidType()
      Gets the representation of the primitive "void" type.
      boolean hasDefaultConstructor​(javax.lang.model.element.TypeElement t)
      Returns true if the given class has a no-arg default constructor.
      boolean isAbstract​(javax.lang.model.element.TypeElement clazz)
      Returns true if this is an abstract class.
      boolean isArray​(javax.lang.model.type.TypeMirror type)
      Checks if the type is an array type.
      boolean isArrayButNotByteArray​(javax.lang.model.type.TypeMirror t)
      Checks if the type is an array type but not byte[].
      boolean isBridgeMethod​(javax.lang.model.element.ExecutableElement method)
      Returns true if this method is a bridge method as defined in JLS.
      boolean isEnum​(javax.lang.model.element.TypeElement t)
      Returns true if this is an enum class.
      boolean isFinal​(javax.lang.model.element.TypeElement clazz)
      Returns true if this is a final class.
      boolean isFinalMethod​(javax.lang.model.element.ExecutableElement m)
      Returns true if the method is final.
      boolean isInnerClass​(javax.lang.model.element.TypeElement clazz)
      Returns true if the given class is an inner class.
      boolean isInterface​(javax.lang.model.element.TypeElement clazz)
      Returns true if 'clazz' is an interface.
      boolean isOverriding​(javax.lang.model.element.ExecutableElement method, javax.lang.model.element.TypeElement base)
      Returns true if the given method is overriding another one defined in the base class 'base' or its ancestors.
      boolean isParameterizedType​(javax.lang.model.type.TypeMirror typeMirror)
      Returns true if t is a parameterized type.
      boolean isPrimitive​(javax.lang.model.type.TypeMirror t)
      Checks if the given type is a primitive type.
      boolean isPublicField​(javax.lang.model.element.VariableElement f)
      Returns true if the field is public.
      boolean isPublicMethod​(javax.lang.model.element.ExecutableElement m)
      Returns true if the method is public.
      boolean isSameType​(javax.lang.model.type.TypeMirror t1, javax.lang.model.type.TypeMirror t2)
      Checks if types are the same
      boolean isStaticField​(javax.lang.model.element.VariableElement f)
      Returns true if the field is static.
      boolean isStaticMethod​(javax.lang.model.element.ExecutableElement m)
      Returns true if the method is static.
      boolean isSubClassOf​(javax.lang.model.type.TypeMirror sub, javax.lang.model.type.TypeMirror sup)
      Checks if sub is a sub-type of sup.
      boolean isTransient​(javax.lang.model.element.VariableElement f)
      Returns true if the field is transient.
      javax.lang.model.element.TypeElement loadObjectFactory​(javax.lang.model.element.TypeElement referencePoint, java.lang.String packageName)
      Finds ObjectFactory for the given referencePoint.
      javax.lang.model.type.TypeMirror ref​(java.lang.Class c)
      Gets the representation of the given Java type in T.
      javax.lang.model.type.TypeMirror use​(javax.lang.model.element.TypeElement t)
      Gets the T for the given C.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ApNavigator

        public ApNavigator​(javax.annotation.processing.ProcessingEnvironment env)
    • Method Detail

      • getSuperClass

        public javax.lang.model.element.TypeElement getSuperClass​(javax.lang.model.element.TypeElement typeElement)
        Description copied from interface: Navigator
        Gets the base class of the specified class.
        Specified by:
        getSuperClass in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
        Returns:
        null if the parameter represents Object.
      • getBaseClass

        public javax.lang.model.type.TypeMirror getBaseClass​(javax.lang.model.type.TypeMirror type,
                                                             javax.lang.model.element.TypeElement sup)
        Description copied from interface: Navigator
        Gets the parameterization of the given base type.

        For example, given the following

        
         interface Foo<T> extends List<List<T>> {}
         interface Bar extends Foo<String> {}
         
        This method works like this:
        
         getBaseClass( Bar, List ) = List<List<String>>
         getBaseClass( Bar, Foo  ) = Foo<String>
         getBaseClass( Foo<? extends Number>, Collection ) = Collection<List<? extends Number>>
         getBaseClass( ArrayList<? extends BigInteger>, List ) = List<? extends BigInteger>
         
        Specified by:
        getBaseClass in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
        Parameters:
        type - The type that derives from baseType
        sup - The class whose parameterization we are interested in.
        Returns:
        The use of baseType in type. or null if the type is not assignable to the base type.
      • getClassName

        public java.lang.String getClassName​(javax.lang.model.element.TypeElement t)
        Description copied from interface: Navigator
        Gets the fully-qualified name of the class. ("java.lang.Object" for Object)
        Specified by:
        getClassName in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • getTypeName

        public java.lang.String getTypeName​(javax.lang.model.type.TypeMirror typeMirror)
        Description copied from interface: Navigator
        Gets the display name of the type object
        Specified by:
        getTypeName in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
        Returns:
        a human-readable name that the type represents.
      • getClassShortName

        public java.lang.String getClassShortName​(javax.lang.model.element.TypeElement t)
        Description copied from interface: Navigator
        Gets the short name of the class ("Object" for Object.) For nested classes, this method should just return the inner name. (for example "Inner" for "com.acme.Outer$Inner".
        Specified by:
        getClassShortName in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • getDeclaredFields

        public java.util.Collection<javax.lang.model.element.VariableElement> getDeclaredFields​(javax.lang.model.element.TypeElement typeElement)
        Description copied from interface: Navigator
        Gets all the declared fields of the given class.
        Specified by:
        getDeclaredFields in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • getDeclaredField

        public javax.lang.model.element.VariableElement getDeclaredField​(javax.lang.model.element.TypeElement clazz,
                                                                         java.lang.String fieldName)
        Description copied from interface: Navigator
        Gets the named field declared on the given class. This method doesn't visit ancestors, but does recognize non-public fields.
        Specified by:
        getDeclaredField in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
        Returns:
        null if not found
      • getDeclaredMethods

        public java.util.Collection<javax.lang.model.element.ExecutableElement> getDeclaredMethods​(javax.lang.model.element.TypeElement typeElement)
        Description copied from interface: Navigator
        Gets all the declared methods of the given class (regardless of their access modifiers, regardless of whether they override methods of the base classes.)

        Note that this method does not list methods declared on base classes.

        Specified by:
        getDeclaredMethods in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
        Returns:
        can be empty but always non-null.
      • getDeclaringClassForField

        public javax.lang.model.element.TypeElement getDeclaringClassForField​(javax.lang.model.element.VariableElement f)
        Description copied from interface: Navigator
        Gets the class that declares the given field.
        Specified by:
        getDeclaringClassForField in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • getDeclaringClassForMethod

        public javax.lang.model.element.TypeElement getDeclaringClassForMethod​(javax.lang.model.element.ExecutableElement m)
        Description copied from interface: Navigator
        Gets the class that declares the given method.
        Specified by:
        getDeclaringClassForMethod in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • getFieldType

        public javax.lang.model.type.TypeMirror getFieldType​(javax.lang.model.element.VariableElement f)
        Description copied from interface: Navigator
        Gets the type of the field.
        Specified by:
        getFieldType in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • getFieldName

        public java.lang.String getFieldName​(javax.lang.model.element.VariableElement f)
        Description copied from interface: Navigator
        Gets the name of the field.
        Specified by:
        getFieldName in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • getMethodName

        public java.lang.String getMethodName​(javax.lang.model.element.ExecutableElement m)
        Description copied from interface: Navigator
        Gets the name of the method, such as "toString" or "equals".
        Specified by:
        getMethodName in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • getReturnType

        public javax.lang.model.type.TypeMirror getReturnType​(javax.lang.model.element.ExecutableElement m)
        Description copied from interface: Navigator
        Gets the return type of a method.
        Specified by:
        getReturnType in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • getMethodParameters

        public javax.lang.model.type.TypeMirror[] getMethodParameters​(javax.lang.model.element.ExecutableElement m)
        Description copied from interface: Navigator
        Returns the list of parameters to the method.
        Specified by:
        getMethodParameters in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • isStaticMethod

        public boolean isStaticMethod​(javax.lang.model.element.ExecutableElement m)
        Description copied from interface: Navigator
        Returns true if the method is static.
        Specified by:
        isStaticMethod in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • isFinalMethod

        public boolean isFinalMethod​(javax.lang.model.element.ExecutableElement m)
        Description copied from interface: Navigator
        Returns true if the method is final.
        Specified by:
        isFinalMethod in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • isSubClassOf

        public boolean isSubClassOf​(javax.lang.model.type.TypeMirror sub,
                                    javax.lang.model.type.TypeMirror sup)
        Description copied from interface: Navigator
        Checks if sub is a sub-type of sup. TODO: should this method take T or C?
        Specified by:
        isSubClassOf in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • ref

        public javax.lang.model.type.TypeMirror ref​(java.lang.Class c)
        Description copied from interface: Navigator
        Gets the representation of the given Java type in T.
        Specified by:
        ref in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
        Parameters:
        c - can be a primitive, array, class, or anything. (therefore the return type has to be T, not C)
      • use

        public javax.lang.model.type.TypeMirror use​(javax.lang.model.element.TypeElement t)
        Description copied from interface: Navigator
        Gets the T for the given C.
        Specified by:
        use in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • asDecl

        public javax.lang.model.element.TypeElement asDecl​(javax.lang.model.type.TypeMirror m)
        Description copied from interface: Navigator
        If the given type is an use of class declaration, returns the type casted as C. Otherwise null.

        TODO: define the exact semantics.

        Specified by:
        asDecl in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • asDecl

        public javax.lang.model.element.TypeElement asDecl​(java.lang.Class c)
        Description copied from interface: Navigator
        Gets the C representation for the given class. The behavior is undefined if the class object represents primitives, arrays, and other types that are not class declaration.
        Specified by:
        asDecl in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • erasure

        public javax.lang.model.type.TypeMirror erasure​(javax.lang.model.type.TypeMirror t)
        Description copied from interface: Navigator
        Computes the erasure
        Specified by:
        erasure in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • isAbstract

        public boolean isAbstract​(javax.lang.model.element.TypeElement clazz)
        Description copied from interface: Navigator
        Returns true if this is an abstract class.
        Specified by:
        isAbstract in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • isFinal

        public boolean isFinal​(javax.lang.model.element.TypeElement clazz)
        Description copied from interface: Navigator
        Returns true if this is a final class.
        Specified by:
        isFinal in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • getEnumConstants

        public javax.lang.model.element.VariableElement[] getEnumConstants​(javax.lang.model.element.TypeElement clazz)
        Description copied from interface: Navigator
        Gets the enumeration constants from an enum class.
        Specified by:
        getEnumConstants in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
        Parameters:
        clazz - must derive from Enum.
        Returns:
        can be empty but never null.
      • getVoidType

        public javax.lang.model.type.TypeMirror getVoidType()
        Description copied from interface: Navigator
        Gets the representation of the primitive "void" type.
        Specified by:
        getVoidType in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • getPackageName

        public java.lang.String getPackageName​(javax.lang.model.element.TypeElement clazz)
        Description copied from interface: Navigator
        Gets the package name of the given class.
        Specified by:
        getPackageName in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
        Returns:
        i.e. "", "java.lang" but not null.
      • loadObjectFactory

        public javax.lang.model.element.TypeElement loadObjectFactory​(javax.lang.model.element.TypeElement referencePoint,
                                                                      java.lang.String packageName)
        Description copied from interface: Navigator
        Finds ObjectFactory for the given referencePoint.
        Specified by:
        loadObjectFactory in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
        Parameters:
        referencePoint - The class that refers to the specified class.
        Returns:
        null if not found.
      • isBridgeMethod

        public boolean isBridgeMethod​(javax.lang.model.element.ExecutableElement method)
        Description copied from interface: Navigator
        Returns true if this method is a bridge method as defined in JLS.
        Specified by:
        isBridgeMethod in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • isOverriding

        public boolean isOverriding​(javax.lang.model.element.ExecutableElement method,
                                    javax.lang.model.element.TypeElement base)
        Description copied from interface: Navigator
        Returns true if the given method is overriding another one defined in the base class 'base' or its ancestors.
        Specified by:
        isOverriding in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • isInterface

        public boolean isInterface​(javax.lang.model.element.TypeElement clazz)
        Description copied from interface: Navigator
        Returns true if 'clazz' is an interface.
        Specified by:
        isInterface in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • isTransient

        public boolean isTransient​(javax.lang.model.element.VariableElement f)
        Description copied from interface: Navigator
        Returns true if the field is transient.
        Specified by:
        isTransient in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • isInnerClass

        public boolean isInnerClass​(javax.lang.model.element.TypeElement clazz)
        Description copied from interface: Navigator
        Returns true if the given class is an inner class. This is only used to improve the error diagnostics, so it's OK to fail to detect some inner classes as such. Note that this method should return false for nested classes (static classes.)
        Specified by:
        isInnerClass in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • isSameType

        public boolean isSameType​(javax.lang.model.type.TypeMirror t1,
                                  javax.lang.model.type.TypeMirror t2)
        Description copied from interface: Navigator
        Checks if types are the same
        Specified by:
        isSameType in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
        Parameters:
        t1 - type
        t2 - type
        Returns:
        true if types are the same
      • isArray

        public boolean isArray​(javax.lang.model.type.TypeMirror type)
        Description copied from interface: Navigator
        Checks if the type is an array type.
        Specified by:
        isArray in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • isArrayButNotByteArray

        public boolean isArrayButNotByteArray​(javax.lang.model.type.TypeMirror t)
        Description copied from interface: Navigator
        Checks if the type is an array type but not byte[].
        Specified by:
        isArrayButNotByteArray in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • getComponentType

        public javax.lang.model.type.TypeMirror getComponentType​(javax.lang.model.type.TypeMirror t)
        Description copied from interface: Navigator
        Gets the component type of the array.
        Specified by:
        getComponentType in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
        Parameters:
        t - must be an array.
      • getTypeArgument

        public javax.lang.model.type.TypeMirror getTypeArgument​(javax.lang.model.type.TypeMirror typeMirror,
                                                                int i)
        Description copied from interface: Navigator
        Gets the i-th type argument from a parameterized type. For example, getTypeArgument([Map<Integer,String>],0)=Integer
        Specified by:
        getTypeArgument in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
        See Also:
        Navigator.isParameterizedType(Object)
      • isParameterizedType

        public boolean isParameterizedType​(javax.lang.model.type.TypeMirror typeMirror)
        Description copied from interface: Navigator
        Returns true if t is a parameterized type.
        Specified by:
        isParameterizedType in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • isPrimitive

        public boolean isPrimitive​(javax.lang.model.type.TypeMirror t)
        Description copied from interface: Navigator
        Checks if the given type is a primitive type.
        Specified by:
        isPrimitive in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • getPrimitive

        public javax.lang.model.type.TypeMirror getPrimitive​(java.lang.Class primitiveType)
        Description copied from interface: Navigator
        Returns the representation for the given primitive type.
        Specified by:
        getPrimitive in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
        Parameters:
        primitiveType - must be Class objects like Integer.TYPE.
      • getClassLocation

        public Location getClassLocation​(javax.lang.model.element.TypeElement typeElement)
        Description copied from interface: Navigator
        Returns a location of the specified class.
        Specified by:
        getClassLocation in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • getFieldLocation

        public Location getFieldLocation​(javax.lang.model.element.VariableElement variableElement)
        Specified by:
        getFieldLocation in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • getMethodLocation

        public Location getMethodLocation​(javax.lang.model.element.ExecutableElement executableElement)
        Specified by:
        getMethodLocation in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • hasDefaultConstructor

        public boolean hasDefaultConstructor​(javax.lang.model.element.TypeElement t)
        Description copied from interface: Navigator
        Returns true if the given class has a no-arg default constructor. The constructor does not need to be public.
        Specified by:
        hasDefaultConstructor in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • isStaticField

        public boolean isStaticField​(javax.lang.model.element.VariableElement f)
        Description copied from interface: Navigator
        Returns true if the field is static.
        Specified by:
        isStaticField in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • isPublicMethod

        public boolean isPublicMethod​(javax.lang.model.element.ExecutableElement m)
        Description copied from interface: Navigator
        Returns true if the method is public.
        Specified by:
        isPublicMethod in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • isPublicField

        public boolean isPublicField​(javax.lang.model.element.VariableElement f)
        Description copied from interface: Navigator
        Returns true if the field is public.
        Specified by:
        isPublicField in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>
      • isEnum

        public boolean isEnum​(javax.lang.model.element.TypeElement t)
        Description copied from interface: Navigator
        Returns true if this is an enum class.
        Specified by:
        isEnum in interface Navigator<javax.lang.model.type.TypeMirror,​javax.lang.model.element.TypeElement,​javax.lang.model.element.VariableElement,​javax.lang.model.element.ExecutableElement>