Package org.codehaus.janino
Class ClassFileIClass
java.lang.Object
org.codehaus.janino.IClass
org.codehaus.janino.ClassFileIClass
- All Implemented Interfaces:
IType
,ITypeVariableOrIClass
-
Nested Class Summary
Nested classes/interfaces inherited from class org.codehaus.janino.IClass
IClass.IAnnotation, IClass.IConstructor, IClass.IField, IClass.IInvocable, IClass.IMember, IClass.IMethod
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final short
private final ClassFile
private final SignatureParser.ClassSignature
private final IClassLoader
private static final Logger
private final Map<ClassFile.FieldInfo,
IClass.IField> private final Map<ClassFile.MethodInfo,
IClass.IInvocable> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static Access
accessFlags2Access
(short accessFlags) private ITypeVariableOrIClass
private ITypeVariableOrIClass[]
protected IClass
protected IClass[]
protected IClass.IConstructor[]
The uncached version ofIClass.getDeclaredIConstructors()
which must be implemented by derived classes.protected IClass.IField[]
Uncached version ofIClass.getDeclaredIFields()
.protected IClass.IMethod[]
The uncached version ofIClass.getDeclaredIMethods()
which must be implemented by derived classes.protected IClass
protected String
protected IClass.IAnnotation[]
protected IClass[]
protected ITypeVariable[]
The uncached version ofIClass.getDeclaredIConstructors()
which must be implemented by derived classes.protected IClass
protected IClass
boolean
Whether the class may be instantiated (JVMS 4.1 access_flags).boolean
isArray()
boolean
isEnum()
boolean
isFinal()
Whether subclassing is allowed (JVMS 4.1 access_flags)boolean
boolean
boolean
void
Resolves all classes referenced by this class file.private IClass
resolveClass
(short index) private IClass
resolveClass
(String descriptor) private IClass[]
resolveClasses
(short[] ifs) private IClass.IField
resolveField
(ClassFile.FieldInfo fieldInfo) private IClass.IInvocable
resolveMethod
(ClassFile.MethodInfo methodInfo) Turns aClassFile.MethodInfo
into anIClass.IInvocable
.private IClass.IAnnotation
toIAnnotation
(ClassFile.Annotation annotation) private IClass.IAnnotation[]
toIAnnotations
(ClassFile.Annotation[] annotations) Methods inherited from class org.codehaus.janino.IClass
clearIFieldCaches, findIConstructor, findIMethod, findMemberType, getArrayIClass, getArrayIClass, getComponentType, getDeclaredIClasses, getDeclaredIConstructors, getDeclaredIField, getDeclaredIFields, getDeclaredIMethods, getDeclaredIMethods, getDeclaringIClass, getDescriptor, getDescriptors, getIAnnotations, getIMethods, getInterfaces, getITypeVariables, getOuterIClass, getSuperclass, getSyntheticIFields, hasIMethod, implementsInterface, invalidateMethodCaches, isAssignableFrom, isSubclassOf, rawTypeOf, toString
-
Field Details
-
LOGGER
-
classFile
-
iClassLoader
-
accessFlags
private final short accessFlags -
classSignature
-
resolvedFields
-
resolvedClasses
-
resolvedMethods
-
-
Constructor Details
-
ClassFileIClass
- Parameters:
classFile
- Source of dataiClassLoader
-IClassLoader
through which to load other classes
-
-
Method Details
-
getITypeVariables2
Description copied from class:IClass
The uncached version ofIClass.getDeclaredIConstructors()
which must be implemented by derived classes.- Specified by:
getITypeVariables2
in classIClass
- Throws:
CompileException
-
getBounds
private ITypeVariableOrIClass[] getBounds(SignatureParser.FormalTypeParameter ftp) throws CompileException - Throws:
CompileException
-
fieldTypeSignatureToITypeVariableOrIClass
private ITypeVariableOrIClass fieldTypeSignatureToITypeVariableOrIClass(SignatureParser.FieldTypeSignature fts) throws CompileException - Throws:
CompileException
-
getDeclaredIConstructors2
Description copied from class:IClass
The uncached version ofIClass.getDeclaredIConstructors()
which must be implemented by derived classes.- Specified by:
getDeclaredIConstructors2
in classIClass
-
getDeclaredIMethods2
Description copied from class:IClass
The uncached version ofIClass.getDeclaredIMethods()
which must be implemented by derived classes.- Specified by:
getDeclaredIMethods2
in classIClass
-
getDeclaredIFields2
Description copied from class:IClass
Uncached version ofIClass.getDeclaredIFields()
.- Specified by:
getDeclaredIFields2
in classIClass
-
getDeclaredIClasses2
- Specified by:
getDeclaredIClasses2
in classIClass
- Returns:
- The member types of this type
- Throws:
CompileException
-
getDeclaringIClass2
- Specified by:
getDeclaringIClass2
in classIClass
- Returns:
- If this class is a member class, the declaring class, otherwise
null
- Throws:
CompileException
-
getOuterIClass2
- Specified by:
getOuterIClass2
in classIClass
- Throws:
CompileException
- See Also:
-
getSuperclass2
- Specified by:
getSuperclass2
in classIClass
- Throws:
CompileException
- See Also:
-
getAccess
-
isFinal
public boolean isFinal()Description copied from class:IClass
Whether subclassing is allowed (JVMS 4.1 access_flags) -
getInterfaces2
- Specified by:
getInterfaces2
in classIClass
- Throws:
CompileException
- See Also:
-
isAbstract
public boolean isAbstract()Description copied from class:IClass
Whether the class may be instantiated (JVMS 4.1 access_flags).- Specified by:
isAbstract
in classIClass
- Returns:
true
if instantiation is prohibited
-
getDescriptor2
- Specified by:
getDescriptor2
in classIClass
- Returns:
- The field descriptor for the type as defined by JVMS 4.3.2.
-
isEnum
public boolean isEnum() -
isInterface
public boolean isInterface()- Specified by:
isInterface
in classIClass
- Returns:
- Whether this type represents an interface
-
isArray
public boolean isArray() -
isPrimitive
public boolean isPrimitive()- Specified by:
isPrimitive
in classIClass
- Returns:
- Whether this type represents a primitive type or
void
-
isPrimitiveNumeric
public boolean isPrimitiveNumeric()- Specified by:
isPrimitiveNumeric
in classIClass
- Returns:
- Whether this type represents
byte
,short
,int
,long
,char
,float
ordouble
-
getComponentType2
- Specified by:
getComponentType2
in classIClass
- See Also:
-
getIAnnotations2
- Overrides:
getIAnnotations2
in classIClass
- Throws:
CompileException
-
toIAnnotations
private IClass.IAnnotation[] toIAnnotations(ClassFile.Annotation[] annotations) throws CompileException - Throws:
CompileException
-
toIAnnotation
- Throws:
CompileException
-
resolveAllClasses
Resolves all classes referenced by this class file.- Throws:
ClassNotFoundException
-
resolveClass
- Parameters:
index
- Index of the CONSTANT_Class_info to resolve (JVMS 4.4.1)- Throws:
ClassNotFoundException
-
resolveClass
- Throws:
ClassNotFoundException
-
resolveClasses
- Throws:
CompileException
-
resolveMethod
private IClass.IInvocable resolveMethod(ClassFile.MethodInfo methodInfo) throws ClassNotFoundException Turns aClassFile.MethodInfo
into anIClass.IInvocable
. This includes the checking and the removal of the magic first parameter of an inner class constructor.- Parameters:
methodInfo
-- Throws:
ClassNotFoundException
-
resolveField
- Throws:
ClassNotFoundException
-
accessFlags2Access
-