- java.lang.Object
-
- kala.compress.harmony.unpack200.BandSet
-
- kala.compress.harmony.unpack200.ClassBands
-
public class ClassBands extends BandSet
Class Bands
-
-
Field Summary
Fields Modifier and Type Field Description private AttributeLayoutMapattrMapprivate long[]classAccessFlagsprivate java.util.ArrayList<Attribute>[]classAttributesprivate intclassCountprivate int[]classFieldCountprivate long[]classFlagsprivate int[][]classInterfacesIntsprivate int[]classMethodCountprivate int[]classSuperIntsprivate java.lang.String[]classThisprivate int[]classThisIntsprivate int[]classVersionMajorprivate int[]classVersionMinorprivate java.util.List<Attribute>[]codeAttributesprivate int[][]codeHandlerCatchPOprivate int[][]codeHandlerClassRCNprivate int[]codeHandlerCountprivate int[][]codeHandlerEndPOprivate int[][]codeHandlerStartPprivate boolean[]codeHasAttributesprivate int[]codeMaxNALocalsprivate int[]codeMaxStackprivate CpBandscpBandsprivate long[][]fieldAccessFlagsprivate java.util.ArrayList<Attribute>[][]fieldAttributesprivate java.lang.String[][]fieldDescrprivate int[][]fieldDescrIntsprivate long[][]fieldFlagsprivate IcTuple[][]icLocalprivate long[][]methodAccessFlagsprivate int[]methodAttrCallsprivate java.util.ArrayList<Attribute>[][]methodAttributesprivate java.lang.String[][]methodDescrprivate int[][]methodDescrIntsprivate long[][]methodFlagsprivate SegmentOptionsoptions
-
Constructor Summary
Constructors Constructor Description ClassBands(Segment segment)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private intgetCallCount(int[][] methodAttrIndexes, long[][] flags, int context)java.util.ArrayList<Attribute>[]getClassAttributes()int[]getClassFieldCount()long[]getClassFlags()int[][]getClassInterfacesInts()int[]getClassMethodCount()int[]getClassSuperInts()int[]getClassThisInts()int[]getClassVersionMajor()Returns null if all classes should use the default major and minor version or an array of integers containing the major version numberss to use for each class in the segmentint[]getClassVersionMinor()Returns null if all classes should use the default major and minor version or an array of integers containing the minor version numberss to use for each class in the segmentint[][]getCodeHandlerCatchPO()int[][]getCodeHandlerClassRCN()int[]getCodeHandlerCount()int[][]getCodeHandlerEndPO()int[][]getCodeHandlerStartP()boolean[]getCodeHasAttributes()int[]getCodeMaxNALocals()int[]getCodeMaxStack()java.util.ArrayList<Attribute>[][]getFieldAttributes()int[][]getFieldDescrInts()long[][]getFieldFlags()IcTuple[][]getIcLocal()java.util.ArrayList<Attribute>[][]getMethodAttributes()java.lang.String[][]getMethodDescr()int[][]getMethodDescrInts()long[][]getMethodFlags()java.util.ArrayList<java.util.List<Attribute>>getOrderedCodeAttributes()Gets an ArrayList of ArrayLists which hold the code attributes corresponding to all classes in order.long[]getRawClassFlags()private voidparseClassAttrBands(java.io.InputStream in)private intparseClassMetadataBands(java.io.InputStream in, int[] classAttrCalls)Parse the class metadata bands and return the number of backwards callables.private voidparseCodeAttrBands(java.io.InputStream in, int codeFlagsCount)private voidparseCodeBands(java.io.InputStream in)private voidparseFieldAttrBands(java.io.InputStream in)private voidparseFieldBands(java.io.InputStream in)private intparseFieldMetadataBands(java.io.InputStream in, int[] fieldAttrCalls)private MetadataBandGroup[]parseMetadata(java.io.InputStream in, java.lang.String[] RxA, int[] RxACount, int[] backwardsCallCounts, java.lang.String contextName)private voidparseMethodAttrBands(java.io.InputStream in)private voidparseMethodBands(java.io.InputStream in)private intparseMethodMetadataBands(java.io.InputStream in, int[] methodAttrCalls)voidread(java.io.InputStream in)voidunpack()-
Methods inherited from class kala.compress.harmony.unpack200.BandSet
decodeBandInt, decodeBandInt, getReferences, getReferences, parseCPClassReferences, parseCPDescriptorReferences, parseCPDoubleReferences, parseCPFieldRefReferences, parseCPFloatReferences, parseCPInterfaceMethodRefReferences, parseCPIntReferences, parseCPLongReferences, parseCPMethodRefReferences, parseCPSignatureReferences, parseCPSignatureReferences, parseCPStringReferences, parseCPUTF8References, parseCPUTF8References, parseFlags, parseFlags, parseFlags, parseFlags, parseReferences, parseReferences, unpack
-
-
-
-
Field Detail
-
classFieldCount
private int[] classFieldCount
-
classFlags
private long[] classFlags
-
classAccessFlags
private long[] classAccessFlags
-
classInterfacesInts
private int[][] classInterfacesInts
-
classMethodCount
private int[] classMethodCount
-
classSuperInts
private int[] classSuperInts
-
classThis
private java.lang.String[] classThis
-
classThisInts
private int[] classThisInts
-
classAttributes
private java.util.ArrayList<Attribute>[] classAttributes
-
classVersionMajor
private int[] classVersionMajor
-
classVersionMinor
private int[] classVersionMinor
-
icLocal
private IcTuple[][] icLocal
-
codeAttributes
private java.util.List<Attribute>[] codeAttributes
-
codeHandlerCount
private int[] codeHandlerCount
-
codeMaxNALocals
private int[] codeMaxNALocals
-
codeMaxStack
private int[] codeMaxStack
-
fieldAttributes
private java.util.ArrayList<Attribute>[][] fieldAttributes
-
fieldDescr
private java.lang.String[][] fieldDescr
-
fieldDescrInts
private int[][] fieldDescrInts
-
fieldFlags
private long[][] fieldFlags
-
fieldAccessFlags
private long[][] fieldAccessFlags
-
methodAttributes
private java.util.ArrayList<Attribute>[][] methodAttributes
-
methodDescr
private java.lang.String[][] methodDescr
-
methodDescrInts
private int[][] methodDescrInts
-
methodFlags
private long[][] methodFlags
-
methodAccessFlags
private long[][] methodAccessFlags
-
attrMap
private final AttributeLayoutMap attrMap
-
cpBands
private final CpBands cpBands
-
options
private final SegmentOptions options
-
classCount
private final int classCount
-
methodAttrCalls
private int[] methodAttrCalls
-
codeHandlerStartP
private int[][] codeHandlerStartP
-
codeHandlerEndPO
private int[][] codeHandlerEndPO
-
codeHandlerCatchPO
private int[][] codeHandlerCatchPO
-
codeHandlerClassRCN
private int[][] codeHandlerClassRCN
-
codeHasAttributes
private boolean[] codeHasAttributes
-
-
Constructor Detail
-
ClassBands
public ClassBands(Segment segment)
- Parameters:
segment- TODO
-
-
Method Detail
-
getCallCount
private int getCallCount(int[][] methodAttrIndexes, long[][] flags, int context)
-
getClassAttributes
public java.util.ArrayList<Attribute>[] getClassAttributes()
-
getClassFieldCount
public int[] getClassFieldCount()
-
getClassFlags
public long[] getClassFlags()
-
getClassInterfacesInts
public int[][] getClassInterfacesInts()
-
getClassMethodCount
public int[] getClassMethodCount()
-
getClassSuperInts
public int[] getClassSuperInts()
-
getClassThisInts
public int[] getClassThisInts()
-
getClassVersionMajor
public int[] getClassVersionMajor()
Returns null if all classes should use the default major and minor version or an array of integers containing the major version numberss to use for each class in the segment- Returns:
- Class file major version numbers, or null if none specified
-
getClassVersionMinor
public int[] getClassVersionMinor()
Returns null if all classes should use the default major and minor version or an array of integers containing the minor version numberss to use for each class in the segment- Returns:
- Class file minor version numbers, or null if none specified
-
getCodeHandlerCatchPO
public int[][] getCodeHandlerCatchPO()
-
getCodeHandlerClassRCN
public int[][] getCodeHandlerClassRCN()
-
getCodeHandlerCount
public int[] getCodeHandlerCount()
-
getCodeHandlerEndPO
public int[][] getCodeHandlerEndPO()
-
getCodeHandlerStartP
public int[][] getCodeHandlerStartP()
-
getCodeHasAttributes
public boolean[] getCodeHasAttributes()
-
getCodeMaxNALocals
public int[] getCodeMaxNALocals()
-
getCodeMaxStack
public int[] getCodeMaxStack()
-
getFieldAttributes
public java.util.ArrayList<Attribute>[][] getFieldAttributes()
-
getFieldDescrInts
public int[][] getFieldDescrInts()
-
getFieldFlags
public long[][] getFieldFlags()
-
getIcLocal
public IcTuple[][] getIcLocal()
-
getMethodAttributes
public java.util.ArrayList<Attribute>[][] getMethodAttributes()
-
getMethodDescr
public java.lang.String[][] getMethodDescr()
-
getMethodDescrInts
public int[][] getMethodDescrInts()
-
getMethodFlags
public long[][] getMethodFlags()
-
getOrderedCodeAttributes
public java.util.ArrayList<java.util.List<Attribute>> getOrderedCodeAttributes()
Gets an ArrayList of ArrayLists which hold the code attributes corresponding to all classes in order. If a class doesn't have any attributes, the corresponding element in this list will be an empty ArrayList.- Returns:
- ArrayList
-
getRawClassFlags
public long[] getRawClassFlags()
-
parseClassAttrBands
private void parseClassAttrBands(java.io.InputStream in) throws java.io.IOException, Pack200Exception- Throws:
java.io.IOExceptionPack200Exception
-
parseClassMetadataBands
private int parseClassMetadataBands(java.io.InputStream in, int[] classAttrCalls) throws Pack200Exception, java.io.IOExceptionParse the class metadata bands and return the number of backwards callables.- Parameters:
in- TODOclassAttrCalls- TODO- Returns:
- the number of backwards callables.
- Throws:
Pack200Exception- TODOjava.io.IOException- If an I/O error occurs.
-
parseCodeAttrBands
private void parseCodeAttrBands(java.io.InputStream in, int codeFlagsCount) throws java.io.IOException, Pack200Exception- Throws:
java.io.IOExceptionPack200Exception
-
parseCodeBands
private void parseCodeBands(java.io.InputStream in) throws Pack200Exception, java.io.IOException- Throws:
Pack200Exceptionjava.io.IOException
-
parseFieldAttrBands
private void parseFieldAttrBands(java.io.InputStream in) throws java.io.IOException, Pack200Exception- Throws:
java.io.IOExceptionPack200Exception
-
parseFieldBands
private void parseFieldBands(java.io.InputStream in) throws java.io.IOException, Pack200Exception- Throws:
java.io.IOExceptionPack200Exception
-
parseFieldMetadataBands
private int parseFieldMetadataBands(java.io.InputStream in, int[] fieldAttrCalls) throws Pack200Exception, java.io.IOException- Throws:
Pack200Exceptionjava.io.IOException
-
parseMetadata
private MetadataBandGroup[] parseMetadata(java.io.InputStream in, java.lang.String[] RxA, int[] RxACount, int[] backwardsCallCounts, java.lang.String contextName) throws java.io.IOException, Pack200Exception
- Throws:
java.io.IOExceptionPack200Exception
-
parseMethodAttrBands
private void parseMethodAttrBands(java.io.InputStream in) throws java.io.IOException, Pack200Exception- Throws:
java.io.IOExceptionPack200Exception
-
parseMethodBands
private void parseMethodBands(java.io.InputStream in) throws java.io.IOException, Pack200Exception- Throws:
java.io.IOExceptionPack200Exception
-
parseMethodMetadataBands
private int parseMethodMetadataBands(java.io.InputStream in, int[] methodAttrCalls) throws Pack200Exception, java.io.IOException- Throws:
Pack200Exceptionjava.io.IOException
-
read
public void read(java.io.InputStream in) throws java.io.IOException, Pack200Exception- Specified by:
readin classBandSet- Throws:
java.io.IOExceptionPack200Exception
-
-