Class BandSet

    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      class  BandSet.BandAnalysisResults
      Results obtained by trying different Codecs to encode a band
      class  BandSet.BandData
      BandData represents information about a band, e.g.
    • Constructor Summary

      Constructors 
      Constructor Description
      BandSet​(int effort, SegmentHeader header)
      Create a new BandSet
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected int[] cpEntryListToArray​(java.util.List list)
      Converts a list of ConstantPoolEntrys to an int[] array of their indices
      protected int[] cpEntryOrNullListToArray​(java.util.List theList)
      Converts a list of ConstantPoolEntrys or nulls to an int[] array of their indices +1 (or 0 for nulls)
      byte[] encodeBandInt​(java.lang.String name, int[] ints, BHSDCodec defaultCodec)
      Encode a band of integers.
      protected byte[] encodeFlags​(java.lang.String name, long[][] flags, BHSDCodec loCodec, BHSDCodec hiCodec, boolean haveHiFlags)  
      protected byte[] encodeFlags​(java.lang.String name, long[] flags, BHSDCodec loCodec, BHSDCodec hiCodec, boolean haveHiFlags)
      Encode a band of longs (values are split into their high and low 32 bits and then encoded as two separate bands
      byte[] encodeScalar​(int[] band, BHSDCodec codec)
      Encode a band without considering other Codecs
      byte[] encodeScalar​(int value, BHSDCodec codec)
      Encode a single value with the given Codec
      protected int[] integerListToArray​(java.util.List integerList)
      Converts a list of Integers to an int[] array.
      protected long[] longListToArray​(java.util.List longList)
      Converts a list of Longs to an long[] array.
      abstract void pack​(java.io.OutputStream out)
      Write the packed set of bands to the given output stream
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • BandSet

        public BandSet​(int effort,
                       SegmentHeader header)
        Create a new BandSet
        Parameters:
        effort - - the packing effort to be used (must be 1-9)
        header - - the segment header
    • Method Detail

      • pack

        public abstract void pack​(java.io.OutputStream out)
                           throws java.io.IOException,
                                  Pack200Exception
        Write the packed set of bands to the given output stream
        Parameters:
        out - TODO
        Throws:
        java.io.IOException - If an I/O error occurs.
        Pack200Exception - TODO
      • encodeScalar

        public byte[] encodeScalar​(int value,
                                   BHSDCodec codec)
                            throws Pack200Exception
        Encode a single value with the given Codec
        Parameters:
        value - - the value to encode
        codec - - Codec to use
        Returns:
        the encoded value
        Throws:
        Pack200Exception - TODO
      • encodeBandInt

        public byte[] encodeBandInt​(java.lang.String name,
                                    int[] ints,
                                    BHSDCodec defaultCodec)
                             throws Pack200Exception
        Encode a band of integers. The default codec may be used, but other Codecs are considered if effort is greater than 1.
        Parameters:
        name - - name of the band (used for debugging)
        ints - - the band
        defaultCodec - - the default Codec
        Returns:
        the encoded band
        Throws:
        Pack200Exception - TODO
      • encodeFlags

        protected byte[] encodeFlags​(java.lang.String name,
                                     long[] flags,
                                     BHSDCodec loCodec,
                                     BHSDCodec hiCodec,
                                     boolean haveHiFlags)
                              throws Pack200Exception
        Encode a band of longs (values are split into their high and low 32 bits and then encoded as two separate bands
        Parameters:
        name - - name of the band (for debugging purposes)
        flags - - the band
        loCodec - - Codec for the low 32-bits band
        hiCodec - - Codec for the high 32-bits band
        haveHiFlags - - ignores the high band if true as all values would be zero
        Returns:
        the encoded band
        Throws:
        Pack200Exception - TODO
      • integerListToArray

        protected int[] integerListToArray​(java.util.List integerList)
        Converts a list of Integers to an int[] array.
        Parameters:
        integerList - conversion source.
        Returns:
        conversion result.
      • longListToArray

        protected long[] longListToArray​(java.util.List longList)
        Converts a list of Longs to an long[] array.
        Parameters:
        longList - conversion source.
        Returns:
        conversion result.
      • cpEntryListToArray

        protected int[] cpEntryListToArray​(java.util.List list)
        Converts a list of ConstantPoolEntrys to an int[] array of their indices
        Parameters:
        list - conversion source.
        Returns:
        conversion result.
      • cpEntryOrNullListToArray

        protected int[] cpEntryOrNullListToArray​(java.util.List theList)
        Converts a list of ConstantPoolEntrys or nulls to an int[] array of their indices +1 (or 0 for nulls)
        Parameters:
        theList - conversion source.
        Returns:
        conversion result.