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/ObjyResourceList.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.server.objectivity/src/org/eclipse/emf/cdo/server/internal/objectivity/schema/ObjyResourceList.java566
1 files changed, 283 insertions, 283 deletions
diff --git a/plugins/org.eclipse.emf.cdo.server.objectivity/src/org/eclipse/emf/cdo/server/internal/objectivity/schema/ObjyResourceList.java b/plugins/org.eclipse.emf.cdo.server.objectivity/src/org/eclipse/emf/cdo/server/internal/objectivity/schema/ObjyResourceList.java
index 0cee1b8fad..0893ccd092 100644
--- a/plugins/org.eclipse.emf.cdo.server.objectivity/src/org/eclipse/emf/cdo/server/internal/objectivity/schema/ObjyResourceList.java
+++ b/plugins/org.eclipse.emf.cdo.server.objectivity/src/org/eclipse/emf/cdo/server/internal/objectivity/schema/ObjyResourceList.java
@@ -1,283 +1,283 @@
-/*
- * 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:
- * Ibrahim Sallam - initial API and implementation
- */
-package org.eclipse.emf.cdo.server.internal.objectivity.schema;
-
-import org.eclipse.emf.cdo.common.branch.CDOBranch;
-import org.eclipse.emf.cdo.common.id.CDOID;
-import org.eclipse.emf.cdo.eresource.EresourcePackage;
-import org.eclipse.emf.cdo.server.internal.objectivity.ObjectivityStoreAccessor;
-import org.eclipse.emf.cdo.server.internal.objectivity.bundle.OM;
-import org.eclipse.emf.cdo.server.internal.objectivity.db.ObjyObject;
-import org.eclipse.emf.cdo.server.internal.objectivity.db.ObjyObjectManager;
-import org.eclipse.emf.cdo.server.internal.objectivity.db.ObjySchema;
-import org.eclipse.emf.cdo.server.internal.objectivity.db.ObjySession;
-import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision;
-
-import org.eclipse.net4j.util.om.trace.ContextTracer;
-
-import org.eclipse.emf.ecore.EStructuralFeature;
-
-import com.objy.as.app.Class_Object;
-import com.objy.as.app.Proposed_Class;
-import com.objy.as.app.d_Access_Kind;
-import com.objy.as.app.d_Module;
-import com.objy.db.ObjyRuntimeException;
-import com.objy.db.app.ooId;
-import com.objy.db.app.ooObj;
-import com.objy.db.util.ooTreeListX;
-
-/***
- * OoResouceList is a specialized ooArrayListId, where all elements are of type Resourc(Node|Folder). The class will
- * allow adding, validating and removing resources From the list.
- *
- * @author ibrahim
- */
-public class ObjyResourceList
-{
-
- private static final ContextTracer TRACER_DEBUG = new ContextTracer(OM.DEBUG, ObjyProxy.class);
-
- static public String className = "ooResourceList";
-
- static public String Attribute_arrayName = "oo_array";
-
- private ObjySession objySession;
-
- protected Class_Object classObject;
-
- protected ObjyArrayListId list = null;
-
- protected ooId objectId;
-
- private static final EStructuralFeature featureName = EresourcePackage.Literals.CDO_RESOURCE_NODE__NAME;
-
- // we could use this "EresourcePackage.eINSTANCE.getCDOResourceNode_Name()" instead of above.
-
- public static void buildSchema()
- {
- d_Module top_mod = ObjySchema.getTopModule();
- if (top_mod.resolve_class(ObjyResourceList.className) == null
- && top_mod.resolve_proposed_class(ObjyResourceList.className) == null)
- {
-
- if (TRACER_DEBUG.isEnabled())
- {
- TRACER_DEBUG.trace("Schema not found for ooArrayListId. Adding ooArrayListId");
- }
-
- boolean inProcess = top_mod.proposed_classes().hasNext();
-
- // Proposed_Class A = new Proposed_Class(ooArrayListId.ClassName);
- Proposed_Class propClass = top_mod.propose_new_class(ObjyResourceList.className);
-
- propClass.add_base_class(com.objy.as.app.d_Module.LAST, com.objy.as.app.d_Access_Kind.d_PUBLIC,
- ObjyBase.CLASS_NAME /* "ooObj" */);
-
- propClass.add_ref_attribute(com.objy.as.app.d_Module.LAST, // Access kind
- d_Access_Kind.d_PUBLIC, // Access kind
- ObjyResourceList.Attribute_arrayName, // Attribute name
- 1, // # elements in fixed-size array
- ObjyArrayListId.className, false); // Default value // Default value
-
- // top_mod.propose_new_class(A);
- if (!inProcess)
- {
- top_mod.activate_proposals(true, true);
- }
-
- if (TRACER_DEBUG.isEnabled())
- {
- TRACER_DEBUG.trace("SCHEMA changed : ooArrayListId added");
- }
- }
-
- }
-
- public ObjyResourceList(ObjySession objySession, ObjyObject objyObject)
- {
- classObject = objyObject.ooClassObject();
- this.objySession = objySession;
- objectId = objyObject.ooId();
- }
-
- // public OoResourceList(ObjySession objySession, Class_Object classObject)
- // {
- // this.classObject = classObject;
- // this.objySession = objySession;
- // }
-
- private ObjyArrayListId getList()
- {
- if (list != null)
- {
- return list;
- }
-
- try
- {
- // Class_Position position = classObject.position_in_class(ObjyResourceList.Attribute_arrayName);
- ooId oid = classObject.nget_ooId(ObjyResourceList.Attribute_arrayName);
- if (!oid.isNull())
- {
- list = new ObjyArrayListId(Class_Object.class_object_from_oid(oid));
- }
- }
- catch (ObjyRuntimeException e)
- {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return list;
- }
-
- public void remove(ObjyObject objyObject)
- {
- int size = (int)getList().size();
- for (int i = 0; i < size; i++)
- {
- if (objyObject.ooId().equals(getList().get(i)))
- {
- getList().remove(i);
- break;
- }
- }
- }
-
- public void add(ObjyObject objyObject)
- {
- // TODO - we need to make sure that objyObject is a resource!!!
- getList().add(objyObject.ooId());
- }
-
- // public void checkDuplicateResources(ObjectivityStoreAccessor storeAccessor, CDORevision revision)
- // throws IllegalStateException
- // {
- // CDOID folderID = (CDOID)revision.data().getContainerID();
- // String name = (String)revision.data().get(EresourcePackage.eINSTANCE.getCDOResourceNode_Name(), 0);
- // CDOID existingID = storeAccessor.readResourceID(folderID, name, revision.getBranch().getHead());
- // if (existingID != CDOID.NULL && !existingID.equals(revision.getID()))
- // {
- // throw new IllegalStateException("Duplicate resource or folder: " + name + " in folder " + folderID); //$NON-NLS-1$ //$NON-NLS-2$
- // }
- // }
-
- public void checkDuplicateResources(ObjectivityStoreAccessor storeAccessor, InternalCDORevision revision)
- throws IllegalStateException
- {
- // CDOID folderID = (CDOID)revision.data().getContainerID();
- CDOID folderId = (CDOID)revision.data().getContainerID();
- String name = (String)revision.data().get(EresourcePackage.eINSTANCE.getCDOResourceNode_Name(), 0);
-
- // ooId folderId = objyObject.getEContainerAsOid();
- // String name = OoResourceList.getResourceName(objyObject);
-
- // iterate over all resource in the list, and verify if we have both name and folderID.
- int size = (int)getList().size();
- ObjyObjectManager objyObjectManager = storeAccessor.getObjySession().getObjectManager();
- for (int i = 0; i < size; i++)
- {
- ObjyObject resource = getResource(i);
- ObjyObject resourceRevision = resource;
- // get the proper revision of the resource (might need to refactor this code, see readRevision())
- if (storeAccessor.getStore().isRequiredToSupportBranches())
- {
- try
- {
- resourceRevision = resource.getRevision(revision.getTimeStamp(), revision.getBranch().getID(),
- objyObjectManager);
- }
- catch (RuntimeException ex)
- {
- ex.printStackTrace();
- }
- }
- else if (storeAccessor.getStore().isRequiredToSupportAudits())
- {
- try
- {
- resourceRevision = resource.getRevision(revision.getTimeStamp(), CDOBranch.MAIN_BRANCH_ID, objyObjectManager);
- }
- catch (RuntimeException ex)
- {
- ex.printStackTrace();
- }
- }
-
- if (resourceRevision == null || resourceRevision.getVersion() < 0)
- {
- continue;
- }
-
- // int v = resource.getVersion();
- CDOID resourceFolderId = (CDOID)resourceRevision.getEContainer();
- String resourceName = ObjyResourceList.getResourceName(resourceRevision);
- if (resourceFolderId != null && resourceFolderId.equals(folderId) && resourceName != null
- && resourceName.equals(name))
- {
- throw new IllegalStateException("Duplicate resource or folder: " + name + " in folder: " + folderId); //$NON-NLS-1$
- }
- }
- }
-
- public ObjyObject getResource(int index)
- {
- return objySession.getObjectManager().getObject(getList().get(index));
- }
-
- public static String getResourceName(ObjyObject objyObject)
- {
- String name = (String)objyObject.get(featureName);
- return name;
- }
-
- public static ObjyObject create(ooId nearOid)
- {
- Class_Object classObject = Class_Object.new_persistent_object(ObjySchema.getObjyClass(ObjyResourceList.className)
- .getASClass(), nearOid, false);
- // ObjyObjectManager.newInternalObjCount++;
- // Class_Position position = classObject.position_in_class(ObjyResourceList.Attribute_arrayName);
- // Class_Object arrayClassObject = Class_Object.new_persistent_object(
- // ObjySchema.getTopModule().resolve_class(ObjyArrayListId.className), classObject.objectID(), false);
- // // ooId arrayOid = arrayClassObject.objectID();
- ooTreeListX list = new ooTreeListX(10, false);
- // ObjyObjectManager.newInternalObjCount++;
- ooObj anObj = ooObj.create_ooObj(classObject.objectID());
- anObj.cluster(list);
- // System.out.println("initObject: " + anObj.getOid().getStoreString() + " treeListX: "
- // // + list.getOid().getStoreString());
- classObject.nset_ooId(ObjyResourceList.Attribute_arrayName, list.getOid());
-
- // classObject.set_ooId(position, arrayClassObject.objectID());
- // ObjyArrayListId.initObject(arrayClassObject);
- ObjyObject objyObject = null;
- try
- {
- objyObject = new ObjyObject(classObject);
- }
- catch (RuntimeException ex)
- {
- ex.printStackTrace();
- }
-
- return objyObject;
- }
-
- public ooId ooId()
- {
- return objectId;
- }
-
- public int size()
- {
- return (int)getList().size();
- }
-
-}
+/*
+ * 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:
+ * Ibrahim Sallam - initial API and implementation
+ */
+package org.eclipse.emf.cdo.server.internal.objectivity.schema;
+
+import org.eclipse.emf.cdo.common.branch.CDOBranch;
+import org.eclipse.emf.cdo.common.id.CDOID;
+import org.eclipse.emf.cdo.eresource.EresourcePackage;
+import org.eclipse.emf.cdo.server.internal.objectivity.ObjectivityStoreAccessor;
+import org.eclipse.emf.cdo.server.internal.objectivity.bundle.OM;
+import org.eclipse.emf.cdo.server.internal.objectivity.db.ObjyObject;
+import org.eclipse.emf.cdo.server.internal.objectivity.db.ObjyObjectManager;
+import org.eclipse.emf.cdo.server.internal.objectivity.db.ObjySchema;
+import org.eclipse.emf.cdo.server.internal.objectivity.db.ObjySession;
+import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision;
+
+import org.eclipse.net4j.util.om.trace.ContextTracer;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+
+import com.objy.as.app.Class_Object;
+import com.objy.as.app.Proposed_Class;
+import com.objy.as.app.d_Access_Kind;
+import com.objy.as.app.d_Module;
+import com.objy.db.ObjyRuntimeException;
+import com.objy.db.app.ooId;
+import com.objy.db.app.ooObj;
+import com.objy.db.util.ooTreeListX;
+
+/***
+ * OoResouceList is a specialized ooArrayListId, where all elements are of type Resourc(Node|Folder). The class will
+ * allow adding, validating and removing resources From the list.
+ *
+ * @author ibrahim
+ */
+public class ObjyResourceList
+{
+
+ private static final ContextTracer TRACER_DEBUG = new ContextTracer(OM.DEBUG, ObjyProxy.class);
+
+ static public String className = "ooResourceList";
+
+ static public String Attribute_arrayName = "oo_array";
+
+ private ObjySession objySession;
+
+ protected Class_Object classObject;
+
+ protected ObjyArrayListId list = null;
+
+ protected ooId objectId;
+
+ private static final EStructuralFeature featureName = EresourcePackage.Literals.CDO_RESOURCE_NODE__NAME;
+
+ // we could use this "EresourcePackage.eINSTANCE.getCDOResourceNode_Name()" instead of above.
+
+ public static void buildSchema()
+ {
+ d_Module top_mod = ObjySchema.getTopModule();
+ if (top_mod.resolve_class(ObjyResourceList.className) == null
+ && top_mod.resolve_proposed_class(ObjyResourceList.className) == null)
+ {
+
+ if (TRACER_DEBUG.isEnabled())
+ {
+ TRACER_DEBUG.trace("Schema not found for ooArrayListId. Adding ooArrayListId");
+ }
+
+ boolean inProcess = top_mod.proposed_classes().hasNext();
+
+ // Proposed_Class A = new Proposed_Class(ooArrayListId.ClassName);
+ Proposed_Class propClass = top_mod.propose_new_class(ObjyResourceList.className);
+
+ propClass.add_base_class(com.objy.as.app.d_Module.LAST, com.objy.as.app.d_Access_Kind.d_PUBLIC,
+ ObjyBase.CLASS_NAME /* "ooObj" */);
+
+ propClass.add_ref_attribute(com.objy.as.app.d_Module.LAST, // Access kind
+ d_Access_Kind.d_PUBLIC, // Access kind
+ ObjyResourceList.Attribute_arrayName, // Attribute name
+ 1, // # elements in fixed-size array
+ ObjyArrayListId.className, false); // Default value // Default value
+
+ // top_mod.propose_new_class(A);
+ if (!inProcess)
+ {
+ top_mod.activate_proposals(true, true);
+ }
+
+ if (TRACER_DEBUG.isEnabled())
+ {
+ TRACER_DEBUG.trace("SCHEMA changed : ooArrayListId added");
+ }
+ }
+
+ }
+
+ public ObjyResourceList(ObjySession objySession, ObjyObject objyObject)
+ {
+ classObject = objyObject.ooClassObject();
+ this.objySession = objySession;
+ objectId = objyObject.ooId();
+ }
+
+ // public OoResourceList(ObjySession objySession, Class_Object classObject)
+ // {
+ // this.classObject = classObject;
+ // this.objySession = objySession;
+ // }
+
+ private ObjyArrayListId getList()
+ {
+ if (list != null)
+ {
+ return list;
+ }
+
+ try
+ {
+ // Class_Position position = classObject.position_in_class(ObjyResourceList.Attribute_arrayName);
+ ooId oid = classObject.nget_ooId(ObjyResourceList.Attribute_arrayName);
+ if (!oid.isNull())
+ {
+ list = new ObjyArrayListId(Class_Object.class_object_from_oid(oid));
+ }
+ }
+ catch (ObjyRuntimeException e)
+ {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return list;
+ }
+
+ public void remove(ObjyObject objyObject)
+ {
+ int size = (int)getList().size();
+ for (int i = 0; i < size; i++)
+ {
+ if (objyObject.ooId().equals(getList().get(i)))
+ {
+ getList().remove(i);
+ break;
+ }
+ }
+ }
+
+ public void add(ObjyObject objyObject)
+ {
+ // TODO - we need to make sure that objyObject is a resource!!!
+ getList().add(objyObject.ooId());
+ }
+
+ // public void checkDuplicateResources(ObjectivityStoreAccessor storeAccessor, CDORevision revision)
+ // throws IllegalStateException
+ // {
+ // CDOID folderID = (CDOID)revision.data().getContainerID();
+ // String name = (String)revision.data().get(EresourcePackage.eINSTANCE.getCDOResourceNode_Name(), 0);
+ // CDOID existingID = storeAccessor.readResourceID(folderID, name, revision.getBranch().getHead());
+ // if (existingID != CDOID.NULL && !existingID.equals(revision.getID()))
+ // {
+ // throw new IllegalStateException("Duplicate resource or folder: " + name + " in folder " + folderID); //$NON-NLS-1$ //$NON-NLS-2$
+ // }
+ // }
+
+ public void checkDuplicateResources(ObjectivityStoreAccessor storeAccessor, InternalCDORevision revision)
+ throws IllegalStateException
+ {
+ // CDOID folderID = (CDOID)revision.data().getContainerID();
+ CDOID folderId = (CDOID)revision.data().getContainerID();
+ String name = (String)revision.data().get(EresourcePackage.eINSTANCE.getCDOResourceNode_Name(), 0);
+
+ // ooId folderId = objyObject.getEContainerAsOid();
+ // String name = OoResourceList.getResourceName(objyObject);
+
+ // iterate over all resource in the list, and verify if we have both name and folderID.
+ int size = (int)getList().size();
+ ObjyObjectManager objyObjectManager = storeAccessor.getObjySession().getObjectManager();
+ for (int i = 0; i < size; i++)
+ {
+ ObjyObject resource = getResource(i);
+ ObjyObject resourceRevision = resource;
+ // get the proper revision of the resource (might need to refactor this code, see readRevision())
+ if (storeAccessor.getStore().isRequiredToSupportBranches())
+ {
+ try
+ {
+ resourceRevision = resource.getRevision(revision.getTimeStamp(), revision.getBranch().getID(),
+ objyObjectManager);
+ }
+ catch (RuntimeException ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+ else if (storeAccessor.getStore().isRequiredToSupportAudits())
+ {
+ try
+ {
+ resourceRevision = resource.getRevision(revision.getTimeStamp(), CDOBranch.MAIN_BRANCH_ID, objyObjectManager);
+ }
+ catch (RuntimeException ex)
+ {
+ ex.printStackTrace();
+ }
+ }
+
+ if (resourceRevision == null || resourceRevision.getVersion() < 0)
+ {
+ continue;
+ }
+
+ // int v = resource.getVersion();
+ CDOID resourceFolderId = (CDOID)resourceRevision.getEContainer();
+ String resourceName = ObjyResourceList.getResourceName(resourceRevision);
+ if (resourceFolderId != null && resourceFolderId.equals(folderId) && resourceName != null
+ && resourceName.equals(name))
+ {
+ throw new IllegalStateException("Duplicate resource or folder: " + name + " in folder: " + folderId); //$NON-NLS-1$
+ }
+ }
+ }
+
+ public ObjyObject getResource(int index)
+ {
+ return objySession.getObjectManager().getObject(getList().get(index));
+ }
+
+ public static String getResourceName(ObjyObject objyObject)
+ {
+ String name = (String)objyObject.get(featureName);
+ return name;
+ }
+
+ public static ObjyObject create(ooId nearOid)
+ {
+ Class_Object classObject = Class_Object.new_persistent_object(ObjySchema.getObjyClass(ObjyResourceList.className)
+ .getASClass(), nearOid, false);
+ // ObjyObjectManager.newInternalObjCount++;
+ // Class_Position position = classObject.position_in_class(ObjyResourceList.Attribute_arrayName);
+ // Class_Object arrayClassObject = Class_Object.new_persistent_object(
+ // ObjySchema.getTopModule().resolve_class(ObjyArrayListId.className), classObject.objectID(), false);
+ // // ooId arrayOid = arrayClassObject.objectID();
+ ooTreeListX list = new ooTreeListX(10, false);
+ // ObjyObjectManager.newInternalObjCount++;
+ ooObj anObj = ooObj.create_ooObj(classObject.objectID());
+ anObj.cluster(list);
+ // System.out.println("initObject: " + anObj.getOid().getStoreString() + " treeListX: "
+ // // + list.getOid().getStoreString());
+ classObject.nset_ooId(ObjyResourceList.Attribute_arrayName, list.getOid());
+
+ // classObject.set_ooId(position, arrayClassObject.objectID());
+ // ObjyArrayListId.initObject(arrayClassObject);
+ ObjyObject objyObject = null;
+ try
+ {
+ objyObject = new ObjyObject(classObject);
+ }
+ catch (RuntimeException ex)
+ {
+ ex.printStackTrace();
+ }
+
+ return objyObject;
+ }
+
+ public ooId ooId()
+ {
+ return objectId;
+ }
+
+ public int size()
+ {
+ return (int)getList().size();
+ }
+
+}

Back to the top