public abstract class BuiltinClassImpl extends AnnotatedElementImpl implements MClass
Base class for types that are 'built in' to the VM. This includes void, primitives (but not their wrappers like Integer), and array types. Note that java.lang.Object is not considered a Builtin.
Note that while builtin classes cannot be modified, they can be annotated and commented.
I think this is going to include generics as well.NO_ANNOTATION, NO_CLASS, NO_COMMENT, NO_CONSTRUCTOR, NO_FIELD, NO_METHOD, NO_NODE, NO_PACKAGE, NO_PARAMETER, NO_PROPERTY| Modifier and Type | Method and Description |
|---|---|
void |
accept(JVisitor visitor)
Accepts the given visitor.
|
void |
accept(MVisitor visitor) |
void |
addInterface(JClass interf)
Adds to the list of interfaces implemented by this class.
|
void |
addInterface(String className)
Adds to the list of interfaces implemented by this class.
|
void |
addInterfaceUnqualified(String unqualifiedClassName)
Adds to the list of interfaces implemented by this class.
|
MConstructor |
addNewConstructor()
Creates a new constructor, adds it to this class, and returns it.
|
JProperty |
addNewDeclaredProperty(String name,
JMethod m,
JMethod x) |
MField |
addNewField()
Creates a new field, adds it to this class, and returns it.
|
MClass |
addNewInnerClass(String named) |
MMethod |
addNewMethod()
Creates a new method, adds it to this class, and returns it.
|
JProperty |
addNewProperty(String name,
JMethod m,
JMethod x) |
boolean |
equals(Object o)
Two JClasses are always considered equal as long as their
qualified names are the same.
|
JClass |
forName(String fd)
Shorthand for myClass.getClassLoader().loadClass(name)
|
JClass |
getArrayComponentType()
Returns the Class representing the component type of an array.
|
int |
getArrayDimensions()
If this JClass represents an array type (isArray() == true),
returns the number of dimensions in the array.
|
JClass[] |
getClasses()
Returns an unordered array containing the inner classes for this class.
|
JConstructor[] |
getConstructors()
Returns an unordered array containing Constructor objects reflecting
all the public constructors of the class represented by this Class
object.
|
JClass |
getContainingClass()
Returns a representation of the class which contains this
member.
|
JPackage |
getContainingPackage()
Returns a JPackage which represents the package which contains
this JClass.
|
JField[] |
getDeclaredFields()
Returns an unordered array of Field objects reflecting all the fields
declared by the class or interface represented by this Class
object.
|
JMethod[] |
getDeclaredMethods()
Returns an unordered array of Method objects reflecting all the
methods declared by the class or interface represented by this Class
object.
|
JProperty[] |
getDeclaredProperties()
Like getProperties(), but only considers methods explicitly declared
on this class in identifying the properties.
|
String |
getFieldDescriptor()
Returns the name of this member in the format described in
section 4.3.2 of the VM spec, 'Field Descriptors.' This is the
same nasty format returned by java.lang.Class.getName(), and is
the format you need to use in calls to Class.forName().
|
JField[] |
getFields()
REVIEW should we consider renaming this to getAllFields()? I
think this makes it more clear but is not consistent with
java.lang.Class.
|
JClass[] |
getImportedClasses()
Returns an unordered array of classes that were explicitly imported by
this class using an import statement.
|
JPackage[] |
getImportedPackages()
Returns an unordered set of JPackages which are imported by this class
using a package import statement (i.e.
|
JClass[] |
getInterfaces()
Returns an unordered array containing all of the interfaces directly
implemented by this class.
|
JMethod[] |
getMethods()
REVIEW should we consider renaming this to getAllMethods()? I
think this makes it more clear but is not consistent with
java.lang.Class.
|
int |
getModifiers()
Returns the modifiers specifier.
|
MConstructor[] |
getMutableConstructors()
Returns the constructors declared on this class.
|
MField[] |
getMutableFields()
Returns the fields declared on this class.
|
MMethod[] |
getMutableMethods()
Returns the EditableMethods declared on this class.
|
Class |
getPrimitiveClass()
If this JClass represents a primitive (isPrimitiveType() returns true),
this method returns the java.lang.Class representing the class of
the primitive.
|
JProperty[] |
getProperties()
Returns a representation of a java bean property as detailed in section
8.3 of the Java Beans specification, 'Design Patterns for Properties.'
A JProperty can be thought of as a union of a getter method and
corresponding setter method, although only one of these is required
(view-only and write-only properties are returned).
|
String |
getQualifiedName()
Returns a qualified name for this abstraction.
|
JSourcePosition |
getSourcePosition()
Returns an object describing the source file position of this
elements, or null if the position is unknown on not applicable.
|
JClass |
getSuperclass()
Returns the Class representing the superclass of the entity
(class, interface, primitive type or void) represented by this
Class.
|
int |
hashCode() |
boolean |
isAbstract()
Return true if this class is abstract.
|
boolean |
isAnnotationType()
Returns true if this JClass represents a JSR175 annotation type.
|
boolean |
isArrayType()
Returns true if this JClass represents an array type.
|
boolean |
isBuiltinType()
Returns true if this class is a builtin type.
|
boolean |
isEnumType()
Returns true if this class is an enumerated type.
|
boolean |
isFinal()
Return true if this class is final.
|
boolean |
isInterface()
Returns true if this JClass represents an interface.
|
boolean |
isObjectType()
Returns true if this JClass represents java.lang.Object.
|
boolean |
isPackagePrivate()
Return true if this member is package private (i.e.
|
boolean |
isPrimitiveType()
Return true if this JClass represents primitive type (int, long,
double, and so forth).
|
boolean |
isPrivate()
Return true if this member is private.
|
boolean |
isProtected()
Return true if this member is protected.
|
boolean |
isPublic()
Return true if this member is public.
|
boolean |
isStatic()
Return true if this class is static.
|
boolean |
isUnresolvedType()
Returns true if a backing entity for this class could not be
resolved.
|
boolean |
isVoidType()
Returns true if this JClass represents the void type.
|
void |
removeConstructor(MConstructor constr)
Removes a constructor from this class.
|
void |
removeDeclaredProperty(JProperty prop) |
void |
removeField(MField field)
Removes the given field from this class.
|
void |
removeInnerClass(MClass inner) |
void |
removeInterface(JClass interf)
Removes an interface from the list of interfaces implemented by
this class.
|
void |
removeInterface(String className)
Removes a named interface from the list of interfaces implemented by
this class.
|
void |
removeMethod(MMethod method)
Removes the given method from this class.
|
void |
removeProperty(JProperty prop) |
void |
setIsAnnotationType(boolean b) |
void |
setIsEnumType(boolean b) |
void |
setIsInterface(boolean b) |
void |
setIsUnresolvedType(boolean b) |
void |
setModifiers(int modifiers) |
void |
setSimpleName(String s) |
void |
setSuperclass(JClass clazz)
Sets the class which this class extends.
|
void |
setSuperclass(String qualifiedClassName)
Sets the class which this class extends.
|
void |
setSuperclassUnqualified(String unqualifiedClassName)
Sets the name of this class that this class extends.
|
addAnnotationForProxy, addLiteralAnnotation, createComment, findOrCreateAnnotation, getAllJavadocTags, getAnnotation, getAnnotation, getAnnotationProxy, getAnnotations, getAnnotationValue, getComment, getEditableProxy, getMutableAnnotation, getMutableAnnotations, getMutableComment, removeAnnotation, removeCommentcompareTo, createSourcePosition, defaultName, getArtifact, getClassLoader, getContext, getMutableSourcePosition, getParent, getSimpleName, removeSourcePosition, setArtifact, toStringaddLiteralAnnotation, createComment, findOrCreateAnnotation, getMutableAnnotation, getMutableAnnotations, getMutableComment, removeCommentcreateSourcePosition, getClassLoader, getMutableSourcePosition, removeSourcePosition, setArtifactgetClassLoader, isAssignableFromgetAllJavadocTags, getAnnotation, getAnnotation, getAnnotationProxy, getAnnotations, getAnnotationValue, getCommentgetArtifact, getParent, getSimpleName, toStringpublic void accept(JVisitor visitor)
JElementAccepts the given visitor.
public String getQualifiedName()
JElementReturns a qualified name for this abstraction. The exact format of this name depends on the particular abstraction. Please refer to the documentation for each JElement subclass for a detailed description of the qualified name formats.
getQualifiedName in interface JElementpublic String getFieldDescriptor()
JClassReturns the name of this member in the format described in
section 4.3.2 of the VM spec, 'Field Descriptors.' This is the
same nasty format returned by java.lang.Class.getName(), and is
the format you need to use in calls to Class.forName(). For
example, the ClassfileName of the class of a two-dimensional
array of strings is [[Ljava.lang.String;. For
details, see
http://java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html
getFieldDescriptor in interface JClasspublic int getModifiers()
JMemberReturns the modifiers specifier. This is a bit field exactly like those returned by java.lang.Class.getModifiers() and can be manipulated using java.lang.reflect.Modifier in the same way.
getModifiers in interface JMemberpublic boolean isPublic()
JMemberpublic boolean isPackagePrivate()
JMemberisPackagePrivate in interface JMemberpublic boolean isProtected()
JMemberisProtected in interface JMemberpublic boolean isPrivate()
JMemberpublic JSourcePosition getSourcePosition()
JElementgetSourcePosition in interface JElementgetSourcePosition in class ElementImplpublic JClass getContainingClass()
JMemberReturns a representation of the class which contains this member. Note that if this member is an inner class, this method returns the class in which this class is declared (i.e. 'outer'). If this member is a top-level class, this method will always return null.
getContainingClass in interface JClassgetContainingClass in interface JMemberpublic JClass forName(String fd)
JClasspublic JClass getArrayComponentType()
JClassReturns the Class representing the component type of an array. If this JClass does not represent an array class this method returns null.
Note that this method differs substantially from
java.lang.Class.getComponentType() in the way it
treats multidimensional arrays. Specifically, let
fooArrayClass be the class of an n dimensional array
of class foo for n > 2. For the java.lang.Class
representation of fooArrayClass,
getComponentType() will return a java.lang.Class for
an (n-1)-dimensional array of foos. By contrast,
the JClass representation of fooArrayClass will
always simply return a JClass representing foo for
any value of n > 1.
In other words, this method always returns the 'core' type of
the array, effectively hiding away all of the intermediary array
types. Given that JClass provides the additional
getArrayDimensions facility, it is felt that this is
a much easier convention for tool authors to work with.
getArrayComponentType in interface JClasspublic int getArrayDimensions()
JClassIf this JClass represents an array type (isArray() == true), returns the number of dimensions in the array. Otherwise returns zero.
getArrayDimensions in interface JClasspublic JClass getSuperclass()
JClassReturns the Class representing the superclass of the entity (class, interface, primitive type or void) represented by this Class. If this Class represents either the Object class, an interface, a primitive type, or void, then null is returned. If this object represents an array class then the Class object representing the Object class is returned.
getSuperclass in interface JClasspublic JClass[] getInterfaces()
JClassgetInterfaces in interface JClasspublic JField[] getFields()
JClassREVIEW should we consider renaming this to getAllFields()? I think this makes it more clear but is not consistent with java.lang.Class.
Returns an unordered array containing Field objects reflecting all the accessible public fields of the class or interface represented by this Class object. The elements2 in the array returned are not sorted and are not in any particular order. This method returns an array of length 0 if the class or interface has no accessible public fields, or if it represents an array class, a primitive type, or void.
Specifically, if this JClass object represents a class, this method returns the public fields of this class and of all its superclasses. If this JClass object represents an interface, this method returns the fields of this interface and of all its superinterfaces.
The implicit length field for array class is not reflected by this method. User code should use the methods of class Array to manipulate arrays.
Note that no guarantees are made about the ordering of fields in this array.
See The Java Language Specification, sections 8.2 and 8.3.
public JField[] getDeclaredFields()
JClassReturns an unordered array of Field objects reflecting all the fields declared by the class or interface represented by this Class object. This includes public, protected, default (package) access, and private fields, but excludes inherited fields. The elements2 in the array returned are not sorted and are not in any particular order. This method returns an array of length 0 if the class or interface declares no fields, or if this Class object represents a primitive type, an array class, or void.
See The Java Language Specification, sections 8.2 and 8.3.
getDeclaredFields in interface JClasspublic JConstructor[] getConstructors()
JClassReturns an unordered array containing Constructor objects reflecting all the public constructors of the class represented by this Class object. An array of length 0 is returned if the class has no public constructors, or if the class is an array class, or if the class reflects a primitive type or void.
getConstructors in interface JClasspublic JMethod[] getMethods()
JClassREVIEW should we consider renaming this to getAllMethods()? I think this makes it more clear but is not consistent with java.lang.Class.
Returns an array containing Method objects reflecting all the public member methods of the class or interface represented by this Class object, including those declared by the class or interface and and those inherited from superclasses and superinterfaces. The elements2 in the array returned are not sorted and are not in any particular order. This method returns an array of length 0 if this Class object represents a class or interface that has no public member methods, or if this Class object represents an array class, primitive type, or void.
The class initialization method
getMethods in interface JClasspublic JMethod[] getDeclaredMethods()
JClassReturns an unordered array of Method objects reflecting all the
methods declared by the class or interface represented by this Class
object. This includes public, protected, default (package)
access, and private methods, but excludes inherited methods. The
elements2 in the array returned are not sorted and are not in any
particular order. This method returns an array of length 0 if the
class or interface declares no methods, or if this Class object
represents a primitive type, an array class, or void. The class
initialization method
See The Java Language Specification, section 8.2.
getDeclaredMethods in interface JClasspublic JPackage getContainingPackage()
JClassReturns a JPackage which represents the package which contains this JClass.
getContainingPackage in interface JClasspublic boolean isInterface()
JClassReturns true if this JClass represents an interface.
isInterface in interface JClasspublic boolean isArrayType()
JClassReturns true if this JClass represents an array type.
isArrayType in interface JClasspublic boolean isAnnotationType()
JClassReturns true if this JClass represents a JSR175 annotation type.
isAnnotationType in interface JClasspublic boolean isPrimitiveType()
JClassisPrimitiveType in interface JClasspublic boolean isBuiltinType()
JClassisPrimitive(), isArray(),
isVoid(), or isUnresolved..isBuiltinType in interface JClasspublic boolean isUnresolvedType()
JClassReturns true if a backing entity for this class could not be resolved. This will be true, for example, of the JClass which you get when requesting a method's return type when no class for that type can be found. In this case, the JClass will be have only a name - all other properties will be null/empty.
isUnresolvedType in interface JClasspublic boolean isObjectType()
JClassReturns true if this JClass represents java.lang.Object.
isObjectType in interface JClasspublic boolean isVoidType()
JClassReturns true if this JClass represents the void type.
isVoidType in interface JClasspublic boolean isEnumType()
JClassReturns true if this class is an enumerated type.
isEnumType in interface JClasspublic Class getPrimitiveClass()
JClassIf this JClass represents a primitive (isPrimitiveType() returns true), this method returns the java.lang.Class representing the class of the primitive. For example, JClass representing an integer returns the equivalent of 'int.class' or 'java.lang.Integer.type.'
getPrimitiveClass in interface JClasspublic boolean isAbstract()
JClassisAbstract in interface JClasspublic boolean isFinal()
JClasspublic boolean isStatic()
JClasspublic JClass[] getClasses()
JClassReturns an unordered array containing the inner classes for this class. The array contains JClass objects representing all the public classes and interfaces that are members of the class represented by this JClass. This includes public class and interface members inherited from superclasses and public class and interface members declared by the class. This method returns an array of length 0 if this Class object has no public member classes or interfaces. This method also returns an array of length 0 if this JClass object represents a primitive type, an array class, or void.
Note that no guarantees are made about the ordering of classes in this array.
getClasses in interface JClasspublic JProperty[] getProperties()
JClassgetProperties in interface JClasspublic JProperty[] getDeclaredProperties()
JClassLike getProperties(), but only considers methods explicitly declared on this class in identifying the properties.
getDeclaredProperties in interface JClasspublic JPackage[] getImportedPackages()
JClassReturns an unordered set of JPackages which are imported by this class
using a package import statement (i.e. with the '*' wildcard), as well as
the containing packages of all of the JClasses returned by
getImportedClasses().
Note that this is an optional operation; if the source for the class is not available (i.e. this JClass is backed by a java.lang.Class), then this method will return an array of length 0.
getImportedPackages in interface JClasspublic JClass[] getImportedClasses()
JClassReturns an unordered array of classes that were explicitly imported by this class using an import statement. It does not include any classes that might be imported via package imports (i.e. with the '*' wildcard), nor does it include any classes that are simply used via fully-qualified name in the body of this class.
Note that this is an optional operation; if the source for the class is not available (i.e. this JClass is backed by a java.lang.Class), then this method will return an array of length 0.
getImportedClasses in interface JClasspublic MField[] getMutableFields()
MClassgetMutableFields in interface MClasspublic MConstructor[] getMutableConstructors()
MClassgetMutableConstructors in interface MClasspublic MMethod[] getMutableMethods()
MClassgetMutableMethods in interface MClasspublic void setSimpleName(String s)
setSimpleName in interface MElementsetSimpleName in class ElementImplpublic void setIsAnnotationType(boolean b)
setIsAnnotationType in interface MClasspublic void setIsInterface(boolean b)
setIsInterface in interface MClasspublic void setIsUnresolvedType(boolean b)
public void setIsEnumType(boolean b)
setIsEnumType in interface MClasspublic void setSuperclass(String qualifiedClassName)
MClasssetSuperclass in interface MClasspublic void setSuperclassUnqualified(String unqualifiedClassName)
MClasssetSuperclassUnqualified in interface MClasspublic void setSuperclass(JClass clazz)
MClasssetSuperclass in interface MClasspublic void addInterface(String className)
MClassaddInterface in interface MClasspublic void addInterfaceUnqualified(String unqualifiedClassName)
MClassaddInterfaceUnqualified in interface MClasspublic void addInterface(JClass interf)
MClassaddInterface in interface MClasspublic void removeInterface(String className)
MClassremoveInterface in interface MClasspublic void removeInterface(JClass interf)
MClassremoveInterface in interface MClasspublic MConstructor addNewConstructor()
MClassaddNewConstructor in interface MClasspublic void removeConstructor(MConstructor constr)
MClassremoveConstructor in interface MClasspublic MField addNewField()
MClassaddNewField in interface MClasspublic void removeField(MField field)
MClassremoveField in interface MClasspublic MMethod addNewMethod()
MClassaddNewMethod in interface MClasspublic void removeMethod(MMethod method)
MClassremoveMethod in interface MClasspublic void setModifiers(int modifiers)
setModifiers in interface MMemberpublic MClass addNewInnerClass(String named)
addNewInnerClass in interface MClasspublic void removeInnerClass(MClass inner)
removeInnerClass in interface MClasspublic JProperty addNewProperty(String name, JMethod m, JMethod x)
addNewProperty in interface MClasspublic void removeProperty(JProperty prop)
removeProperty in interface MClasspublic JProperty addNewDeclaredProperty(String name, JMethod m, JMethod x)
addNewDeclaredProperty in interface MClasspublic void removeDeclaredProperty(JProperty prop)
removeDeclaredProperty in interface MClasspublic boolean equals(Object o)
JClassequals in interface JClassequals in class ElementImplpublic int hashCode()
hashCode in class ElementImplCopyright © 2010 - 2020 Adobe. All Rights Reserved