Web Site

org.codehaus.janino
Class IClass

java.lang.Object
  extended byorg.codehaus.janino.IClass
Direct Known Subclasses:
ClassFileIClass

public abstract class IClass
extends Object

A simplified equivalent to "java.lang.reflect".


Nested Class Summary
 class IClass.IConstructor
           
 class IClass.IField
           
 class IClass.IInvocable
           
static interface IClass.IMember
           
 class IClass.IMethod
           
 
Field Summary
static IClass BOOLEAN
           
static IClass BYTE
           
static IClass CHAR
           
protected  IClass.IField[] declaredIFields
           
protected  IClass.IMethod[] declaredIMethods
           
static IClass DOUBLE
           
static IClass FLOAT
           
static IClass INT
           
static IClass LONG
           
static IClass.IMethod[] NO_IMETHODS
           
static int PACKAGE
          Return value for IClass.IMember.getAccess().
static int PRIVATE
          Return value for IClass.IMember.getAccess().
static int PROTECTED
          Return value for IClass.IMember.getAccess().
static int PUBLIC
          Return value for IClass.IMember.getAccess().
static IClass SHORT
           
static IClass VOID
           
 
Constructor Summary
IClass()
           
 
Method Summary
static IClass createArrayIClass(IClass componentType, IClass objectType)
          Create an IClass that represents an array of the given component type.
 IClass getComponentType()
          Returns the component type of the array.
Returns "null" for classes, interfaces, primitive types and "void".
protected abstract  IClass getComponentType2()
           
 IClass[] getDeclaredIClasses()
          Returns the classes and interfaces declared as members of the class (but not inherited classes and interfaces).
Returns an empty array for an array, primitive type or "void".
protected abstract  IClass[] getDeclaredIClasses2()
           
 IClass.IConstructor[] getDeclaredIConstructors()
          Returns all the constructors declared by the class represented by the type.
protected abstract  IClass.IConstructor[] getDeclaredIConstructors2()
           
 IClass.IField[] getDeclaredIFields()
          Returns the fields of a class or interface (but not inherited fields).
Returns an empty array for an array, primitive type or "void".
protected abstract  IClass.IField[] getDeclaredIFields2()
           
 IClass.IMethod[] getDeclaredIMethods()
          Returns the methods of the class or interface (but not inherited methods).
Returns an empty array for an array, primitive type or "void".
 IClass.IMethod[] getDeclaredIMethods(String methodName)
          Returns all methods with the given name declared in the class or interface (but not inherited methods).
Returns an empty array if no methods with that name are declared.
protected abstract  IClass.IMethod[] getDeclaredIMethods2()
           
 IClass getDeclaringIClass()
          If this class is a member class, return the declaring class, otherwise return null.
protected abstract  IClass getDeclaringIClass2()
           
 String getDescriptor()
          Returns the field descriptor for the type as defined by JVMS 4.3.2.
protected abstract  String getDescriptor2()
           
static String[] getDescriptors(IClass[] iClasses)
          Convenience method that determines the field descriptors of an array of IClasses.
 IClass[] getInterfaces()
          Returns the interfaces implemented by the class.
Returns the superinterfaces of the interface.
Returns "Cloneable" and "Serializable" for arrays.
Returns an empty array for primitive types and "void".
protected abstract  IClass[] getInterfaces2()
           
 IClass getOuterIClass()
          The following types have an "outer class": Anonymous classes declared in a non-static method of a class Local classes declared in a non-static method of a class Non-static member classes
protected abstract  IClass getOuterIClass2()
           
 IClass getSuperclass()
          Returns the superclass of the class.
Returns "null" for class "Object", interfaces, arrays, primitive types and "void".
protected abstract  IClass getSuperclass2()
           
 IClass.IField[] getSyntheticIFields()
          Returns the synthetic fields of an anonymous or local class, in the order in which they are passed to all constructors.
 boolean implementsInterface(IClass that)
          If this represents a class: Return true if this class directly or indirectly implements that interface.
