Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.server.objectivity/src/org/eclipse/emf/cdo/server/internal/objectivity/schema/ObjyArrayList.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.server.objectivity/src/org/eclipse/emf/cdo/server/internal/objectivity/schema/ObjyArrayList.java512
1 files changed, 256 insertions, 256 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server.objectivity/src/org/eclipse/emf/cdo/server/internal/objectivity/schema/ObjyArrayList.java b/plugins/org.eclipse.emf.cdo.server.objectivity/src/org/eclipse/emf/cdo/server/internal/objectivity/schema/ObjyArrayList.java
index b449e12e94..52a2dae67a 100644
--- a/plugins/org.eclipse.emf.cdo.server.objectivity/src/org/eclipse/emf/cdo/server/internal/objectivity/schema/ObjyArrayList.java
+++ b/plugins/org.eclipse.emf.cdo.server.objectivity/src/org/eclipse/emf/cdo/server/internal/objectivity/schema/ObjyArrayList.java
@@ -1,256 +1,256 @@
-/*
- * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- * Simon McDuff - initial API and implementation
- * Ibrahim Sallam - code refactoring for CDO 3.0
- */
-package org.eclipse.emf.cdo.server.internal.objectivity.schema;
-
-import com.objy.as.app.Class_Object;
-import com.objy.as.app.Numeric_Value;
-import com.objy.as.app.VArray_Object;
-import com.objy.db.app.ooId;
-
-/**
- * @author Simon McDuff
- */
-public abstract class ObjyArrayList<T>
-{
- final static String sizeName = "elementCount";
-
- final static String arrayName = "curr";
-
- protected Class_Object classObject;
-
- private VArray_Object vArray;
-
- protected transient long cacheSize;
-
- transient long position;
-
- public static void initObject(Class_Object classObject)
- {
- // set the size to 0;
- classObject.nset_numeric(sizeName, new Numeric_Value(0));
- }
-
- public ObjyArrayList(Class_Object classObject)
- {
- this.classObject = classObject;
- this.cacheSize = -1;
-
- }
-
- public ooId getID()
- {
- return classObject.objectID();
- }
-
- // /**
- // * TODO - verify need.
- // */
- // private Class_Object getClassObject()
- // {
- // return classObject;
- // }
-
- public void clear()
- {
- getVArray().resize(0);
- cacheSize = 0;
- saveSize();
- }
-
- private void shiftRight(int index)
- {
- shiftRight(index, 1);
- }
-
- private void shiftRight(int index, int sizeToShift)
- {
- long size = this.cachedSize();
-
- for (long i = size - 1; i >= index; i--)
- {
- setValue(i + sizeToShift, getValue(i));
- }
-
- cacheSize += sizeToShift;
- saveSize();
- }
-
- private void shiftLeft(int index)
- {
- long size = this.cachedSize();
- for (long i = index; i < size - 1; i++)
- {
- setValue(i, getValue(i + 1));
- }
-
- cacheSize--;
- saveSize();
- }
-
- /**
- *
- */
- protected void grow(int item)
- {
- getVArray().resize(getVArraySize() + Math.max(item + 10, 10));
- }
-
- /**
- *
- */
- private void prepareToInsert(int numberToAdd)
- {
- long size = cachedSize();
- update();
-
- if (size + numberToAdd > getVArraySize())
- {
- grow(numberToAdd);
- }
- }
-
- protected long getVArraySize()
- {
- return getVArray().size();
- }
-
- protected void update()
- {
- getVArray().update();
- }
-
- protected VArray_Object getVArray()
- {
- if (vArray == null)
- {
- vArray = classObject.nget_varray(arrayName);
- }
- return vArray;
- }
-
- public void add(int index, T newValue)
- {
- prepareToInsert(1);
- shiftRight(index);
- basicSet(index, newValue);
- }
-
- public void addAll(int index, Object[] newValue)
- {
- prepareToInsert(newValue.length);
- shiftRight(index, newValue.length);
-
- for (int i = 0; i < newValue.length; i++)
- {
- @SuppressWarnings("unchecked")
- T value = (T)newValue[i];
- basicSet(index + i, value);
- }
- }
-
- public void remove(int index)
- {
- shiftLeft(index);
- }
-
- public void add(T newValue)
- {
- long size = cachedSize();
-
- prepareToInsert(1);
- setValue(size, newValue);
- cacheSize++;
- saveSize();
- }
-
- public void set(long index, T newValue)
- {
- basicSet(index, newValue);
- // cacheSize = -1;
- }
-
- public void move(long newPosition, long oldPosition)
- {
- if (oldPosition == newPosition)
- {
- return;
- }
-
- // get the object at oldPosition.
- T value = getValue(oldPosition);
- // remove the oldPosition.
- remove((int)oldPosition);
- // make a space at the newPosition by shifting elements
- shiftRight((int)newPosition);
- set(newPosition, value);
- }
-
- protected void basicSet(long index, T newValue)
- {
- if (index >= cachedSize())
- {
- throw new ArrayIndexOutOfBoundsException();
- }
-
- update();
-
- setValue(index, newValue);
- }
-
- public T get(long index)
- {
- if (index >= size())
- {
- throw new ArrayIndexOutOfBoundsException();
- }
-
- return getValue(index);
- }
-
- protected abstract void setValue(long index, T newValue);
-
- protected abstract T getValue(long index);
-
- protected void saveSize()
- {
- // System.out.println(">>> classObject: " + classObject.objectID().getStoreString() + " <<<");
- // System.out.println("ooArrayList.saveSize() - value to store in objy is: " + cacheSize);
- classObject.nset_numeric(sizeName, new Numeric_Value(cacheSize));
- resetCachedSize();
- }
-
- protected void resetCachedSize()
- {
- cacheSize = -1;
- }
-
- protected long cachedSize()
- {
- if (cacheSize == -1)
- {
- cacheSize = classObject.nget_numeric(sizeName).longValue();
- // System.out.println(">>> classObject: " + classObject.objectID().getStoreString() + " <<<");
- // System.out.println("ooArrayList.privateSize() - cacheSize was -1, value from objy is: " + cacheSize);
- }
- return cacheSize;
- }
-
- public long size()
- {
- // System.out.println(">>> classObject: " + classObject.objectID().getStoreString() + " <<<");
- // Numeric_Value nValue = classObject.nget_numeric(sizeName);
- // System.out.println("ooArrayList.size() - nValue: " + nValue.toString());
- // return classObject.nget_numeric(sizeName).longValue();
- return cachedSize();
- }
-
-}
+/*
+ * Copyright (c) 2004 - 2012 Eike Stepper (Berlin, Germany) and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Simon McDuff - initial API and implementation
+ * Ibrahim Sallam - code refactoring for CDO 3.0
+ */
+package org.eclipse.emf.cdo.server.internal.objectivity.schema;
+
+import com.objy.as.app.Class_Object;
+import com.objy.as.app.Numeric_Value;
+import com.objy.as.app.VArray_Object;
+import com.objy.db.app.ooId;
+
+/**
+ * @author Simon McDuff
+ */
+public abstract class ObjyArrayList<T>
+{
+ final static String sizeName = "elementCount";
+
+ final static String arrayName = "curr";
+
+ protected Class_Object classObject;
+
+ private VArray_Object vArray;
+
+ protected transient long cacheSize;
+
+ transient long position;
+
+ public static void initObject(Class_Object classObject)
+ {
+ // set the size to 0;
+ classObject.nset_numeric(sizeName, new Numeric_Value(0));
+ }
+
+ public ObjyArrayList(Class_Object classObject)
+ {
+ this.classObject = classObject;
+ this.cacheSize = -1;
+
+ }
+
+ public ooId getID()
+ {
+ return classObject.objectID();
+ }
+
+ // /**
+ // * TODO - verify need.
+ // */
+ // private Class_Object getClassObject()
+ // {
+ // return classObject;
+ // }
+
+ public void clear()
+ {
+ getVArray().resize(0);
+ cacheSize = 0;
+ saveSize();
+ }
+
+ private void shiftRight(int index)
+ {
+ shiftRight(index, 1);
+ }
+
+ private void shiftRight(int index, int sizeToShift)
+ {
+ long size = this.cachedSize();
+
+ for (long i = size - 1; i >= index; i--)
+ {
+ setValue(i + sizeToShift, getValue(i));
+ }
+
+ cacheSize += sizeToShift;
+ saveSize();
+ }
+
+ private void shiftLeft(int index)
+ {
+ long size = this.cachedSize();
+ for (long i = index; i < size - 1; i++)
+ {
+ setValue(i, getValue(i + 1));
+ }
+
+ cacheSize--;
+ saveSize();
+ }
+
+ /**
+ *
+ */
+ protected void grow(int item)
+ {
+ getVArray().resize(getVArraySize() + Math.max(item + 10, 10));
+ }
+
+ /**
+ *
+ */
+ private void prepareToInsert(int numberToAdd)
+ {
+ long size = cachedSize();
+ update();
+
+ if (size + numberToAdd > getVArraySize())
+ {
+ grow(numberToAdd);
+ }
+ }
+
+ protected long getVArraySize()
+ {
+ return getVArray().size();
+ }
+
+ protected void update()
+ {
+ getVArray().update();
+ }
+
+ protected VArray_Object getVArray()
+ {
+ if (vArray == null)
+ {
+ vArray = classObject.nget_varray(arrayName);
+ }
+ return vArray;
+ }
+
+ public void add(int index, T newValue)
+ {
+ prepareToInsert(1);
+ shiftRight(index);
+ basicSet(index, newValue);
+ }
+
+ public void addAll(int index, Object[] newValue)
+ {
+ prepareToInsert(newValue.length);
+ shiftRight(index, newValue.length);
+
+ for (int i = 0; i < newValue.length; i++)
+ {
+ @SuppressWarnings("unchecked")
+ T value = (T)newValue[i];
+ basicSet(index + i, value);
+ }
+ }
+
+ public void remove(int index)
+ {
+ shiftLeft(index);
+ }
+
+ public void add(T newValue)
+ {
+ long size = cachedSize();
+
+ prepareToInsert(1);
+ setValue(size, newValue);
+ cacheSize++;
+ saveSize();
+ }
+
+ public void set(long index, T newValue)
+ {
+ basicSet(index, newValue);
+ // cacheSize = -1;
+ }
+
+ public void move(long newPosition, long oldPosition)
+ {
+ if (oldPosition == newPosition)
+ {
+ return;
+ }
+
+ // get the object at oldPosition.
+ T value = getValue(oldPosition);
+ // remove the oldPosition.
+ remove((int)oldPosition);
+ // make a space at the newPosition by shifting elements
+ shiftRight((int)newPosition);
+ set(newPosition, value);
+ }
+
+ protected void basicSet(long index, T newValue)
+ {
+ if (index >= cachedSize())
+ {
+ throw new ArrayIndexOutOfBoundsException();
+ }
+
+ update();
+
+ setValue(index, newValue);
+ }
+
+ public T get(long index)
+ {
+ if (index >= size())
+ {
+ throw new ArrayIndexOutOfBoundsException();
+ }
+
+ return getValue(index);
+ }
+
+ protected abstract void setValue(long index, T newValue);
+
+ protected abstract T getValue(long index);
+
+ protected void saveSize()
+ {
+ // System.out.println(">>> classObject: " + classObject.objectID().getStoreString() + " <<<");
+ // System.out.println("ooArrayList.saveSize() - value to store in objy is: " + cacheSize);
+ classObject.nset_numeric(sizeName, new Numeric_Value(cacheSize));
+ resetCachedSize();
+ }
+
+ protected void resetCachedSize()
+ {
+ cacheSize = -1;
+ }
+
+ protected long cachedSize()
+ {
+ if (cacheSize == -1)
+ {
+ cacheSize = classObject.nget_numeric(sizeName).longValue();
+ // System.out.println(">>> classObject: " + classObject.objectID().getStoreString() + " <<<");
+ // System.out.println("ooArrayList.privateSize() - cacheSize was -1, value from objy is: " + cacheSize);
+ }
+ return cacheSize;
+ }
+
+ public long size()
+ {
+ // System.out.println(">>> classObject: " + classObject.objectID().getStoreString() + " <<<");
+ // Numeric_Value nValue = classObject.nget_numeric(sizeName);
+ // System.out.println("ooArrayList.size() - nValue: " + nValue.toString());
+ // return classObject.nget_numeric(sizeName).longValue();
+ return cachedSize();
+ }
+
+}

Back to the top