]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.acorn/src/org/simantics/acorn/internal/ClusterUpdateProcessorBase2.java
NPE fix for Acorn cluster stream undo handling
[simantics/platform.git] / bundles / org.simantics.acorn / src / org / simantics / acorn / internal / ClusterUpdateProcessorBase2.java
diff --git a/bundles/org.simantics.acorn/src/org/simantics/acorn/internal/ClusterUpdateProcessorBase2.java b/bundles/org.simantics.acorn/src/org/simantics/acorn/internal/ClusterUpdateProcessorBase2.java
deleted file mode 100644 (file)
index 502729c..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-package org.simantics.acorn.internal;
-
-import org.simantics.acorn.exception.IllegalAcornStateException;
-import org.simantics.db.service.Bytes;
-import org.simantics.db.service.ClusterUID;
-
-public abstract class ClusterUpdateProcessorBase2 {
-
-       final private byte[] bytes;
-       private int pos = 0;
-       final private int len;
-       final private ClusterUID uid;
-       
-       public ClusterUpdateProcessorBase2(byte[] operations) {
-               this.bytes = operations;
-               this.len = Bytes.readLE4(bytes, 0) + 4; // whatta?
-               int version = Bytes.readLE4(bytes, 4);
-               assert(version == ClusterChange2.VERSION);
-               long cuid1 = Bytes.readLE8(bytes, 8);
-               long cuid2 = Bytes.readLE8(bytes, 16);
-               pos = 24;
-               uid = ClusterUID.make(cuid1, cuid2);
-       }
-       
-       public ClusterUID getClusterUID() {
-               return uid;
-       }
-
-       private void processSetImmutable(int op) {
-               int value = bytes[pos++]&0xff;
-               setImmutable(value > 0);
-       }
-
-       private void processUndoValue(int op) {
-               Bytes.readLE4(bytes, pos);
-               pos+=4;
-       }
-
-       public void process() throws IllegalAcornStateException {
-               
-               while(pos < len) {
-               
-                       int op = bytes[pos++]&0xff;
-                       
-                       switch(op) {
-                       
-                       case ClusterChange2.SET_IMMUTABLE_OPERATION:
-                               processSetImmutable(op);
-                               break;
-                       case ClusterChange2.UNDO_VALUE_OPERATION:
-                               processUndoValue(op);
-                               break;
-                       default:
-                               throw new IllegalAcornStateException("Can not process cluster " + uid);
-                               
-                       }
-               }
-       }
-       
-       abstract void setImmutable(boolean value);
-       
-}