abstract  boolean isAbstract()
          Whether the class may be instantiated (JVMS 4.1 access_flags)
abstract  boolean isArray()
          Returns "true" if this type represents an array.
 boolean isAssignableFrom(IClass that)
          Determine if "this" is assignable from "that".
abstract  boolean isFinal()
          Whether subclassing is allowed (JVMS 4.1 access_flags)
abstract  boolean isInterface()
          Returns "true" if this type represents an interface.
abstract  boolean isPrimitive()
          Returns "true" if this type represents a primitive type or "void".
abstract  boolean isPrimitiveNumeric()
          Returns "true" if this type represents "byte", "short", "int", "long", "char", "float" or "double".
abstract  boolean isPublic()
          Whether the class may be accessed from outside its package (JVMS 4.1 access_flags)
 boolean isSubclassOf(IClass that)
          Returns true if this class is an immediate or non-immediate subclass of that class.
 String toString()
          Returns a string representation for this object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

VOID

public static final IClass VOID

BYTE

public static final IClass BYTE

CHAR

public static final IClass CHAR

DOUBLE

public static final IClass DOUBLE

FLOAT

public static final IClass FLOAT

INT

public static final IClass INT

LONG

public static final IClass LONG

SHORT

public static final IClass SHORT

BOOLEAN

public static final IClass BOOLEAN

declaredIMethods

protected IClass.IMethod[] declaredIMethods

NO_IMETHODS

public static final IClass.IMethod[] NO_IMETHODS

declaredIFields

protected IClass.IField[] declaredIFields

PRIVATE

public static final int PRIVATE
Return value for IClass.IMember.getAccess().

See Also:
Constant Field Values

PROTECTED

public static final int PROTECTED
Return value for IClass.IMember.getAccess().

See Also:
Constant Field Values

PACKAGE

public static final int PACKAGE
Return value for IClass.IMember.getAccess().

See Also:
Constant Field Values

PUBLIC

public static final int PUBLIC
Return value for IClass.IMember.getAccess().

See Also:
Constant Field Values
Constructor Detail

IClass

public IClass()
Method Detail

getDeclaredIConstructors

public final IClass.IConstructor[] getDeclaredIConstructors()
Returns all the constructors declared by the class represented by the type. If the class has a default constructor, it is included.

Returns an array with zero elements for an interface, array, primitive type or "void".


getDeclaredIConstructors2

protected abstract IClass.IConstructor[] getDeclaredIConstructors2()

getDeclaredIMethods

public final IClass.IMethod[] getDeclaredIMethods()
Returns the methods of the class or interface (but not inherited methods).
Returns an empty array for an array, primitive type or "void".


getDeclaredIMethods2

protected abstract IClass.IMethod[] getDeclaredIMethods2()

getDeclaredIMethods

public final IClass.IMethod[] getDeclaredIMethods(String methodName)
Returns all methods with the given name declared in the class or interface (but not inherited methods).
Returns an empty array if no methods with that name are declared.

Returns:
an array of IClass.IMethods that must not be modified

getDeclaredIFields

public final IClass.IField[] getDeclaredIFields()
Returns the fields of a class or interface (but not inherited fields).
Returns an empty array for an array, primitive type or "void".


getDeclaredIFields2

protected abstract IClass.IField[] getDeclaredIFields2()

getSyntheticIFields

public IClass.IField[] getSyntheticIFields()
Returns the synthetic fields of an anonymous or local class, in the order in which they are passed to all constructors.


getDeclaredIClasses

public final IClass[] getDeclaredIClasses()
                                   throws CompileException
Returns the classes and interfaces declared as members of the class (but not inherited classes and interfaces).
Returns an empty array for an array, primitive type or "void".

Throws:
CompileException

getDeclaredIClasses2

