JavaAnnotatedElement
, JavaClass
, JavaGenericDeclaration
, JavaModel
, JavaType
, Serializable
DefaultJavaParameterizedType
, DefaultJavaTypeVariable
, DefaultJavaWildcardType
public class DefaultJavaType extends Object implements JavaClass, JavaType, Serializable
JavaType
Modifier and Type | Field | Description |
---|---|---|
protected String |
fullName |
|
protected String |
name |
Modifier and Type | Method | Description |
---|---|---|
boolean |
equals(Object obj) |
|
List<JavaAnnotation> |
getAnnotations() |
Equivalent of
AnnotatedElement.getAnnotations() |
List<BeanProperty> |
getBeanProperties() |
Gets bean properties without looking in superclasses or interfaces.
|
List<BeanProperty> |
getBeanProperties(boolean superclasses) |
|
BeanProperty |
getBeanProperty(String propertyName) |
Gets bean property without looking in superclasses or interfaces.
|
BeanProperty |
getBeanProperty(String propertyName,
boolean superclasses) |
|
String |
getBinaryName() |
The class or interface must be named by its binary name, which must meet the following constraints:
The binary name of a top level type is its canonical name.
The binary name of a member type consists of the binary name of its immediately enclosing type, followed by $, followed by the simple name of the member.
|
String |
getCanonicalName() |
Equivalent of (@link
Class.getCanonicalName() . |
String |
getCodeBlock() |
|
String |
getComment() |
Retrieve the javadoc comment of this annotated element.
|
JavaClass |
getComponentType() |
Equivalent of
Class.getComponentType()
If this type is an array, return its component type |
JavaConstructor |
getConstructor(List<JavaType> parameterTypes) |
|
JavaConstructor |
getConstructor(List<JavaType> parameterTypes,
boolean varArg) |
|
List<JavaConstructor> |
getConstructors() |
Equivalent of
Class.getConstructors() |
JavaClass |
getDeclaringClass() |
|
List<JavaClass> |
getDerivedClasses() |
Equivalent of
Class.getClasses()
Gets the known derived classes. |
int |
getDimensions() |
Returns the depth of this array, 0 if it's not an array
|
JavaField |
getEnumConstantByName(String name) |
|
List<JavaField> |
getEnumConstants() |
Based on
Class.getEnumConstants() . |
JavaField |
getFieldByName(String name) |
Equivalent of
Class.getField(String) , where this method can resolve every field |
List<JavaField> |
getFields() |
Equivalent of
Class.getFields() |
String |
getFullyQualifiedName() |
Every primitive type, named package, top level class, and top level interface has a fully qualified name:
The fully qualified name of a primitive type is the keyword for that primitive type, namely byte, short, char, int, long, float, double, or boolean.
The fully qualified name of a named package that is not a subpackage of a named package is its simple name.
The fully qualified name of a named package that is a subpackage of another named package consists of the fully qualified name of the containing package, followed by ".", followed by the simple (member) name of the subpackage.
The fully qualified name of a top level class or top level interface that is declared in an unnamed package is the simple name of the class or interface.
The fully qualified name of a top level class or top level interface that is declared in a named package consists of the fully qualified name of the package, followed by ".", followed by the simple name of the class or interface.
Each member class, member interface, and array type may have a fully qualified name:
A member class or member interface M of another class or interface C has a fully qualified name if and only if C has a fully qualified name.
In that case, the fully qualified name of M consists of the fully qualified name of C, followed by ".", followed by the simple name of M.
An array type has a fully qualified name if and only if its element type has a fully qualified name.
In that case, the fully qualified name of an array type consists of the fully qualified name of the component type of the array type followed by "[]".
Some examples how names will be translated
|
String |
getGenericCanonicalName() |
The canonical name with generic information.
|
String |
getGenericFullyQualifiedName() |
The fully qualified name with generic information.
|
String |
getGenericValue() |
A java5+ representation of the class.
|
protected static <D extends JavaGenericDeclaration> |
getGenericValue(JavaType base,
List<JavaTypeVariable<D>> typeVariableList) |
|
List<JavaType> |
getImplements() |
|
List<JavaInitializer> |
getInitializers() |
A list if
JavaInitializer , either static or instance initializers. |
List<JavaClass> |
getInterfaces() |
Equivalent of
Class.getInterfaces()
Determines the interfaces implemented by the class or interface represented by this object. |
ClassLibrary |
getJavaClassLibrary() |
|
int |
getLineNumber() |
The line number where this element started
|
JavaMethod |
getMethod(String name,
List<JavaType> parameterTypes,
boolean varArgs) |
This should be the signature for getMethodBySignature.
|
JavaMethod |
getMethodBySignature(String name,
List<JavaType> parameterTypes) |
|
JavaMethod |
getMethodBySignature(String name,
List<JavaType> parameterTypes,
boolean superclasses) |
|
JavaMethod |
getMethodBySignature(String name,
List<JavaType> parameterTypes,
boolean superclasses,
boolean varArg) |
|
List<JavaMethod> |
getMethods() |
Equivalent of
Class.getMethods() |
List<JavaMethod> |
getMethods(boolean superclasses) |
Return declared methods and optionally the inherited methods
|
List<JavaMethod> |
getMethodsBySignature(String name,
List<JavaType> parameterTypes,
boolean superclasses) |
|
List<JavaMethod> |
getMethodsBySignature(String name,
List<JavaType> parameterTypes,
boolean superclasses,
boolean varArg) |
|
List<String> |
getModifiers() |
Equivalent of
Class.getModifiers()
This does not follow the java-api
The Class.getModifiers() returns an int , which should be decoded with the Modifier . |
String |
getName() |
Equivalent of
Class.getName() . |
String |
getNamedParameter(String tagName,
String parameterName) |
Convenience method for
getTagByName(String).getNamedParameter(String)
that also checks for null tag. |
JavaClass |
getNestedClassByName(String name) |
|
List<JavaClass> |
getNestedClasses() |
Equivalent of
Class.getDeclaredClasses() |
JavaPackage |
getPackage() |
Equivalent of
Class.getPackage() |
String |
getPackageName() |
If this class has a package, the packagename will be returned.
|
JavaSource |
getParentSource() |
|
protected static <D extends JavaGenericDeclaration> |
getResolvedFullyQualifiedName(JavaType base,
List<JavaTypeVariable<D>> typeParameters) |
|
protected static <D extends JavaGenericDeclaration> |
getResolvedGenericFullyQualifiedName(JavaType base,
List<JavaTypeVariable<D>> typeParameters) |
|
protected static <D extends JavaGenericDeclaration> |
getResolvedGenericValue(JavaType base,
List<JavaTypeVariable<D>> typeParameters) |
|
protected static <D extends JavaGenericDeclaration> |
getResolvedValue(JavaType base,
List<JavaTypeVariable<D>> typeParameters) |
|
String |
getSimpleName() |
Equivalent of
Class.getSimpleName() . |
JavaSource |
getSource() |
The compilation unit, which includes the imports, the public and anonymous classes
|
JavaType |
getSuperClass() |
|
JavaClass |
getSuperJavaClass() |
Shorthand for getSuperClass().getJavaClass() with null checking.
|
DocletTag |
getTagByName(String name) |
Retrieve the doclettag by the specified name.
|
List<DocletTag> |
getTags() |
Retrieve all defined doclet tags.
|
List<DocletTag> |
getTagsByName(String name) |
Retrieve all doclettags with a specific name.
|
List<DocletTag> |
getTagsByName(String name,
boolean superclasses) |
|
<D extends JavaGenericDeclaration> |
getTypeParameters() |
Equivalent of
GenericDeclaration.getTypeParameters() |
String |
getValue() |
If there's a reference to this class, use the value used in the code.
|
int |
hashCode() |
|
boolean |
isA(JavaClass javaClass) |
|
boolean |
isA(JavaType type) |
|
boolean |
isA(String fullClassName) |
|
boolean |
isAbstract() |
(API description of
Modifier.isAbstract(int) )
Return true if the class includes the abstract modifier, false otherwise. |
boolean |
isAnnotation() |
(API description of
Class.isAnnotation() ) |
boolean |
isArray() |
|
boolean |
isEnum() |
(API description of
Class.isEnum() ) |
boolean |
isFinal() |
(API description of
Modifier.isFinal(int) ) |
boolean |
isInner() |
|
boolean |
isInterface() |
(API description of
Class.isInterface() ) |
boolean |
isPrimitive() |
Equivalent of
Class.isPrimitive() |
boolean |
isPrivate() |
(API description of
Modifier.isPrivate(int) ) |
boolean |
isProtected() |
(API description of
Modifier.isProtected(int) ) |
boolean |
isPublic() |
(API description of
Modifier.isPublic(int) ) |
protected boolean |
isResolved() |
|
boolean |
isStatic() |
(API description of
Modifier.isStatic(int) ) |
boolean |
isVoid() |
|
protected static JavaType |
resolve(JavaType base,
JavaClass declaringClass,
JavaClass callingClass) |
Consider the following example
|
protected static <D extends JavaGenericDeclaration> |
resolve(JavaType base,
List<JavaTypeVariable<D>> typeParameters) |
|
String |
toGenericString() |
Returns getGenericValue() extended with the array information
|
String |
toString() |
Equivalent of
Class.toString() . |
public String getBinaryName()
The class or interface must be named by its binary name, which must meet the following constraints:
- The binary name of a top level type is its canonical name.
- The binary name of a member type consists of the binary name of its immediately enclosing type, followed by $, followed by the simple name of the member.
getBinaryName
in interface JavaType
public String getSimpleName()
Class.getSimpleName()
.getSimpleName
in interface JavaClass
public String getFullyQualifiedName()
Every primitive type, named package, top level class, and top level interface has a fully qualified name:Some examples how names will be translatedEach member class, member interface, and array type may have a fully qualified name:
- The fully qualified name of a primitive type is the keyword for that primitive type, namely byte, short, char, int, long, float, double, or boolean.
- The fully qualified name of a named package that is not a subpackage of a named package is its simple name.
- The fully qualified name of a named package that is a subpackage of another named package consists of the fully qualified name of the containing package, followed by ".", followed by the simple (member) name of the subpackage.
- The fully qualified name of a top level class or top level interface that is declared in an unnamed package is the simple name of the class or interface.
- The fully qualified name of a top level class or top level interface that is declared in a named package consists of the fully qualified name of the package, followed by ".", followed by the simple name of the class or interface.
- A member class or member interface M of another class or interface C has a fully qualified name if and only if C has a fully qualified name.
- In that case, the fully qualified name of M consists of the fully qualified name of C, followed by ".", followed by the simple name of M.
- An array type has a fully qualified name if and only if its element type has a fully qualified name.
- In that case, the fully qualified name of an array type consists of the fully qualified name of the component type of the array type followed by "[]".
Object > java.lang.Object java.util.List > java.util.List ? > ? T > T anypackage.Outer.Inner > anypackage.Outer.Inner String[][] > java.lang.String[][]
getFullyQualifiedName
in interface JavaType
null
JavaClass.getComponentType()
,
JavaType.getBinaryName()
,
https://docs.oracle.com/javase/specs/jls/se8/html/jls-6.html#jls-6.7public JavaClass getComponentType()
Class.getComponentType()
If this type is an array, return its component typegetComponentType
in interface JavaClass
null
public String getValue()
private String fieldA; // getValue() will return "String" private java.lang.String fieldA; // getValue() will return "java.lang.String" private List>String> aList; // getValue() will return "List"
public String getGenericValue()
private String fieldA; // getValue() will return "String" private java.lang.String fieldA; // getValue() will return "java.lang.String" private List>String> aList; // getValue() will return "List>String>"
getGenericValue
in interface JavaType
protected static <D extends JavaGenericDeclaration> String getGenericValue(JavaType base, List<JavaTypeVariable<D>> typeVariableList)
protected static <D extends JavaGenericDeclaration> String getResolvedValue(JavaType base, List<JavaTypeVariable<D>> typeParameters)
protected static <D extends JavaGenericDeclaration> JavaTypeVariable<D> resolve(JavaType base, List<JavaTypeVariable<D>> typeParameters)
protected boolean isResolved()
public boolean isArray()
public int getDimensions()
getDimensions
in interface JavaClass
0
public String toString()
Class.toString()
.
Converts the object to a string.toString
in interface JavaClass
toString
in class Object
Class.toString()
public String toGenericString()
Object > java.lang.Object Object[] > java.lang.Object[] List<Object> > java.lang.List<java.lang.Object> Outer.Inner > Outer$Inner Outer.Inner<Object>[][] > Outer$Inner<java.lang.Object>[][]
toGenericString
in interface JavaType
public boolean isA(JavaType type)
type
- the type to match withtrue
if this type if of type, otherwise false
public boolean isPrimitive()
Class.isPrimitive()
isPrimitive
in interface JavaClass
true
if this class represents a primitive, otherwise false
public boolean isVoid()
protected static JavaType resolve(JavaType base, JavaClass declaringClass, JavaClass callingClass)
public abstract class AbstractClass<T> { private T value; public AbstractClass( T value ) { this.value = value; } public T getValue() { return value; } } public class ConcreteClass extends AbstractClass<String> { public ConcreteClass( String s ) { super( s ); } }
We want to know the resolved returnType when calling ConcreteClass.getValue()
.
The expected type is String.
this
would be TdeclaringClass
would be AbstractClass, since that's where T is usedcallingClass
would be ConcreteClassbase
- the basedeclaringClass
- the declaring classcallingClass
- the calling classpublic String getGenericFullyQualifiedName()
getGenericFullyQualifiedName
in interface JavaType
public String getGenericCanonicalName()
getGenericCanonicalName
in interface JavaType
protected static <D extends JavaGenericDeclaration> String getResolvedGenericValue(JavaType base, List<JavaTypeVariable<D>> typeParameters)
protected static <D extends JavaGenericDeclaration> String getResolvedGenericFullyQualifiedName(JavaType base, List<JavaTypeVariable<D>> typeParameters)
protected static <D extends JavaGenericDeclaration> String getResolvedFullyQualifiedName(JavaType base, List<JavaTypeVariable<D>> typeParameters)
public JavaSource getSource()
getSource
in interface JavaClass
JavaSource
of this elementpublic int getLineNumber()
getLineNumber
in interface JavaModel
public boolean isInterface()
Class.isInterface()
)
Determines if the specified Class
object represents an interface type.
isInterface
in interface JavaClass
true
if this object represents an interface, otherwise false
public List<JavaAnnotation> getAnnotations()
AnnotatedElement.getAnnotations()
getAnnotations
in interface JavaAnnotatedElement
null
public boolean isEnum()
Class.isEnum()
)
Returns true
if and only if this class was declared as an enum in the source code.
public String getComment()
getComment
in interface JavaAnnotatedElement
null
public List<DocletTag> getTags()
getTags
in interface JavaAnnotatedElement
null
public boolean isAnnotation()
Class.isAnnotation()
)
Returns true if this Class
object represents an annotation type.
Note that if this method returns true, JavaClass.isInterface()
would also return true, as all annotation types are also interfaces.
isAnnotation
in interface JavaClass
true
if this object represents an annotation, otherwise false
public List<DocletTag> getTagsByName(String name)
getTagsByName
in interface JavaAnnotatedElement
name
- the name of the doclet tagnull
public DocletTag getTagByName(String name)
getTagByName
in interface JavaAnnotatedElement
name
- the name of the doclettag trying to retrievenull
public JavaType getSuperClass()
getSuperClass
in interface JavaClass
public JavaClass getSuperJavaClass()
getSuperJavaClass
in interface JavaClass
JavaClass
public List<JavaType> getImplements()
getImplements
in interface JavaClass
public List<JavaClass> getInterfaces()
Class.getInterfaces()
Determines the interfaces implemented by the class or interface represented by this object.getInterfaces
in interface JavaClass
null
public String getNamedParameter(String tagName, String parameterName)
getTagByName(String).getNamedParameter(String)
that also checks for null tag.getNamedParameter
in interface JavaAnnotatedElement
tagName
- the tag nameparameterName
- the parameter namenull
public String getCodeBlock()
getCodeBlock
in interface JavaClass
getCodeBlock
in interface JavaModel
public <D extends JavaGenericDeclaration> List<JavaTypeVariable<D>> getTypeParameters()
GenericDeclaration.getTypeParameters()
getTypeParameters
in interface JavaGenericDeclaration
D
- the typenull
public JavaSource getParentSource()
getParentSource
in interface JavaClass
public JavaPackage getPackage()
Class.getPackage()
getPackage
in interface JavaClass
public String getPackageName()
getPackageName
in interface JavaClass
public boolean isInner()
public List<JavaInitializer> getInitializers()
JavaInitializer
, either static or instance initializers.getInitializers
in interface JavaClass
public List<JavaMethod> getMethods()
Class.getMethods()
getMethods
in interface JavaClass
public List<JavaConstructor> getConstructors()
Class.getConstructors()
getConstructors
in interface JavaClass
public JavaConstructor getConstructor(List<JavaType> parameterTypes)
getConstructor
in interface JavaClass
parameterTypes
- the parameter types of the constructor, can be null
null
public JavaConstructor getConstructor(List<JavaType> parameterTypes, boolean varArg)
getConstructor
in interface JavaClass
parameterTypes
- the parameter types of the constructor, can be null
varArg
- define is the constructor has varArgsnull
public List<JavaMethod> getMethods(boolean superclasses)
getMethods
in interface JavaClass
superclasses
- true
if inherited methods should be returned as wellpublic JavaMethod getMethodBySignature(String name, List<JavaType> parameterTypes)
getMethodBySignature
in interface JavaClass
name
- the name of the methodparameterTypes
- the parameter types of the method, can be null
.null
public JavaMethod getMethod(String name, List<JavaType> parameterTypes, boolean varArgs)
public JavaMethod getMethodBySignature(String name, List<JavaType> parameterTypes, boolean superclasses)
getMethodBySignature
in interface JavaClass
name
- the name of the methodparameterTypes
- the parameter types of the method, can be null
superclasses
- to define if superclasses should be included as wellnull
public JavaMethod getMethodBySignature(String name, List<JavaType> parameterTypes, boolean superclasses, boolean varArg)
getMethodBySignature
in interface JavaClass
name
- the name of the methodparameterTypes
- the parameter types of the method, can be null
superclasses
- true
if inherited methods should be matched as wellvarArg
- define if the method has varArgsnull
public List<JavaMethod> getMethodsBySignature(String name, List<JavaType> parameterTypes, boolean superclasses)
getMethodsBySignature
in interface JavaClass
name
- the name of the methodparameterTypes
- the parameter types of the method, can be null
superclasses
- true
if inherited methods should be matched as wellnull
public List<JavaMethod> getMethodsBySignature(String name, List<JavaType> parameterTypes, boolean superclasses, boolean varArg)
getMethodsBySignature
in interface JavaClass
name
- the name of the methodparameterTypes
- the parameter types of the method, can be null
superclasses
- true
if inherited methods should be matched as wellvarArg
- define if the method has varArgsnull
public List<JavaField> getFields()
Class.getFields()
public JavaField getFieldByName(String name)
Class.getField(String)
, where this method can resolve every fieldgetFieldByName
in interface JavaClass
name
- the name of the fieldpublic List<JavaField> getEnumConstants()
Class.getEnumConstants()
.getEnumConstants
in interface JavaClass
enum
, otherwise null
public JavaField getEnumConstantByName(String name)
getEnumConstantByName
in interface JavaClass
name
- the name of the enum constantname
, otherwise null
public List<JavaClass> getNestedClasses()
Class.getDeclaredClasses()
getNestedClasses
in interface JavaClass
null
public JavaClass getNestedClassByName(String name)
getNestedClassByName
in interface JavaClass
public boolean isA(String fullClassName)
public boolean isA(JavaClass javaClass)
public List<BeanProperty> getBeanProperties()
getBeanProperties
in interface JavaClass
public List<BeanProperty> getBeanProperties(boolean superclasses)
getBeanProperties
in interface JavaClass
superclasses
- to define if superclasses should be included as wellpublic BeanProperty getBeanProperty(String propertyName)
getBeanProperty
in interface JavaClass
propertyName
- the name of the propertypublic BeanProperty getBeanProperty(String propertyName, boolean superclasses)
getBeanProperty
in interface JavaClass
propertyName
- the name of the propertysuperclasses
- to define if superclasses should be included as wellpublic List<JavaClass> getDerivedClasses()
Class.getClasses()
Gets the known derived classes. That is, subclasses or implementing classes.getDerivedClasses
in interface JavaClass
public List<DocletTag> getTagsByName(String name, boolean superclasses)
getTagsByName
in interface JavaClass
public ClassLibrary getJavaClassLibrary()
getJavaClassLibrary
in interface JavaClass
public String getName()
Class.getName()
.public String getCanonicalName()
Class.getCanonicalName()
.getCanonicalName
in interface JavaType
public List<String> getModifiers()
Class.getModifiers()
This does not follow the java-api
The Class.getModifiers() returns an int
, which should be decoded with the Modifier
.
This method will return a list of strings representing the modifiers.
If this member was extracted from a source, it will keep its order.
Otherwise if will be in the preferred order of the java-api.getModifiers
in interface JavaClass
public boolean isPublic()
Modifier.isPublic(int)
)
Return true
if the class includes the public modifier, false
otherwise.
public boolean isProtected()
Modifier.isProtected(int)
)
Return true
if the class includes the protected modifier, false
otherwise.
isProtected
in interface JavaClass
true
if class has the protected modifier, otherwise false
public boolean isPrivate()
Modifier.isPrivate(int)
)
Return true
if the class includes the private modifier, false
otherwise.
public boolean isFinal()
Modifier.isFinal(int)
)
Return true
if the class includes the final modifier, false
otherwise.
public boolean isStatic()
Modifier.isStatic(int)
)
Return true
if the class includes the static modifier, false
otherwise.
public boolean isAbstract()
Modifier.isAbstract(int)
)
Return true
if the class includes the abstract modifier, false
otherwise.isAbstract
in interface JavaClass
true
if class has the abstract modifier, otherwise false
public JavaClass getDeclaringClass()
getDeclaringClass
in interface JavaClass
Copyright © 2002–2018. All rights reserved.