diff options
author | Eike Stepper | 2018-11-05 08:52:35 +0000 |
---|---|---|
committer | Eike Stepper | 2018-11-05 08:52:35 +0000 |
commit | 6054292cf737bf6033e02884a1d01c366e938f25 (patch) | |
tree | 589aca50267d4ed9383f27e1ab7f222a2e91e991 /plugins/org.eclipse.emf.cdo/src/org/eclipse/emf/internal | |
parent | a55728e2bb422f4bf3b66f05e5c48ec78dc5278e (diff) | |
download | cdo-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')
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)); |