diff options
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.java | 54 |
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) |