public class ClassFileIClass extends IClass
IClass.IConstructor, IClass.IField, IClass.IInvocable, IClass.IMember, IClass.IMethod
Modifier and Type | Field and Description |
---|---|
private short |
accessFlags |
private ClassFile |
classFile |
private static boolean |
DEBUG |
private IClassLoader |
iClassLoader |
private java.util.Map<java.lang.String,IClass> |
resolvedClasses |
private java.util.Map<ClassFile.FieldInfo,IClass.IField> |
resolvedFields |
private java.util.Map<ClassFile.MethodInfo,IClass.IInvocable> |
resolvedMethods |
Constructor and Description |
---|
ClassFileIClass(ClassFile classFile,
IClassLoader iClassLoader) |
Modifier and Type | Method and Description |
---|---|
private static Access |
accessFlags2Access(short accessFlags) |
Access |
getAccess() |
protected IClass |
getComponentType2() |
protected IClass[] |
getDeclaredIClasses2() |
protected IClass.IConstructor[] |
getDeclaredIConstructors2()
The uncached version of
IClass.getDeclaredIConstructors() which must be implemented by derived classes. |
protected IClass.IField[] |
getDeclaredIFields2()
Uncached version of
IClass.getDeclaredIFields() . |
protected IClass.IMethod[] |
getDeclaredIMethods2()
The uncached version of
IClass.getDeclaredIMethods() which must be implemented by derived classes. |
protected IClass |
getDeclaringIClass2() |
protected java.lang.String |
getDescriptor2() |
protected IClass[] |
getInterfaces2() |
protected IClass |
getOuterIClass2() |
protected IClass |
getSuperclass2() |
boolean |
isAbstract()
Whether the class may be instantiated (JVMS 4.1 access_flags)
|
boolean |
isArray() |
boolean |
isFinal()
Whether subclassing is allowed (JVMS 4.1 access_flags)
|
boolean |
isInterface() |
boolean |
isPrimitive() |
boolean |
isPrimitiveNumeric() |
void |
resolveAllClasses()
Resolves all classes referenced by this class file.
|
private IClass |
resolveClass(short index) |
private IClass |
resolveClass(java.lang.String descriptor) |
private IClass[] |
resolveClasses(short[] ifs) |
private IClass.IField |
resolveField(ClassFile.FieldInfo fieldInfo) |
private IClass.IInvocable |
resolveMethod(ClassFile.MethodInfo methodInfo)
Turn a
ClassFile.MethodInfo into an IInvocable . |
clearIFieldCaches, findIConstructor, findIMethod, findMemberType, getArrayIClass, getArrayIClass, getComponentType, getDeclaredIClasses, getDeclaredIConstructors, getDeclaredIField, getDeclaredIFields, getDeclaredIMethods, getDeclaredIMethods, getDeclaringIClass, getDescriptor, getDescriptors, getIMethods, getInterfaces, getOuterIClass, getSuperclass, getSyntheticIFields, hasIMethod, implementsInterface, invalidateMethodCaches, isAssignableFrom, isSubclassOf, toString
private static final boolean DEBUG
private final ClassFile classFile
private final IClassLoader iClassLoader
private final short accessFlags
private final java.util.Map<ClassFile.FieldInfo,IClass.IField> resolvedFields
private final java.util.Map<java.lang.String,IClass> resolvedClasses
private final java.util.Map<ClassFile.MethodInfo,IClass.IInvocable> resolvedMethods
public ClassFileIClass(ClassFile classFile, IClassLoader iClassLoader)
classFile
- Source of dataiClassLoader
- IClassLoader
through which to load other classesprotected IClass.IConstructor[] getDeclaredIConstructors2()
IClass
IClass.getDeclaredIConstructors()
which must be implemented by derived classes.getDeclaredIConstructors2
in class IClass
protected IClass.IMethod[] getDeclaredIMethods2()
IClass
IClass.getDeclaredIMethods()
which must be implemented by derived classes.getDeclaredIMethods2
in class IClass
protected IClass.IField[] getDeclaredIFields2()
IClass
IClass.getDeclaredIFields()
.getDeclaredIFields2
in class IClass
protected IClass[] getDeclaredIClasses2() throws CompileException
getDeclaredIClasses2
in class IClass
CompileException
protected IClass getDeclaringIClass2() throws CompileException
getDeclaringIClass2
in class IClass
null
CompileException
protected IClass getOuterIClass2() throws CompileException
getOuterIClass2
in class IClass
CompileException
IClass.getOuterIClass()
protected IClass getSuperclass2() throws CompileException
getSuperclass2
in class IClass
CompileException
IClass.getSuperclass()
public Access getAccess()
public boolean isFinal()
IClass
protected IClass[] getInterfaces2() throws CompileException
getInterfaces2
in class IClass
CompileException
IClass.getInterfaces()
public boolean isAbstract()
IClass
isAbstract
in class IClass
true
if instantiation is prohibitedprotected java.lang.String getDescriptor2()
getDescriptor2
in class IClass
public boolean isInterface()
isInterface
in class IClass
public boolean isArray()
public boolean isPrimitive()
isPrimitive
in class IClass
public boolean isPrimitiveNumeric()
isPrimitiveNumeric
in class IClass
protected IClass getComponentType2()
getComponentType2
in class IClass
IClass.getComponentType()
public void resolveAllClasses() throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundException
private IClass resolveClass(short index) throws java.lang.ClassNotFoundException
index
- Index of the CONSTANT_Class_info to resolve (JVMS 4.4.1)java.lang.ClassNotFoundException
private IClass resolveClass(java.lang.String descriptor) throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundException
private IClass[] resolveClasses(short[] ifs) throws CompileException
CompileException
private IClass.IInvocable resolveMethod(ClassFile.MethodInfo methodInfo) throws java.lang.ClassNotFoundException
ClassFile.MethodInfo
into an IInvocable
. This includes the checking and the
removal of the magic first parameter of an inner class constructor.methodInfo
- java.lang.ClassNotFoundException
private IClass.IField resolveField(ClassFile.FieldInfo fieldInfo) throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundException
private static Access accessFlags2Access(short accessFlags)