protected abstract IClass[] getDeclaredIClasses2()
                                          throws CompileException
Throws:
CompileException

getDeclaringIClass

public final IClass getDeclaringIClass()
                                throws CompileException
If this class is a member class, return the declaring class, otherwise return null.

Throws:
CompileException

getDeclaringIClass2

protected abstract IClass getDeclaringIClass2()
                                       throws CompileException
Throws:
CompileException

getOuterIClass

public final IClass getOuterIClass()
                            throws CompileException
The following types have an "outer class":

Throws:
CompileException

getOuterIClass2

protected abstract IClass getOuterIClass2()
                                   throws CompileException
Throws:
CompileException

getSuperclass

public final IClass getSuperclass()
                           throws CompileException
Returns the superclass of the class.
Returns "null" for class "Object", interfaces, arrays, primitive types and "void".

Throws:
CompileException

getSuperclass2

protected abstract IClass getSuperclass2()
                                  throws CompileException
Throws:
CompileException

isPublic

public abstract boolean isPublic()
Whether the class may be accessed from outside its package (JVMS 4.1 access_flags)


isFinal

public abstract boolean isFinal()
Whether subclassing is allowed (JVMS 4.1 access_flags)

Returns:
true if subclassing is prohibited

getInterfaces

public final IClass[] getInterfaces()
                             throws CompileException
Returns the interfaces implemented by the class.
Returns the superinterfaces of the interface.
Returns "Cloneable" and "Serializable" for arrays.
Returns an empty array for primitive types and "void".

Throws:
CompileException

getInterfaces2

protected abstract IClass[] getInterfaces2()
                                    throws CompileException
Throws:
CompileException

isAbstract

public abstract boolean isAbstract()
Whether the class may be instantiated (JVMS 4.1 access_flags)

Returns:
true if instantiation is prohibited

getDescriptor

public final String getDescriptor()
Returns the field descriptor for the type as defined by JVMS 4.3.2.


getDescriptor2

protected abstract String getDescriptor2()

getDescriptors

public static String[] getDescriptors(IClass[] iClasses)
Convenience method that determines the field descriptors of an array of IClasses.

See Also:
getDescriptor()

isInterface

public abstract boolean isInterface()
Returns "true" if this type represents an interface.


isArray

public abstract boolean isArray()
Returns "true" if this type represents an array.


isPrimitive

public abstract boolean isPrimitive()
Returns "true" if this type represents a primitive type or "void".


isPrimitiveNumeric

public abstract boolean isPrimitiveNumeric()
Returns "true" if this type represents "byte", "short", "int", "long", "char", "float" or "double".


getComponentType

public final IClass getComponentType()
Returns the component type of the array.
Returns "null" for classes, interfaces, primitive types and "void".


getComponentType2

protected abstract IClass getComponentType2()

toString

public String toString()
Returns a string representation for this object.


isAssignableFrom

public boolean isAssignableFrom(IClass that)
                         throws CompileException
Determine if "this" is assignable from "that". This is true if "this" is identical with "that" (JLS2 5.1.1), or if "that" is widening-primitive-convertible to "this" (JLS2 5.1.2), or if "that" is widening-reference-convertible to "this" (JLS2 5.1.4).

Throws:
CompileException

isSubclassOf

public boolean isSubclassOf(IClass that)
                     throws CompileException
Returns true if this class is an immediate or non-immediate subclass of that class.

Throws:
CompileException

implementsInterface

public boolean implementsInterface(IClass that)
                            throws CompileException
If this represents a class: Return true if this class directly or indirectly implements that interface.

If this represents an interface: Return true if this interface directly or indirectly extends that interface.

Throws:
CompileException

createArrayIClass

public static IClass createArrayIClass(IClass componentType,
                                       IClass objectType)
Create an IClass that represents an array of the given component type.

Parameters:
componentType -
objectType - Required because the superclass of an array class is Object by definition

Web Site