public class QuickJavaClass extends java.lang.Object implements JavaClass
Modifier and Type | Field and Description |
---|---|
protected java.util.List<JavaType> |
interfaces |
protected JavaType |
superClass |
EMPTY_ARRAY
Constructor and Description |
---|
QuickJavaClass(JavaType superClass,
java.util.List<JavaType> interfaces) |
Modifier and Type | Method and Description |
---|---|
void |
clearCompiledInfo()
Clears all cached compiled information.
|
boolean |
equals(java.lang.Object o) |
java.util.Collection<JavaType> |
getActualTypeArguments()
Get the type arguments, if any.
|
JavaAnnotation |
getAnnotation(JavaType annotationType)
Retrieves the annotation declared on this element that matches
the input annotation type.
|
java.util.Collection<JavaAnnotation> |
getAnnotations()
Retrieves all the annotations declared on this element.
|
int |
getArrayDimensions() |
JavaType |
getBaseComponentType() |
JavaClass |
getClass(java.lang.String name)
Iteratively retrieves all member classes declared in this class
or its hierarchy.
|
java.util.Collection<JavaClass> |
getClasses()
Iteratively retrieves all member classes declared in this class
or its hierarchy.
|
JavaMethod |
getClinitMethod() |
JavaClass |
getClosestClass()
Synonymous with
JavaType.getTypeErasure() . |
JavaType |
getComponentType() |
JavaAnnotation |
getDeclaredAnnotation(JavaType annotationType) |
java.util.Collection<JavaAnnotation> |
getDeclaredAnnotations()
Retrieves all the annotations declared on this element.
|
java.util.Collection<JavaClass> |
getDeclaredAnonymousClasses()
Get the anonymous classes in this type.
|
JavaClass |
getDeclaredClass(java.lang.String name)
Get the direct member class that has the incoming name.
|
java.util.Collection<JavaClass> |
getDeclaredClasses()
Get the direct member classes of this type.
|
JavaMethod |
getDeclaredConstructor(JavaType[] parameters)
Get the declared constructor, which might be synthetic,
with the given parameter types.
|
java.util.Collection<JavaMethod> |
getDeclaredConstructors()
Get the collection of declared constructors, some of which might
be synthetic.
|
JavaField |
getDeclaredField(java.lang.String name) |
java.util.Collection<JavaField> |
getDeclaredFields() |
java.util.Collection<JavaClass> |
getDeclaredLocalClasses()
Get the local classes in this type.
|
JavaMethod |
getDeclaredMethod(java.lang.String name,
JavaType[] parameters)
Get the declared non-constructor method, which might be
synthetic, with the given name and parameter types.
|
java.util.Collection<JavaMethod> |
getDeclaredMethods()
Get the collection of declared non-constructor methods, some
of which might be synthetic.
|
java.util.Collection<JavaMethod> |
getDeclaredMethods(java.lang.String name)
Get the collection of declared non-constructor methods, some
of which might be synthetic, with the given name.
|
java.lang.String |
getDescriptor()
Gets the descriptor for this type, as defined by the JVMS2.
|
int |
getElementKind() |
JavaField |
getField(java.lang.String name)
Iteratively searches for a field declared in this class or its
hierarchy.
|
java.util.Collection<JavaField> |
getFields()
Iteratively retrieves all fields declared in this class and its
hierarchy.
|
JavaFile |
getFile() |
java.util.Set<JavaType> |
getHierarchy()
Recursively gets the full list of all resolved superclasses and
super-interfaces.
|
java.util.Collection<JavaType> |
getInterfaces()
The name "getInterfaces" was chosen to be consistent with
java/lang/Class.
|
JavaMethod |
getMethod(java.lang.String name,
JavaType[] parameters)
Iteratively searches for a method declared in this class or its
hierarchy.
|
java.util.Collection<JavaMethod> |
getMethods()
Iteratively retrieves all methods declared in this class or its
hierarchy.
|
java.util.Collection<JavaMethod> |
getMethods(java.lang.String name)
Iteratively retrieves all methods declared in this class or its
hierarchy.
|
int |
getModifiers() |
java.lang.String |
getName()
Gets the simplest name of this type with "[]"s if present.
|
JavaType |
getNonParameterizedType()
Get the JavaType as it was declared.
|
JavaElement |
getOwner()
Finds the owner of this JavaElement, which is the closest named
ancestor found, such as a JavaClass, JavaMethod, JavaField, etc.
|
JavaClass |
getOwningClass()
Get the owning class, which is the class that declares this member.
|
JavaPackage |
getPackage()
Gets the owning package, null if N/A.
|
java.lang.String |
getPackageName()
Gets the qualified name of the owning package.
|
JavaProvider |
getProvider()
Get a JavaProvider which can be used to resolve types.
|
java.lang.String |
getQualifiedName()
Gets the fully qualified name of this type in source format.
|
JavaType |
getQualifyingType()
Get the qualifying type of this JavaType if there is one.
|
java.lang.String |
getRawName()
Gets the raw name of this type.
|
JavaType |
getResolvedType()
A JavaField instance will return the field's type.
|
java.lang.String |
getSignature()
Gets the "Signature" attribute of this type, as defined by the
JVMS3.
|
SourceClass |
getSourceElement() |
JavaType |
getSuperclass()
The name "getSuperclass" was chosen to be consistent with
java/lang/Class.
|
CompiledTmpVariable |
getThisValue()
In the interest of minimizing the number of tmp variables
floating around in the heap, each type may create a value object
(when needed) and store it (with a weak reference) for later use.
|
java.util.Collection<JavaAnnotation> |
getTypeAnnotations()
Applies to elements that are used as a type reference which
since JDK8 can be annotated.
|
JavaClass |
getTypeErasure()
Gets the type erasure of this type, as defined by the JLS3.
|
JavaTypeVariable |
getTypeParameter(java.lang.String name) |
java.util.Collection<JavaTypeVariable> |
getTypeParameters() |
java.lang.String |
getTypeSignature()
Gets the type signature for this type, as defined by the
JVMS3.
|
java.lang.String |
getUniqueIdentifier()
Gets a unique identifier for this type.
|
java.lang.String |
getUnqualifiedName()
Gets the name of this type in its unqualified form.
|
java.util.Collection<UnresolvedType> |
getUnresolvedInterfaces()
When reverse engineering bytecode, some types cannot be resolved
if the correct owning project is not associated to the JavaProvider.
|
UnresolvedType |
getUnresolvedSuperclass()
When reverse engineering bytecode, some types cannot be resolved
if the correct owning project is not associated to the JavaProvider.
|
UnresolvedType |
getUnresolvedType()
Information about a type that has not been resolved.
|
java.net.URL |
getURL()
If the input for this type is a *.class file, the returned URL
will be for the *.class file.
|
java.lang.String |
getVMName()
Gets the VM name for this type.
|
boolean |
hasActualTypeArguments()
Determine if this type or member has explicit or implicit
(in the case of the diamond syntax) type arguments, e.g.
|
int |
hashCode() |
boolean |
hasTypeParameters() |
boolean |
isAbstract() |
boolean |
isAnnotation() |
boolean |
isAnonymousClass()
Determine if this is an anonymous class type.
|
boolean |
isArray() |
boolean |
isAssignableFrom(JavaType subject)
Determine if the incoming subject can be assigned to this JavaType.
|
boolean |
isDeprecated() |
boolean |
isEnum() |
boolean |
isErasedType()
Is this a class with type parameters instantiated without any type arguments?
For instance, the type of 'new ArrayList()' would be an erased type.
|
boolean |
isExported() |
boolean |
isFinal() |
boolean |
isHidden() |
boolean |
isInterface() |
boolean |
isLocalClass()
Determine if this is a local (to a method) class type.
|
boolean |
isMemberClass()
Determine if this is a member class type.
|
boolean |
isPackagePrivate() |
boolean |
isPrimitive()
Determine if this type is a primitive type.
|
boolean |
isPrivate() |
boolean |
isProtected() |
boolean |
isPublic() |
boolean |
isSourceElement()
Determine if this IS a SourceElement in which case this JavaElement
can be cast to a SourceElement.
|
boolean |
isStatic() |
boolean |
isSubtypeOf(JavaType supertype)
True if this is a subtype of the indicated argument.
|
boolean |
isSynthetic() |
java.lang.String |
printCompiledInfo()
Debugging function for printing out compiled information.
|
void |
setQualifyingType(JavaType qualifyingType)
Set the qualifying type of this JavaType.
|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
getAnonymousClassSuperType
hasAnnotation, hasDeclaredAnnotation
protected JavaType superClass
protected java.util.List<JavaType> interfaces
public boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public void clearCompiledInfo()
JavaClass
clearCompiledInfo
in interface JavaClass
public JavaClass getClosestClass()
JavaType
JavaType.getTypeErasure()
. If this type is a ...
... JavaClass, then it is returned.
... JavaTypeVariable, then the first bound is returned. There is always at least one bound.
... JavaWildcardType, then the lower bound is returned. There is always at least one lower bound.
.getClosestClass
in interface JavaType
public CompiledTmpVariable getThisValue()
JavaType
getThisValue
in interface JavaType
public boolean isPrimitive()
JavaType
isPrimitive
in interface JavaType
public boolean isArray()
public JavaType getComponentType()
getComponentType
in interface JavaType
public int getArrayDimensions()
getArrayDimensions
in interface JavaType
public JavaType getBaseComponentType()
getBaseComponentType
in interface JavaType
public boolean isInterface()
isInterface
in interface JavaType
public boolean isEnum()
public boolean isAnnotation()
isAnnotation
in interface JavaType
public boolean isExported()
isExported
in interface JavaType
public boolean isMemberClass()
JavaType
isMemberClass
in interface JavaType
public boolean isAnonymousClass()
JavaType
isAnonymousClass
in interface JavaType
public boolean isLocalClass()
JavaType
isLocalClass
in interface JavaType
public java.lang.String getName()
JavaType
getName
in interface JavaHasName
getName
in interface JavaType
public java.lang.String getUnqualifiedName()
JavaType
getUnqualifiedName
in interface JavaType
public java.lang.String getQualifiedName()
JavaType
getQualifiedName
in interface JavaType
java.lang.Object
java.util.Map<String,String>
java.lang.String[][]
public java.lang.String getRawName()
JavaType
getRawName
in interface JavaType
public java.lang.String getVMName()
JavaType
public JavaClass getTypeErasure()
JavaType
getTypeErasure
in interface JavaType
public java.lang.String getDescriptor()
JavaType
getDescriptor
in interface JavaType
public java.lang.String getTypeSignature()
JavaType
Ljava/util/List<Ljava/lang/Object;>;
A JavaTypeVariable returns its "TypeVariableSignature" (JVMS3). A
type variable is uniquely identified by the combination of its
owning declaration AND its type signature. Example value:
TE;
A WildcardType returns its "TypeArgument" value (JVMS3). A
wildcard type is uniquely identified by its type
signature. Example values: *
+Ljava/lang/Object;
.
Inner class are separated from their outer class by '.', e.g.
Ljava/util/AbstractList<TE;>.Itr;Ljava/util/ListIterator<TE;>; getTypeSignature
in interface JavaType
public java.lang.String getSignature()
JavaType
getSignature
in interface JavaType
public java.lang.String getUniqueIdentifier()
JavaType
getUniqueIdentifier
in interface JavaMember
getUniqueIdentifier
in interface JavaType
public JavaPackage getPackage()
JavaType
getPackage
in interface JavaType
public java.lang.String getPackageName()
JavaType
getPackageName
in interface JavaType
public JavaType getSuperclass()
JavaType
getSuperclass
in interface JavaType
public UnresolvedType getUnresolvedSuperclass()
JavaType
getUnresolvedSuperclass
in interface JavaType
public java.util.Collection<JavaType> getInterfaces()
JavaType
getInterfaces
in interface JavaType
public java.util.Collection<UnresolvedType> getUnresolvedInterfaces()
JavaType
getUnresolvedInterfaces
in interface JavaType
public java.util.Set<JavaType> getHierarchy()
JavaType
getHierarchy
in interface JavaType
public boolean isAssignableFrom(JavaType subject)
JavaType
isAssignableFrom
in interface JavaType
Conversions.applyAssignmentConversion(oracle.javatools.parser.java.v2.model.JavaType, oracle.javatools.parser.java.v2.model.JavaType, boolean, oracle.javatools.parser.java.v2.JavaProvider)
public boolean isSubtypeOf(JavaType supertype)
JavaType
isSubtypeOf
in interface JavaType
public java.util.Collection<JavaField> getDeclaredFields()
getDeclaredFields
in interface JavaType
public JavaField getDeclaredField(java.lang.String name)
getDeclaredField
in interface JavaType
name
- Require non-null.public java.util.Collection<JavaMethod> getDeclaredConstructors()
JavaType
getDeclaredConstructors
in interface JavaType
public JavaMethod getDeclaredConstructor(JavaType[] parameters)
JavaType
getDeclaredConstructor
in interface JavaType
parameters
- The parameter types, null indicates
an empty parameter list.public java.util.Collection<JavaMethod> getDeclaredMethods()
JavaType
getDeclaredMethods
in interface JavaType
public java.util.Collection<JavaMethod> getDeclaredMethods(java.lang.String name)
JavaType
getDeclaredMethods
in interface JavaType
name
- A name which should not be nullpublic JavaMethod getDeclaredMethod(java.lang.String name, JavaType[] parameters)
JavaType
getDeclaredMethod
in interface JavaType
name
- A name which should not be nullparameters
- The parameter types, null indicates
an empty parameter list.public java.util.Collection<JavaClass> getDeclaredClasses()
JavaType
getDeclaredClasses
in interface JavaType
public JavaClass getDeclaredClass(java.lang.String name)
JavaType
getDeclaredClass
in interface JavaType
public java.util.Collection<JavaClass> getDeclaredAnonymousClasses()
JavaType
getDeclaredAnonymousClasses
in interface JavaType
public java.util.Collection<JavaClass> getDeclaredLocalClasses()
JavaType
getDeclaredLocalClasses
in interface JavaType
public JavaMethod getClinitMethod()
getClinitMethod
in interface JavaType
public java.util.Collection<JavaField> getFields()
JavaType
public JavaField getField(java.lang.String name)
JavaType
public java.util.Collection<JavaMethod> getMethods()
JavaType
getMethods
in interface JavaType
public java.util.Collection<JavaMethod> getMethods(java.lang.String name)
JavaType
getMethods
in interface JavaType
name
- Require non-null.public JavaMethod getMethod(java.lang.String name, JavaType[] parameters)
JavaType
public java.util.Collection<JavaClass> getClasses()
JavaType
getClasses
in interface JavaType
public JavaClass getClass(java.lang.String name)
JavaType
public java.net.URL getURL()
JavaType
public JavaClass getOwningClass()
JavaMember
getOwningClass
in interface JavaMember
public boolean isPublic()
isPublic
in interface JavaMember
public boolean isProtected()
isProtected
in interface JavaMember
public boolean isPrivate()
isPrivate
in interface JavaMember
public boolean isStatic()
isStatic
in interface JavaMember
public boolean isAbstract()
isAbstract
in interface JavaMember
public boolean isPackagePrivate()
isPackagePrivate
in interface JavaMember
public int getElementKind()
getElementKind
in interface JavaElement
public JavaFile getFile()
getFile
in interface JavaElement
public JavaElement getOwner()
JavaElement
getOwner
in interface JavaElement
public boolean isSourceElement()
JavaElement
isSourceElement
in interface JavaElement
public SourceClass getSourceElement()
getSourceElement
in interface JavaClass
getSourceElement
in interface JavaElement
public int getModifiers()
getModifiers
in interface JavaElement
public boolean isFinal()
isFinal
in interface JavaElement
public boolean isSynthetic()
isSynthetic
in interface JavaElement
public boolean isHidden()
isHidden
in interface JavaElement
public boolean isDeprecated()
isDeprecated
in interface JavaElement
public java.lang.String printCompiledInfo()
JavaElement
printCompiledInfo
in interface JavaElement
public JavaType getResolvedType()
JavaHasType
getResolvedType
in interface JavaHasType
public UnresolvedType getUnresolvedType()
JavaHasType
getUnresolvedType
in interface JavaHasType
public java.util.Collection<JavaAnnotation> getDeclaredAnnotations()
JavaHasAnnotations
getDeclaredAnnotations
in interface JavaHasAnnotations
public java.util.Collection<JavaAnnotation> getAnnotations()
JavaHasAnnotations
getAnnotations
in interface JavaHasAnnotations
public JavaAnnotation getDeclaredAnnotation(JavaType annotationType)
getDeclaredAnnotation
in interface JavaHasAnnotations
public JavaAnnotation getAnnotation(JavaType annotationType)
JavaHasAnnotations
getAnnotation
in interface JavaHasAnnotations
public boolean hasTypeParameters()
hasTypeParameters
in interface JavaIsGeneric
public java.util.Collection<JavaTypeVariable> getTypeParameters()
getTypeParameters
in interface JavaIsGeneric
public JavaTypeVariable getTypeParameter(java.lang.String name)
getTypeParameter
in interface JavaIsGeneric
public boolean hasActualTypeArguments()
JavaIsGeneric
hasActualTypeArguments
in interface JavaIsGeneric
public java.util.Collection<JavaType> getActualTypeArguments()
JavaIsGeneric
getActualTypeArguments
in interface JavaIsGeneric
public java.util.Collection<JavaAnnotation> getTypeAnnotations()
JavaType
getTypeAnnotations
in interface JavaType
public boolean isErasedType()
JavaType
isErasedType
in interface JavaType
public JavaProvider getProvider()
JavaType
getProvider
in interface JavaType
public JavaType getQualifyingType()
JavaType
getQualifyingType
in interface JavaType
public void setQualifyingType(JavaType qualifyingType)
JavaType
setQualifyingType
in interface JavaType
qualifyingType
- The qualifying typepublic JavaType getNonParameterizedType()
JavaType
getNonParameterizedType
in interface JavaType