org.eclipse.jpt.utility
Interface JavaType

All Superinterfaces:
java.lang.Comparable<JavaType>

public interface JavaType
extends java.lang.Comparable<JavaType>

This interface describes a Java type; i.e. its "element type" and its "array depth". The element type is referenced by name, allowing us to reference classes that are not (or cannot be) loaded. Provisional API: This interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves. This interface is not intended to be implemented by clients.


Method Summary
 void appendDeclarationTo(java.lang.StringBuilder sb)
          Append the version of the type's name that can be used in source code: "[[J" => "long[][]" "java.util.Map$Entry" => "java.util.Map.Entry"
 java.lang.String declaration()
          Return the version of the type's name that can be used in source code: "[[J" => "long[][]" "java.util.Map$Entry" => "java.util.Map.Entry"
 boolean describes(java.lang.Class<?> javaClass)
          Return whether the type describes to the specified type.
 boolean describes(java.lang.String className)
          Return whether the type describes to the specified type.
 boolean equals(JavaType other)
          Return whether the type is equal to the specified type.
 boolean equals(java.lang.String otherElementTypeName, int otherArrayDepth)
          Return whether the type is equal to the specified type.
 int getArrayDepth()
          Return the type's "array depth".
 java.lang.String getElementTypeName()
          Return the name of the type's "element type".
 java.lang.Class<?> getJavaClass()
          Return the class corresponding to the type's element type and array depth.
 java.lang.String getJavaClassName()
          Return the version of the type's name that matches that returned by java.lang.Class#getName() (e.g.
 boolean isArray()
          Return whether the type is an array (i.e.
 boolean isPrimitive()
          Return whether the type is a "primitive" (e.g.
 boolean isPrimitiveWrapper()
          Return whether the type is a "primitive" (e.g.
 boolean isVariablePrimitive()
          Return whether the type is a "variable primitive" (e.g.
 boolean isVariablePrimitiveWrapper()
          Return whether the type is a "variable primitive" (e.g.
 void printDeclarationOn(java.io.PrintWriter pw)
          Print the version of the type's name that can be used in source code: "[[J" => "long[][]" "java.util.Map$Entry" => "java.util.Map.Entry"
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Method Detail

getElementTypeName

java.lang.String getElementTypeName()
Return the name of the type's "element type". A member type will have one or more '$' characters in its name.


getArrayDepth

int getArrayDepth()
Return the type's "array depth".


isArray

boolean isArray()
Return whether the type is an array (i.e. its "array depth" is greater than zero).


isPrimitive

boolean isPrimitive()
Return whether the type is a "primitive" (e.g. 'int', 'float'). NB: void.class.isPrimitive() == true


isPrimitiveWrapper

boolean isPrimitiveWrapper()
Return whether the type is a "primitive" (e.g. 'java.lang.Integer', 'java.lang.Float'). NB: void.class.isPrimitive() == true


isVariablePrimitive

boolean isVariablePrimitive()
Return whether the type is a "variable primitive" (e.g. 'int', 'float', but not 'void'). NB: variables cannot be declared 'void'


isVariablePrimitiveWrapper

boolean isVariablePrimitiveWrapper()
Return whether the type is a "variable primitive" (e.g. 'java.lang.Integer', 'java.lang.Float', but not 'java.lang.Void'). NB: variables cannot be declared 'void'


getJavaClass

java.lang.Class<?> getJavaClass()
                                throws java.lang.ClassNotFoundException
Return the class corresponding to the type's element type and array depth.

Throws:
java.lang.ClassNotFoundException

getJavaClassName

java.lang.String getJavaClassName()
Return the version of the type's name that matches that returned by java.lang.Class#getName() (e.g. "[[J", "[Ljava.lang.Object;", "java.util.Map$Entry").


equals

boolean equals(java.lang.String otherElementTypeName,
               int otherArrayDepth)
Return whether the type is equal to the specified type.


describes

boolean describes(java.lang.String className)
Return whether the type describes to the specified type.


describes

boolean describes(java.lang.Class<?> javaClass)
Return whether the type describes to the specified type.


equals

boolean equals(JavaType other)
Return whether the type is equal to the specified type.


declaration

java.lang.String declaration()
Return the version of the type's name that can be used in source code: "[[J" => "long[][]" "java.util.Map$Entry" => "java.util.Map.Entry"


appendDeclarationTo

void appendDeclarationTo(java.lang.StringBuilder sb)
Append the version of the type's name that can be used in source code: "[[J" => "long[][]" "java.util.Map$Entry" => "java.util.Map.Entry"


printDeclarationOn

void printDeclarationOn(java.io.PrintWriter pw)
Print the version of the type's name that can be used in source code: "[[J" => "long[][]" "java.util.Map$Entry" => "java.util.Map.Entry"