Class BinaryCasSerDes4

java.lang.Object
org.apache.uima.cas.impl.BinaryCasSerDes4

public class BinaryCasSerDes4 extends Object
User callable serialization and deserialization of the CAS in a compressed Binary Format This serializes/deserializes the state of the CAS, assuming that the type information remains constant. Header specifies to reader the format, and the compression level. How to Serialize: 1) create an instance of this class, specifying some options that don't change very much 2) call serialize(CAS) to serialize the cas * You can reuse the instance for a different CAS (as long as the type system is the same); this will save setup time. This class lazily constructs customized TypeInfo instances for each type encountered in serializing. These are preserved across multiple serialization calls, so their setup / initialization is only needed the first time. The form of the binary CAS is inserted at the beginning so that receivers can do the proper deserialization. Binary format requires that the exact same type system be used when deserializing How to Deserialize: 1) get an appropriate CAS to deserialize into. For delta CAS, it does not have to be empty. 2) call CASImpl: cas.reinit(inputStream) This is the existing method for binary deserialization, and it now handles this compressed version, too. Delta cas is also supported. Compression/Decompression Works in two stages: application of Zip/Unzip to particular sub-collections of CAS data, grouped according to similar data distribution collection of like kinds of data (to make the zipping more effective) There can be up to ~20 of these collections, such as control info, float-exponents, string chars Deserialization: Read all bytes, create separate ByteArrayInputStreams for each segment, sharing byte bfr create appropriate unzip data input streams for these
  • Field Details

    • TYPECODE_COMPR

      public static final int TYPECODE_COMPR
      See Also:
    • CHANGE_FS_REFS_TO_SEQUENTIAL

      public static final boolean CHANGE_FS_REFS_TO_SEQUENTIAL
      See Also:
    • IS_DIFF_ENCODE

      public static final boolean IS_DIFF_ENCODE
      See Also:
    • CAN_BE_NEGATIVE

      public static final boolean CAN_BE_NEGATIVE
      See Also:
    • IGNORED

      public static final boolean IGNORED
      See Also:
    • IN_MAIN_HEAP

      public static final boolean IN_MAIN_HEAP
      See Also:
    • DBL_1

      private static final long DBL_1
    • typeInfoArray

      private final BinaryCasSerDes4.TypeInfo[] typeInfoArray
      Things set up for one instance of this class, and reuse-able
    • ts

      private final TypeSystemImpl ts
    • doMeasurements

      private final boolean doMeasurements
    • arrayLength_i

      private static final int arrayLength_i
    • heapRef_i

      private static final int heapRef_i
    • int_i

      private static final int int_i
    • byte_i

      private static final int byte_i
    • short_i

      private static final int short_i
    • typeCode_i

      private static final int typeCode_i
    • strOffset_i

      private static final int strOffset_i
    • strLength_i

      private static final int strLength_i
    • long_High_i

      private static final int long_High_i
    • long_Low_i

      private static final int long_Low_i
    • float_Mantissa_Sign_i

      private static final int float_Mantissa_Sign_i
    • float_Exponent_i

      private static final int float_Exponent_i
    • double_Mantissa_Sign_i

      private static final int double_Mantissa_Sign_i
    • double_Exponent_i

      private static final int double_Exponent_i
    • fsIndexes_i

      private static final int fsIndexes_i
    • strChars_i

      private static final int strChars_i
    • control_i

      private static final int control_i
    • strSeg_i

      private static final int strSeg_i
  • Constructor Details

    • BinaryCasSerDes4

      public BinaryCasSerDes4(TypeSystemImpl ts, boolean doMeasurements)
      Parameters:
      ts - the type system
      doMeasurements - - normally set this to false.
  • Method Details