|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectedu.rice.cs.dynamicjava.symbol.TreeClass
public class TreeClass
A DJClass wrapper for a parsed class or interface declaration.
A DJClass object must be available before any types can be created in terms of the class. Thus all class declarations introduced in some scope must have corresponding DJClasses before processing the supertypes and type parameters, etc., of those declarations. Here we handle much of this process by recursively creating all members of the given class at the time of creation, and tagging the declarations with these new objects. The members of the resulting DJClass are immediately available; type parameters and supertypes are initialized with stub Object types until the actual types can be resolved (note that, until actual types are resolved, the results of a member lookup on a TreeClass will be incorrect; but, as complex dependencies sometimes exist between name and supertype resolution, this stub information is sometimes useful).
| Constructor Summary | |
|---|---|
TreeClass(String fullName,
DJClass declaring,
Access.Module accessModule,
Node ast,
TreeClassLoader loader,
Options opt)
All the class's declared members are indexed, and the FIELD, METHOD, and DJ_CLASS properties are set (applied recursively). |
|
| Method Summary | |
|---|---|
Access |
accessibility()
The symbol's access level. |
Access.Module |
accessModule()
Get the module enclosing this symbol's declaration. |
Node |
declaration()
|
Iterable<DJClass> |
declaredClasses()
|
Iterable<DJConstructor> |
declaredConstructors()
|
Iterable<DJField> |
declaredFields()
|
Iterable<DJMethod> |
declaredMethods()
|
String |
declaredName()
Produce the (unqualified) declared name of the given class |
Iterable<Type> |
declaredSupertypes()
List the declared supertypes of this class |
Iterable<VariableType> |
declaredTypeParameters()
List all type variables declared by this class |
DJClass |
declaringClass()
The class that declares this class, or null if this is declared at a top-level or local scope |
boolean |
equals(Object o)
Equality must be defined so that distinct DJClasses that wrap the same class are equal. |
String |
fullName()
Produces the binary name for the given class (as in Class.getName()) |
int |
hashCode()
Equality must be defined so that distinct DJClasses that wrap the same class are equal. |
boolean |
hasRuntimeBindingsParams()
|
Type |
immediateSuperclass()
|
boolean |
isAbstract()
|
boolean |
isAnonymous()
|
boolean |
isFinal()
|
boolean |
isInterface()
|
boolean |
isStatic()
|
Class<?> |
load()
Produce the runtime representation of the class (as in ClassLoader.loadClass(java.lang.String),
repeated invocations should produce the same object). |
String |
packageName()
|
String |
toString()
|
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public TreeClass(String fullName,
DJClass declaring,
Access.Module accessModule,
Node ast,
TreeClassLoader loader,
Options opt)
fullName - The fully-qualified name of the class, as in Class.getName().declaring - The declaring class of this class, or null if it appears at a top level or local
scope.accessModule - The access module for this class, or null if it is its own access moduleast - The parsed declaration of this class. Must be a TypeDeclaration, AnonymousAllocation,
or AnonymousInnerAllocation.loader - A class loader for compiling and loading this class. Note that the loader must
be defined to allow transitive loading of all referenced classes.| Method Detail |
|---|
public Node declaration()
public String packageName()
packageName in interface Access.ModulepackageName in interface DJClasspublic String fullName()
Class.getName())
fullName in interface DJClasspublic boolean isAnonymous()
isAnonymous in interface DJClasspublic String declaredName()
DJClass
declaredName in interface Access.LimiteddeclaredName in interface DJClasspublic boolean isInterface()
isInterface in interface DJClasspublic boolean isStatic()
isStatic in interface DJClasspublic boolean isAbstract()
isAbstract in interface DJClasspublic boolean isFinal()
isFinal in interface DJClasspublic Access accessibility()
Access.Limited
accessibility in interface Access.Limitedaccessibility in interface DJClasspublic Access.Module accessModule()
Access.Limited
accessModule in interface Access.Limitedpublic boolean hasRuntimeBindingsParams()
hasRuntimeBindingsParams in interface DJClasspublic DJClass declaringClass()
null if this is declared at a top-level or local scope
declaringClass in interface DJClasspublic Iterable<VariableType> declaredTypeParameters()
declaredTypeParameters in interface DJClasspublic Iterable<Type> declaredSupertypes()
declaredSupertypes in interface DJClasspublic Iterable<DJField> declaredFields()
declaredFields in interface DJClasspublic Iterable<DJConstructor> declaredConstructors()
declaredConstructors in interface DJClasspublic Iterable<DJMethod> declaredMethods()
declaredMethods in interface DJClasspublic Iterable<DJClass> declaredClasses()
declaredClasses in interface DJClasspublic Type immediateSuperclass()
immediateSuperclass in interface DJClasssuper in the context of this class, or
null if super is not definedpublic Class<?> load()
ClassLoader.loadClass(java.lang.String),
repeated invocations should produce the same object).
load in interface DJClasspublic String toString()
toString in class Objectpublic boolean equals(Object o)
DJClass
equals in interface DJClassequals in class Objectpublic int hashCode()
DJClass
hashCode in interface DJClasshashCode in class Object
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||