You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2013/01/21 23:26:24 UTC
svn commit: r1436661 -
/uima/uimaj/branches/filteredCompress-uima-2498/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java
Author: schor
Date: Mon Jan 21 22:26:24 2013
New Revision: 1436661
URL: http://svn.apache.org/viewvc?rev=1436661&view=rev
Log:
[UIMA-2498] add Javadoc API comment, remove "i" from enum - use ordinal() call instead
Modified:
uima/uimaj/branches/filteredCompress-uima-2498/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java
Modified: uima/uimaj/branches/filteredCompress-uima-2498/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/filteredCompress-uima-2498/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java?rev=1436661&r1=1436660&r2=1436661&view=diff
==============================================================================
--- uima/uimaj/branches/filteredCompress-uima-2498/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java (original)
+++ uima/uimaj/branches/filteredCompress-uima-2498/uimaj-core/src/main/java/org/apache/uima/cas/impl/BinaryCasSerDes4.java Mon Jan 21 22:26:24 2013
@@ -126,13 +126,36 @@ import org.apache.uima.util.impl.Seriali
* Read all bytes,
* create separate ByteArrayInputStreams for each segment, sharing byte bfr
* create appropriate unzip data input streams for these
+ *
+ * API design
+ * Slow but expensive data:
+ * extra type system info - lazily created and added to shared TypeSystemImpl object
+ * set up per type actually referenced
+ * mapper for type system - lazily created and added to shared TypeSystemImpl object
+ * in identity-map cache (size limit = 10?) - key is target typesystemimpl.
+ * Defaulting:
+ * flags: doMeasurement, compressLevel, CompressStrategy
+ * Per serialize call: cas, output, [target ts], [mark for delta]
+ * Per deserialize call: cas, input, [target ts]
+ *
+ * This class has static methods with all args
+ * CASImpl has instance method with defaulting args
+ *
*/
public class BinaryCasSerDes4 {
-
- public static final int TYPECODE_COMPR = 8;
+
+ /**
+ * Version of the serializer, used to allow deserialization of
+ * older versions
+ *
+ * Version 0 - initial SVN checkin
+ * Version 1 - changes to support CasTypeSystemMapper
+ */
+ private static final int VERSION = 1;
+
+ // next must be set to true if you want the cas type system mapping to work
public static final boolean CHANGE_FS_REFS_TO_SEQUENTIAL = true;
// may add more later - to specify differing trade-offs between speed and compression
- public enum Compression {None, Compress};
public static final boolean IS_DIFF_ENCODE = true;
public static final boolean CAN_BE_NEGATIVE = true;
public static final boolean IGNORED = true;
@@ -250,20 +273,18 @@ public class BinaryCasSerDes4 {
;
- public final int i;
public final boolean isDiffEncode;
public final boolean canBeNegative;
public final boolean inMainHeap;
public final int elementSize;
public static final int NBR_SLOT_KIND_ZIP_STREAMS;
- static {NBR_SLOT_KIND_ZIP_STREAMS = Slot_StrRef.i;}
+ static {NBR_SLOT_KIND_ZIP_STREAMS = Slot_StrRef.ordinal();}
SlotKind(boolean isDiffEncode,
boolean canBeNegative,
int elementSize,
boolean inMainHeap) {
- this.i = this.ordinal();
this.isDiffEncode = isDiffEncode;
this.canBeNegative = isDiffEncode ? true : canBeNegative;
this.elementSize = elementSize;
@@ -280,24 +301,24 @@ public class BinaryCasSerDes4 {
final private boolean doMeasurements;
// speedups
- final private static int arrayLength_i = Slot_ArrayLength.i;
- final private static int heapRef_i = Slot_HeapRef.i;
- final private static int int_i = Slot_Int.i;
+ final private static int arrayLength_i = Slot_ArrayLength.ordinal();
+ final private static int heapRef_i = Slot_HeapRef.ordinal();
+ final private static int int_i = Slot_Int.ordinal();
final private static int byte_i = Slot_Byte.ordinal();
- final private static int short_i = Slot_Short.i;
- final private static int typeCode_i = Slot_TypeCode.i;
- final private static int strOffset_i = Slot_StrOffset.i;
- final private static int strLength_i = Slot_StrLength.i;
- final private static int long_High_i = Slot_Long_High.i;
- final private static int long_Low_i = Slot_Long_Low.i;
- final private static int float_Mantissa_Sign_i = Slot_Float_Mantissa_Sign.i;
- final private static int float_Exponent_i = Slot_Float_Exponent.i;
- final private static int double_Mantissa_Sign_i = Slot_Double_Mantissa_Sign.i;
- final private static int double_Exponent_i = Slot_Double_Exponent.i;
- final private static int fsIndexes_i = Slot_FsIndexes.i;
- final private static int strChars_i = Slot_StrChars.i;
- final private static int control_i = Slot_Control.i;
- final private static int strSeg_i = Slot_StrSeg.i;
+ final private static int short_i = Slot_Short.ordinal();
+ final private static int typeCode_i = Slot_TypeCode.ordinal();
+ final private static int strOffset_i = Slot_StrOffset.ordinal();
+ final private static int strLength_i = Slot_StrLength.ordinal();
+ final private static int long_High_i = Slot_Long_High.ordinal();
+ final private static int long_Low_i = Slot_Long_Low.ordinal();
+ final private static int float_Mantissa_Sign_i = Slot_Float_Mantissa_Sign.ordinal();
+ final private static int float_Exponent_i = Slot_Float_Exponent.ordinal();
+ final private static int double_Mantissa_Sign_i = Slot_Double_Mantissa_Sign.ordinal();
+ final private static int double_Exponent_i = Slot_Double_Exponent.ordinal();
+ final private static int fsIndexes_i = Slot_FsIndexes.ordinal();
+ final private static int strChars_i = Slot_StrChars.ordinal();
+ final private static int control_i = Slot_Control.ordinal();
+ final private static int strSeg_i = Slot_StrSeg.ordinal();
/**
*
@@ -617,7 +638,7 @@ public class BinaryCasSerDes4 {
***************************/
writeVnumber(control_dos, heapEnd - heapStart);
if (doMeasurement) {
- sm.statDetails[Slot_MainHeap.i].original = (1 + heapEnd - heapStart) * 4;
+ sm.statDetails[Slot_MainHeap.ordinal()].original = (1 + heapEnd - heapStart) * 4;
}
resetIprevious();
@@ -777,7 +798,7 @@ public class BinaryCasSerDes4 {
(heap[iPrevHeap + 1] == 0) ? 0 :
heap[iPrevHeap + 2];
for (int i = iHeap + 2; i < endi; i++) {
- prev = writeIntOrHeapRef(arrayElementKind.i, i, prev);
+ prev = writeIntOrHeapRef(arrayElementKind.ordinal(), i, prev);
}
}
break;
@@ -877,7 +898,7 @@ public class BinaryCasSerDes4 {
private void serializeDiffWithPrevTypeSlot(SlotKind kind, int iHeap, int offset) throws IOException {
int prev = (iPrevHeap == 0) ? 0 : heap[iPrevHeap + offset];
- writeDiff(kind.i, heap[iHeap + offset], prev);
+ writeDiff(kind.ordinal(), heap[iHeap + offset], prev);
}
/**
@@ -1866,7 +1887,7 @@ public class BinaryCasSerDes4 {
}
private DataInput getInputStream(SlotKind kind) {
- return dataInputs[kind.i];
+ return dataInputs[kind.ordinal()];
}
private int readVnumber(DataInputStream dis) throws IOException {