Class ClassBands


  • public class ClassBands
    extends BandSet
    Class Bands
    • 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
      • cpBands

        private final CpBands cpBands
      • 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.IOException
        Pack200Exception
      • parseClassMetadataBands

        private int parseClassMetadataBands​(java.io.InputStream in,
                                            int[] classAttrCalls)
                                     throws Pack200Exception,
                                            java.io.IOException
        Parse the class metadata bands and return the number of backwards callables.
        Parameters:
        in - TODO
        classAttrCalls - TODO
        Returns:
        the number of backwards callables.
        Throws:
        Pack200Exception - TODO
        java.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.IOException
        Pack200Exception
      • parseCodeBands

        private void parseCodeBands​(java.io.InputStream in)
                             throws Pack200Exception,
                                    java.io.IOException
        Throws:
        Pack200Exception
        java.io.IOException
      • parseFieldAttrBands

        private void parseFieldAttrBands​(java.io.InputStream in)
                                  throws java.io.IOException,
                                         Pack200Exception
        Throws:
        java.io.IOException
        Pack200Exception
      • parseFieldBands

        private void parseFieldBands​(java.io.InputStream in)
                              throws java.io.IOException,
                                     Pack200Exception
        Throws:
        java.io.IOException
        Pack200Exception
      • parseFieldMetadataBands

        private int parseFieldMetadataBands​(java.io.InputStream in,
                                            int[] fieldAttrCalls)
                                     throws Pack200Exception,
                                            java.io.IOException
        Throws:
        Pack200Exception
        java.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.IOException
        Pack200Exception
      • parseMethodAttrBands

        private void parseMethodAttrBands​(java.io.InputStream in)
                                   throws java.io.IOException,
                                          Pack200Exception
        Throws:
        java.io.IOException
        Pack200Exception
      • parseMethodBands

        private void parseMethodBands​(java.io.InputStream in)
                               throws java.io.IOException,
                                      Pack200Exception
        Throws:
        java.io.IOException
        Pack200Exception
      • parseMethodMetadataBands

        private int parseMethodMetadataBands​(java.io.InputStream in,
                                             int[] methodAttrCalls)
                                      throws Pack200Exception,
                                             java.io.IOException
        Throws:
        Pack200Exception
        java.io.IOException
      • unpack

        public void unpack()
        Specified by:
        unpack in class BandSet