Package org.openjdk.asmtools.jasm
Class ClassData
- java.lang.Object
-
- org.openjdk.asmtools.jasm.MemberData
-
- org.openjdk.asmtools.jasm.ClassData
-
class ClassData extends MemberData
ClassData This is the main data structure for representing parsed class data. This structure renders directly to a class file.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
ClassData.CDOutputStream
This is a wrapper for DataOutputStream, used for debugging purposes.
-
Field Summary
Fields Modifier and Type Field Description (package private) DataVectorAttr<BootstrapMethodData>
bootstrapMethodsAttr
ClassData.CDOutputStream
cdos
(package private) CFVersion
cfv
(package private) MethodData
curMethod
private static java.lang.String
DEFAULT_EXTENSION
(package private) Environment
env
(package private) ConstantPool.ConstCell
father
(package private) java.util.ArrayList<FieldData>
fields
(package private) java.lang.String
fileExtension
(package private) static char
fileSeparator
(package private) DataVectorAttr<InnerClassData>
innerClasses
(package private) java.util.ArrayList<Argument>
interfaces
(package private) ConstantPool.ConstCell
me
(package private) java.util.ArrayList<MethodData>
methods
(package private) ModuleAttr
moduleAttribute
(package private) java.lang.String
myClassName
(package private) CPXAttr
nestHostAttr
(package private) NestMembersAttr
nestMembersAttr
private PermittedSubclassesAttr
permittedSubclassesAttr
protected ConstantPool
pool
private RecordData
recordData
(package private) AttrData
sourceFileNameAttr
-
Fields inherited from class org.openjdk.asmtools.jasm.MemberData
access, annotAttrInv, annotAttrVis, cls, deprecatedAttr, signatureAttr, syntheticAttr, type_annotAttrInv, type_annotAttrVis
-
-
Constructor Summary
Constructors Constructor Description ClassData(Environment env, CFVersion cfv)
canonical default constructor
-
Method Summary
-
Methods inherited from class org.openjdk.asmtools.jasm.MemberData
addAnnotations, createPseudoMod, getDataVector, init, setSignatureAttr
-
-
-
-
Field Detail
-
cfv
CFVersion cfv
-
me
ConstantPool.ConstCell me
-
father
ConstantPool.ConstCell father
-
myClassName
java.lang.String myClassName
-
sourceFileNameAttr
AttrData sourceFileNameAttr
-
interfaces
java.util.ArrayList<Argument> interfaces
-
fields
java.util.ArrayList<FieldData> fields
-
methods
java.util.ArrayList<MethodData> methods
-
innerClasses
DataVectorAttr<InnerClassData> innerClasses
-
bootstrapMethodsAttr
DataVectorAttr<BootstrapMethodData> bootstrapMethodsAttr
-
nestHostAttr
CPXAttr nestHostAttr
-
nestMembersAttr
NestMembersAttr nestMembersAttr
-
recordData
private RecordData recordData
-
permittedSubclassesAttr
private PermittedSubclassesAttr permittedSubclassesAttr
-
moduleAttribute
ModuleAttr moduleAttribute
-
env
Environment env
-
pool
protected ConstantPool pool
-
DEFAULT_EXTENSION
private static final java.lang.String DEFAULT_EXTENSION
- See Also:
- Constant Field Values
-
fileExtension
java.lang.String fileExtension
-
cdos
public ClassData.CDOutputStream cdos
-
curMethod
MethodData curMethod
-
fileSeparator
static char fileSeparator
-
-
Constructor Detail
-
ClassData
public ClassData(Environment env, CFVersion cfv)
canonical default constructor- Parameters:
env
- The error reporting environment.cfv
- The class file version that this class file supports.
-
-
Method Detail
-
init
public final void init(int access, ConstantPool.ConstCell me, ConstantPool.ConstCell father, java.util.ArrayList<Argument> interfaces)
Initializes the ClassData.- Parameters:
me
- The constant pool reference to this classfather
- The constant pool reference to the super classinterfaces
- A list of interfaces that this class implements
-
initAsModule
public final void initAsModule()
-
isInterface
public final boolean isInterface()
Predicate that describes if this class has an access flag indicating that it is an interface.- Returns:
- True if the classes access flag indicates it is an interface.
-
relinkBootstrapMethods
protected void relinkBootstrapMethods()
-
numberBootstrapMethods
protected void numberBootstrapMethods()
-
setRecord
public RecordData setRecord(int where)
-
rejectRecord
public void rejectRecord()
Rejects a record: removes the record attribute if there are no components
-
mkNape
public ConstantPool.ConstValue_Pair mkNape(ConstantPool.ConstCell name, ConstantPool.ConstCell sig)
-
mkNape
public ConstantPool.ConstValue_Pair mkNape(java.lang.String name, java.lang.String sig)
-
addFieldIfAbsent
public FieldData addFieldIfAbsent(int access, ConstantPool.ConstCell name, ConstantPool.ConstCell sig)
-
getField
private FieldData getField(ConstantPool.ConstValue_Pair nape)
-
addField
public FieldData addField(int access, ConstantPool.ConstValue_Pair nape)
-
addField
public FieldData addField(int access, ConstantPool.ConstCell name, ConstantPool.ConstCell sig)
-
addField
public FieldData addField(int access, java.lang.String name, java.lang.String type)
-
LocalFieldRef
public ConstantPool.ConstCell LocalFieldRef(FieldData field)
-
LocalFieldRef
public ConstantPool.ConstCell LocalFieldRef(ConstantPool.ConstValue nape)
-
LocalFieldRef
public ConstantPool.ConstCell LocalFieldRef(ConstantPool.ConstCell name, ConstantPool.ConstCell sig)
-
LocalFieldRef
public ConstantPool.ConstCell LocalFieldRef(java.lang.String name, java.lang.String sig)
-
StartMethod
public MethodData StartMethod(int access, ConstantPool.ConstCell name, ConstantPool.ConstCell sig, java.util.ArrayList exc_table)
-
EndMethod
public void EndMethod()
-
LocalMethodRef
public ConstantPool.ConstCell LocalMethodRef(ConstantPool.ConstValue nape)
-
LocalMethodRef
public ConstantPool.ConstCell LocalMethodRef(ConstantPool.ConstCell name, ConstantPool.ConstCell sig)
-
addLocVarData
void addLocVarData(int opc, Argument arg)
-
addInnerClass
public void addInnerClass(int access, ConstantPool.ConstCell name, ConstantPool.ConstCell innerClass, ConstantPool.ConstCell outerClass)
-
addBootstrapMethod
public void addBootstrapMethod(BootstrapMethodData bsmData)
-
addNestHost
public void addNestHost(ConstantPool.ConstCell hostClass)
-
addNestMembers
public void addNestMembers(java.util.List<ConstantPool.ConstCell> classes)
-
addPermittedSubclasses
public void addPermittedSubclasses(java.util.List<ConstantPool.ConstCell> classes)
-
endClass
public void endClass()
-
endModule
public void endModule(ModuleAttr moduleAttr)
-
printInnerClasses
private void printInnerClasses()
-
write
public void write(CheckedDataOutputStream out) throws java.io.IOException
- Throws:
java.io.IOException
-
getAttrVector
protected DataVector getAttrVector()
- Specified by:
getAttrVector
in classMemberData
-
write
public void write(java.io.File destdir) throws java.io.IOException
Writes to the directory passed with -d option- Throws:
java.io.IOException
-
setByteLimit
public void setByteLimit(int bytelimit)
-
nestHostAttributeExists
public boolean nestHostAttributeExists()
-
nestMembersAttributesExist
public boolean nestMembersAttributesExist()
-
permittedSubclassesAttributesExist
public boolean permittedSubclassesAttributesExist()
-
recordAttributeExists
public boolean recordAttributeExists()
-
-