Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStore.java')
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStore.java54
1 files changed, 35 insertions, 19 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStore.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStore.java
index 4f791bf254..879892eae6 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStore.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOStore.java
@@ -14,6 +14,7 @@ import org.eclipse.emf.cdo.internal.protocol.model.CDOFeatureImpl;
import org.eclipse.emf.cdo.internal.protocol.model.CDOPackageManagerImpl;
import org.eclipse.emf.cdo.internal.protocol.revision.CDORevisionImpl;
import org.eclipse.emf.cdo.protocol.CDOID;
+import org.eclipse.emf.cdo.protocol.util.ImplementationError;
import org.eclipse.net4j.internal.util.om.trace.ContextTracer;
@@ -41,7 +42,7 @@ public final class CDOStore implements EStore
public InternalEObject getContainer(InternalEObject eObject)
{
- InternalCDOObject cdoObject = (InternalCDOObject)eObject;
+ InternalCDOObject cdoObject = getCDOObject(eObject);
if (TRACER.isEnabled())
{
TRACER.format("getContainer({0})", cdoObject);
@@ -54,7 +55,7 @@ public final class CDOStore implements EStore
public int getContainingFeatureID(InternalEObject eObject)
{
- InternalCDOObject cdoObject = (InternalCDOObject)eObject;
+ InternalCDOObject cdoObject = getCDOObject(eObject);
if (TRACER.isEnabled())
{
TRACER.format("getContainingFeatureID({0})", cdoObject);
@@ -66,7 +67,7 @@ public final class CDOStore implements EStore
public void setContainer(InternalEObject eObject, InternalEObject newContainer, int newContainerFeatureID)
{
- InternalCDOObject cdoObject = (InternalCDOObject)eObject;
+ InternalCDOObject cdoObject = getCDOObject(eObject);
if (TRACER.isEnabled())
{
TRACER.format("setContainer({0}, {1}, {2})", cdoObject, newContainer, newContainerFeatureID);
@@ -86,7 +87,7 @@ public final class CDOStore implements EStore
public Object get(InternalEObject eObject, EStructuralFeature eFeature, int index)
{
- InternalCDOObject cdoObject = (InternalCDOObject)eObject;
+ InternalCDOObject cdoObject = getCDOObject(eObject);
CDOFeatureImpl cdoFeature = getCDOFeature(cdoObject, eFeature);
if (TRACER.isEnabled())
{
@@ -105,7 +106,7 @@ public final class CDOStore implements EStore
public boolean isSet(InternalEObject eObject, EStructuralFeature eFeature)
{
- InternalCDOObject cdoObject = (InternalCDOObject)eObject;
+ InternalCDOObject cdoObject = getCDOObject(eObject);
CDOFeatureImpl cdoFeature = getCDOFeature(cdoObject, eFeature);
if (TRACER.isEnabled())
{
@@ -118,7 +119,7 @@ public final class CDOStore implements EStore
public int size(InternalEObject eObject, EStructuralFeature eFeature)
{
- InternalCDOObject cdoObject = (InternalCDOObject)eObject;
+ InternalCDOObject cdoObject = getCDOObject(eObject);
CDOFeatureImpl cdoFeature = getCDOFeature(cdoObject, eFeature);
if (TRACER.isEnabled())
{
@@ -131,7 +132,7 @@ public final class CDOStore implements EStore
public boolean isEmpty(InternalEObject eObject, EStructuralFeature eFeature)
{
- InternalCDOObject cdoObject = (InternalCDOObject)eObject;
+ InternalCDOObject cdoObject = getCDOObject(eObject);
CDOFeatureImpl cdoFeature = getCDOFeature(cdoObject, eFeature);
if (TRACER.isEnabled())
{
@@ -144,7 +145,7 @@ public final class CDOStore implements EStore
public boolean contains(InternalEObject eObject, EStructuralFeature eFeature, Object value)
{
- InternalCDOObject cdoObject = (InternalCDOObject)eObject;
+ InternalCDOObject cdoObject = getCDOObject(eObject);
CDOFeatureImpl cdoFeature = getCDOFeature(cdoObject, eFeature);
if (TRACER.isEnabled())
{
@@ -162,7 +163,7 @@ public final class CDOStore implements EStore
public int indexOf(InternalEObject eObject, EStructuralFeature eFeature, Object value)
{
- InternalCDOObject cdoObject = (InternalCDOObject)eObject;
+ InternalCDOObject cdoObject = getCDOObject(eObject);
CDOFeatureImpl cdoFeature = getCDOFeature(cdoObject, eFeature);
if (TRACER.isEnabled())
{
@@ -180,7 +181,7 @@ public final class CDOStore implements EStore
public int lastIndexOf(InternalEObject eObject, EStructuralFeature eFeature, Object value)
{
- InternalCDOObject cdoObject = (InternalCDOObject)eObject;
+ InternalCDOObject cdoObject = getCDOObject(eObject);
CDOFeatureImpl cdoFeature = getCDOFeature(cdoObject, eFeature);
if (TRACER.isEnabled())
{
@@ -198,7 +199,7 @@ public final class CDOStore implements EStore
public int hashCode(InternalEObject eObject, EStructuralFeature eFeature)
{
- InternalCDOObject cdoObject = (InternalCDOObject)eObject;
+ InternalCDOObject cdoObject = getCDOObject(eObject);
CDOFeatureImpl cdoFeature = getCDOFeature(cdoObject, eFeature);
if (TRACER.isEnabled())
{
@@ -211,7 +212,7 @@ public final class CDOStore implements EStore
public Object[] toArray(InternalEObject eObject, EStructuralFeature eFeature)
{
- InternalCDOObject cdoObject = (InternalCDOObject)eObject;
+ InternalCDOObject cdoObject = getCDOObject(eObject);
CDOFeatureImpl cdoFeature = getCDOFeature(cdoObject, eFeature);
if (TRACER.isEnabled())
{
@@ -239,7 +240,7 @@ public final class CDOStore implements EStore
public Object set(InternalEObject eObject, EStructuralFeature eFeature, int index, Object value)
{
- InternalCDOObject cdoObject = (InternalCDOObject)eObject;
+ InternalCDOObject cdoObject = getCDOObject(eObject);
CDOFeatureImpl cdoFeature = getCDOFeature(cdoObject, eFeature);
if (TRACER.isEnabled())
{
@@ -268,7 +269,7 @@ public final class CDOStore implements EStore
public void unset(InternalEObject eObject, EStructuralFeature eFeature)
{
- InternalCDOObject cdoObject = (InternalCDOObject)eObject;
+ InternalCDOObject cdoObject = getCDOObject(eObject);
CDOFeatureImpl cdoFeature = getCDOFeature(cdoObject, eFeature);
if (TRACER.isEnabled())
{
@@ -281,7 +282,7 @@ public final class CDOStore implements EStore
public void add(InternalEObject eObject, EStructuralFeature eFeature, int index, Object value)
{
- InternalCDOObject cdoObject = (InternalCDOObject)eObject;
+ InternalCDOObject cdoObject = getCDOObject(eObject);
CDOFeatureImpl cdoFeature = getCDOFeature(cdoObject, eFeature);
if (TRACER.isEnabled())
{
@@ -304,7 +305,7 @@ public final class CDOStore implements EStore
public Object remove(InternalEObject eObject, EStructuralFeature eFeature, int index)
{
- InternalCDOObject cdoObject = (InternalCDOObject)eObject;
+ InternalCDOObject cdoObject = getCDOObject(eObject);
CDOFeatureImpl cdoFeature = getCDOFeature(cdoObject, eFeature);
if (TRACER.isEnabled())
{
@@ -323,7 +324,7 @@ public final class CDOStore implements EStore
public void clear(InternalEObject eObject, EStructuralFeature eFeature)
{
- InternalCDOObject cdoObject = (InternalCDOObject)eObject;
+ InternalCDOObject cdoObject = getCDOObject(eObject);
CDOFeatureImpl cdoFeature = getCDOFeature(cdoObject, eFeature);
if (TRACER.isEnabled())
{
@@ -336,7 +337,7 @@ public final class CDOStore implements EStore
public Object move(InternalEObject eObject, EStructuralFeature eFeature, int target, int source)
{
- InternalCDOObject cdoObject = (InternalCDOObject)eObject;
+ InternalCDOObject cdoObject = getCDOObject(eObject);
CDOFeatureImpl cdoFeature = getCDOFeature(cdoObject, eFeature);
if (TRACER.isEnabled())
{
@@ -364,6 +365,21 @@ public final class CDOStore implements EStore
return "PersistentStore";
}
+ private static InternalCDOObject getCDOObject(Object object)
+ {
+ if (object instanceof InternalCDOObject)
+ {
+ return (InternalCDOObject)object;
+ }
+
+ if (object instanceof InternalEObject)
+ {
+ return CDOObjectAdapter.getFor((InternalEObject)object);
+ }
+
+ throw new ImplementationError("Neither InternalCDOObject nor InternalEObject: " + object.getClass().getName());
+ }
+
private static CDOFeatureImpl getCDOFeature(InternalCDOObject cdoObject, EStructuralFeature eFeature)
{
CDOViewImpl view = (CDOViewImpl)cdoObject.cdoView();
@@ -402,7 +418,7 @@ public final class CDOStore implements EStore
private static void handleContainmentAdd(InternalCDOObject cdoObject, CDOFeatureImpl cdoFeature, Object value)
{
InternalCDOObject container = cdoObject;
- InternalCDOObject contained = (InternalCDOObject)value;
+ InternalCDOObject contained = getCDOObject(value);
CDOViewImpl containerView = (CDOViewImpl)container.cdoView();
CDOViewImpl containedView = (CDOViewImpl)contained.cdoView();
if (containedView != containerView)

Back to the top