Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2018-11-05 08:52:35 +0000
committerEike Stepper2018-11-05 08:52:35 +0000
commit6054292cf737bf6033e02884a1d01c366e938f25 (patch)
tree589aca50267d4ed9383f27e1ab7f222a2e91e991 /plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal
parenta55728e2bb422f4bf3b66f05e5c48ec78dc5278e (diff)
downloadcdo-6054292cf737bf6033e02884a1d01c366e938f25.tar.gz
cdo-6054292cf737bf6033e02884a1d01c366e938f25.tar.xz
cdo-6054292cf737bf6033e02884a1d01c366e938f25.zip
[540776] Add a InternalCDOObject.cdoInternalPreAttach() callback
https://bugs.eclipse.org/bugs/show_bug.cgi?id=540776
Diffstat (limited to 'plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal')
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java16
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/object/CDOLegacyWrapper.java5
-rw-r--r--plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java2
3 files changed, 23 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java
index b4212e50e4..760ebd7239 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/CDOObjectImpl.java
@@ -38,6 +38,7 @@ import org.eclipse.emf.internal.cdo.view.CDOStateMachine;
import org.eclipse.net4j.util.ObjectUtil;
import org.eclipse.net4j.util.concurrent.IRWLockManager.LockType;
+import org.eclipse.net4j.util.om.OMPlatform;
import org.eclipse.net4j.util.om.trace.ContextTracer;
import org.eclipse.emf.common.notify.Adapter;
@@ -102,6 +103,8 @@ public class CDOObjectImpl extends MinimalEStoreEObjectImpl implements InternalC
private static final EObservableAdapterList.Listener[] ADAPTERS_LISTENERS = { ADAPTERS_LISTENER };
+ private static final boolean EMF_TO_STRING = OMPlatform.INSTANCE.isProperty("org.eclipse.emf.internal.cdo.CDOObjectImpl.emfToString");
+
/**
* Optimized storage of {@link CDOObject#cdoView()} and {@link CDOObject#cdoState()}.
*
@@ -431,6 +434,14 @@ public class CDOObjectImpl extends MinimalEStoreEObjectImpl implements InternalC
cdoInternalSetRevision(null);
}
+ /**
+ * @since 4.7
+ */
+ public void cdoInternalPreAttach()
+ {
+ // Do nothing
+ }
+
public final void cdoInternalPostAttach()
{
if (TRACER.isEnabled())
@@ -1210,6 +1221,11 @@ public class CDOObjectImpl extends MinimalEStoreEObjectImpl implements InternalC
@Override
public String toString()
{
+ if (EMF_TO_STRING)
+ {
+ return super.toString();
+ }
+
String str = eClass().getName();
CDOID id = cdoID();
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/object/CDOLegacyWrapper.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/object/CDOLegacyWrapper.java
index eef7dc1202..d57789370e 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/object/CDOLegacyWrapper.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/object/CDOLegacyWrapper.java
@@ -257,6 +257,11 @@ public abstract class CDOLegacyWrapper extends CDOObjectWrapper
}
}
+ public void cdoInternalPreAttach()
+ {
+ // Do nothing
+ }
+
public void cdoInternalPostAttach()
{
instanceToRevision();
diff --git a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java
index 8fd86f8d54..bf34423f1f 100644
--- a/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java
+++ b/plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal/cdo/view/CDOStateMachine.java
@@ -217,6 +217,8 @@ public final class CDOStateMachine extends FiniteStateMachine<CDOState, CDOEvent
try
{
+ object.cdoInternalPreAttach();
+
List<InternalCDOObject> contents = new ArrayList<InternalCDOObject>();
prepare(object, Pair.create(transaction, contents));

Back to the top