diff options
author | Eike Stepper | 2013-02-21 07:57:11 +0000 |
---|---|---|
committer | Eike Stepper | 2013-02-21 07:57:11 +0000 |
commit | ccc143cdbf937af334cb50a69582bb3f8899758e (patch) | |
tree | 978fb585501a9a86d4e98e03030bea7b3536eacc /plugins/org.eclipse.emf.cdo.common | |
parent | cf49b7c79567c2428ecfca6d42867eda592cefca (diff) | |
download | cdo-ccc143cdbf937af334cb50a69582bb3f8899758e.tar.gz cdo-ccc143cdbf937af334cb50a69582bb3f8899758e.tar.xz cdo-ccc143cdbf937af334cb50a69582bb3f8899758e.zip |
[400892] Intern all CDOIDs
https://bugs.eclipse.org/bugs/show_bug.cgi?id=400892
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.common')
28 files changed, 127 insertions, 289 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDUtil.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDUtil.java index 8e1c6b7398..e305ff194e 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDUtil.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/id/CDOIDUtil.java @@ -36,7 +36,6 @@ import org.eclipse.emf.cdo.internal.common.revision.CDOIDAndVersionImpl; import org.eclipse.emf.cdo.spi.common.id.AbstractCDOID; import org.eclipse.emf.cdo.spi.common.id.InternalCDOIDObject; -import org.eclipse.net4j.util.ObjectUtil; import org.eclipse.net4j.util.UUIDGenerator; import org.eclipse.net4j.util.io.ExtendedDataInput; import org.eclipse.net4j.util.io.ExtendedDataOutput; @@ -44,6 +43,8 @@ import org.eclipse.net4j.util.om.trace.ContextTracer; import java.io.IOException; import java.text.MessageFormat; +import java.util.HashMap; +import java.util.Map; /** * Various static methods that may help with CDO {@link CDOID IDs}. @@ -59,6 +60,11 @@ public final class CDOIDUtil { } + public static <V> Map<CDOID, V> createMap() + { + return new HashMap<CDOID, V>(); + } + /** * @since 4.0 */ @@ -519,17 +525,22 @@ public final class CDOIDUtil */ public static boolean equals(CDOID id1, CDOID id2) { + if (id1 == id2) + { + return true; + } + if (id1 == null) { - id1 = CDOID.NULL; + return id2 == CDOID.NULL; } if (id2 == null) { - id2 = CDOID.NULL; + return id1 == CDOID.NULL; } - return ObjectUtil.equals(id1, id2); + return false; } /** diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionUtil.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionUtil.java index 476f7b4e97..60c15c4154 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionUtil.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/CDORevisionUtil.java @@ -347,7 +347,7 @@ public final class CDORevisionUtil { return null; } - else if (parentID.equals(revision.getID())) + else if (parentID == revision.getID()) { // This must be the root resource! return null; diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchImpl.java index 3283cb40ab..f21899e9e8 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchImpl.java @@ -280,18 +280,7 @@ public class CDOBranchImpl extends Container<CDOBranch> implements InternalCDOBr @Override public boolean equals(Object obj) { - if (obj == this) - { - return true; - } - - if (obj instanceof CDOBranch) - { - CDOBranch that = (CDOBranch)obj; - return id == that.getID(); - } - - return false; + return obj == this; } @Override diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchPointImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchPointImpl.java index 93bc6909e7..52a725d4ed 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchPointImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchPointImpl.java @@ -14,8 +14,6 @@ import org.eclipse.emf.cdo.common.branch.CDOBranch; import org.eclipse.emf.cdo.common.branch.CDOBranchPoint; import org.eclipse.emf.cdo.common.util.CDOCommonUtil; -import org.eclipse.net4j.util.ObjectUtil; - import java.text.MessageFormat; /** @@ -71,7 +69,7 @@ public class CDOBranchPointImpl implements CDOBranchPoint, Comparable<CDOBranchP if (obj instanceof CDOBranchPoint) { CDOBranchPoint that = (CDOBranchPoint)obj; - return ObjectUtil.equals(branch, that.getBranch()) && timeStamp == that.getTimeStamp(); + return branch == that.getBranch() && timeStamp == that.getTimeStamp(); } return false; diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchVersionImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchVersionImpl.java index 1d5050875f..b662c8b635 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchVersionImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/branch/CDOBranchVersionImpl.java @@ -13,8 +13,6 @@ package org.eclipse.emf.cdo.internal.common.branch; import org.eclipse.emf.cdo.common.branch.CDOBranch; import org.eclipse.emf.cdo.common.branch.CDOBranchVersion; -import org.eclipse.net4j.util.ObjectUtil; - import java.text.MessageFormat; /** @@ -59,7 +57,7 @@ public class CDOBranchVersionImpl implements CDOBranchVersion if (obj instanceof CDOBranchVersion) { CDOBranchVersion that = (CDOBranchVersion)obj; - return ObjectUtil.equals(branch, that.getBranch()) && version == that.getVersion(); + return branch == that.getBranch() && version == that.getVersion(); } return false; diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOChangeSetDataImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOChangeSetDataImpl.java index dd0694cead..33b53498dc 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOChangeSetDataImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/commit/CDOChangeSetDataImpl.java @@ -13,6 +13,7 @@ package org.eclipse.emf.cdo.internal.common.commit; import org.eclipse.emf.cdo.common.commit.CDOChangeKind; import org.eclipse.emf.cdo.common.commit.CDOChangeSetData; import org.eclipse.emf.cdo.common.id.CDOID; +import org.eclipse.emf.cdo.common.id.CDOIDUtil; import org.eclipse.emf.cdo.common.revision.CDOIDAndVersion; import org.eclipse.emf.cdo.common.revision.CDORevision; import org.eclipse.emf.cdo.common.revision.CDORevisionKey; @@ -24,7 +25,6 @@ import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevisionDelta; import java.text.MessageFormat; import java.util.ArrayList; import java.util.Collection; -import java.util.HashMap; import java.util.List; import java.util.Map; @@ -115,18 +115,18 @@ public class CDOChangeSetDataImpl implements CDOChangeSetData public void merge(CDOChangeSetData changeSetData) { - Map<CDOID, CDOIDAndVersion> newMap = new HashMap<CDOID, CDOIDAndVersion>(); + Map<CDOID, CDOIDAndVersion> newMap = CDOIDUtil.createMap(); fillMap(newMap, newObjects); fillMap(newMap, changeSetData.getNewObjects()); - Map<CDOID, CDORevisionKey> changedMap = new HashMap<CDOID, CDORevisionKey>(); + Map<CDOID, CDORevisionKey> changedMap = CDOIDUtil.createMap(); fillMap(changedMap, changedObjects); for (CDORevisionKey key : changeSetData.getChangedObjects()) { mergeChangedObject(key, newMap, changedMap); } - Map<CDOID, CDOIDAndVersion> detachedMap = new HashMap<CDOID, CDOIDAndVersion>(); + Map<CDOID, CDOIDAndVersion> detachedMap = CDOIDUtil.createMap(); fillMap(detachedMap, detachedObjects); for (CDOIDAndVersion key : changeSetData.getDetachedObjects()) { diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/GenUtil.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/GenUtil.java deleted file mode 100644 index 9e4cb8d1c7..0000000000 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/model/GenUtil.java +++ /dev/null @@ -1,213 +0,0 @@ -/* - * 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: - * Eike Stepper - initial API and implementation - */ -package org.eclipse.emf.cdo.internal.common.model; - -import org.eclipse.net4j.util.StringUtil; - -import org.eclipse.emf.ecore.EClassifier; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -/** - * @author Eike Stepper - */ -public final class GenUtil -{ - private GenUtil() - { - } - - /** - * See GenGenBaseImpl.isPrimitiveType - */ - public static boolean isPrimitiveType(EClassifier eType) - { - try - { - // J9 2.2 has problems assigning null to a Class variable. - Object result = eType.getInstanceClass(); - if (result == null) - { - return false; - } - - Class<?> instanceClass = (Class<?>)result; - return instanceClass.isPrimitive(); - } - catch (Exception e) - { - return false; - } - } - - /** - * See GenFeatureImpl.getUpperName - */ - public static String getFeatureUpperName(String featureName) - { - return format(featureName, '_', null, false, true).toUpperCase(); - } - - /** - * See GenFeatureImpl.getGetAccessor - */ - public static String getFeatureGetterName(String featureName, boolean isBooleanType) - { - String capName = StringUtil.cap(featureName); - // if (isMapEntryFeature()) - // return "getTyped" + capName; - String result = isBooleanType ? "is" + capName : "get" + ("Class".equals(capName) ? "Class_" : capName); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - - // if (isListType() && !isFeatureMapType() && !isMapType() && - // getGenModel().isArrayAccessors()) - // { - // result += "List"; - // } - - // GenClass rootImplementsInterface = - // getGenModel().getRootImplementsInterfaceGenClass(); - // GenClass context = getContext(); - // if (rootImplementsInterface != null && - // !rootImplementsInterface.isEObject()) - // { - // for (GenOperation genOperation : - // rootImplementsInterface.getAllGenOperations()) - // { - // if (genOperation.getName().equals(result) && - // genOperation.getGenParameters().isEmpty() && - // !genOperation.getType(context).equals(getType(context))) - // { - // result = result + "_"; - // break; - // } - // } - // } - - return result; - } - - /** - * Formats a name by parsing it into words separated by underscores and/or mixed-casing and then recombining them - * using the specified separator. A prefix can also be given to be recognized as a separate word or to be trimmed. - * Leading underscores can be ignored or can cause a leading separator to be prepended. - */ - public static String format(String name, char separator, String prefix, boolean includePrefix, - boolean includeLeadingSeparator) - { - String leadingSeparators = includeLeadingSeparator ? getLeadingSeparators(name, '_') : null; - if (leadingSeparators != null) - { - name = name.substring(leadingSeparators.length()); - } - - List<String> parsedName = new ArrayList<String>(); - if (prefix != null && name.startsWith(prefix) && name.length() > prefix.length() - && Character.isUpperCase(name.charAt(prefix.length()))) - { - name = name.substring(prefix.length()); - if (includePrefix) - { - parsedName = parseName(prefix, '_'); - } - } - - if (name.length() != 0) - { - parsedName.addAll(parseName(name, '_')); - } - - StringBuilder result = new StringBuilder(); - - for (Iterator<String> nameIter = parsedName.iterator(); nameIter.hasNext();) - { - String nameComponent = nameIter.next(); - result.append(nameComponent); - - if (nameIter.hasNext() && nameComponent.length() > 1) - { - result.append(separator); - } - } - - if (result.length() == 0 && prefix != null) - { - result.append(prefix); - } - - return leadingSeparators != null ? "_" + result.toString() : result.toString(); //$NON-NLS-1$ - } - - /** - * This method breaks sourceName into words delimited by separator and/or mixed-case naming. - */ - public static List<String> parseName(String sourceName, char separator) - { - List<String> result = new ArrayList<String>(); - if (sourceName != null) - { - StringBuilder currentWord = new StringBuilder(); - boolean lastIsLower = false; - for (int index = 0, length = sourceName.length(); index < length; ++index) - { - char curChar = sourceName.charAt(index); - if (Character.isUpperCase(curChar) || !lastIsLower && Character.isDigit(curChar) || curChar == separator) - { - if (lastIsLower && currentWord.length() > 1 || curChar == separator && currentWord.length() > 0) - { - result.add(currentWord.toString()); - currentWord = new StringBuilder(); - } - - lastIsLower = false; - } - else - { - if (!lastIsLower) - { - int currentWordLength = currentWord.length(); - if (currentWordLength > 1) - { - char lastChar = currentWord.charAt(--currentWordLength); - currentWord.setLength(currentWordLength); - result.add(currentWord.toString()); - currentWord = new StringBuilder(); - currentWord.append(lastChar); - } - } - - lastIsLower = true; - } - - if (curChar != separator) - { - currentWord.append(curChar); - } - } - - result.add(currentWord.toString()); - } - - return result; - } - - private static String getLeadingSeparators(String name, char separator) - { - int i = 0; - for (int len = name.length(); i < len && name.charAt(i) == separator; i++) - { - // the for loop's condition finds the separator - } - - return i != 0 ? name.substring(0, i) : null; - } -} diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOIDAndBranchImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOIDAndBranchImpl.java index d977da09a2..dc171760dd 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOIDAndBranchImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOIDAndBranchImpl.java @@ -15,7 +15,6 @@ import org.eclipse.emf.cdo.common.id.CDOID; import org.eclipse.emf.cdo.common.revision.CDOIDAndBranch; import org.eclipse.net4j.util.CheckUtil; -import org.eclipse.net4j.util.ObjectUtil; import java.text.MessageFormat; @@ -58,7 +57,7 @@ public class CDOIDAndBranchImpl implements CDOIDAndBranch if (obj instanceof CDOIDAndBranch) { CDOIDAndBranch that = (CDOIDAndBranch)obj; - return ObjectUtil.equals(branch, that.getBranch()) && ObjectUtil.equals(id, that.getID()); + return branch == that.getBranch() && id == that.getID(); } return false; diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOIDAndVersionImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOIDAndVersionImpl.java index 5ac777a1cf..afba9fc2bb 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOIDAndVersionImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOIDAndVersionImpl.java @@ -55,7 +55,7 @@ public class CDOIDAndVersionImpl implements CDOIDAndVersion if (obj instanceof CDOIDAndVersion) { CDOIDAndVersion that = (CDOIDAndVersion)obj; - return id.equals(that.getID()) && version == that.getVersion(); + return id == that.getID() && version == that.getVersion(); } return false; diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOListImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOListImpl.java index f99201743f..8049d4f8c3 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOListImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOListImpl.java @@ -18,8 +18,7 @@ import org.eclipse.emf.cdo.common.revision.CDOListFactory; import org.eclipse.emf.cdo.spi.common.revision.CDOReferenceAdjuster; import org.eclipse.emf.cdo.spi.common.revision.InternalCDOList; -import org.eclipse.net4j.util.collection.MoveableArrayList; - +import org.eclipse.emf.common.util.BasicEList; import org.eclipse.emf.ecore.EClassifier; import org.eclipse.emf.ecore.EStructuralFeature; @@ -28,7 +27,7 @@ import java.util.Collection; /** * @author Simon McDuff */ -public class CDOListImpl extends MoveableArrayList<Object> implements InternalCDOList +public class CDOListImpl extends BasicEList<Object> implements InternalCDOList { public static final CDOListFactory FACTORY = new CDOListFactory() { @@ -38,9 +37,13 @@ public class CDOListImpl extends MoveableArrayList<Object> implements InternalCD } }; + private static final byte FROZEN_FLAG = 1; + + private static final byte USE_EQUALS_FLAG = 2; + private static final long serialVersionUID = 1L; - private transient boolean frozen; + private transient byte flags = USE_EQUALS_FLAG; public CDOListImpl(int initialCapacity, int size) { @@ -55,7 +58,10 @@ public class CDOListImpl extends MoveableArrayList<Object> implements InternalCD { CDOType type = CDOModelUtil.getType(classifier); int size = size(); + InternalCDOList list = new CDOListImpl(size, 0); + list.setUseEquals(useEquals()); + for (int j = 0; j < size; j++) { Object value = this.get(j); @@ -99,12 +105,12 @@ public class CDOListImpl extends MoveableArrayList<Object> implements InternalCD public void freeze() { - frozen = true; + flags |= FROZEN_FLAG; } private void checkFrozen() { - if (frozen) + if ((flags & FROZEN_FLAG) != 0) { throw new IllegalStateException("Cannot modify a frozen list"); } @@ -184,4 +190,22 @@ public class CDOListImpl extends MoveableArrayList<Object> implements InternalCD { super.set(index, element); } + + @Override + public final boolean useEquals() + { + return (flags & USE_EQUALS_FLAG) != 0; + } + + public final void setUseEquals(boolean useEquals) + { + if (useEquals) + { + flags |= USE_EQUALS_FLAG; + } + else + { + flags &= ~USE_EQUALS_FLAG; + } + } } diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOListWithElementProxiesImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOListWithElementProxiesImpl.java index 4151f2c33d..fae2d3aea7 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOListWithElementProxiesImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDOListWithElementProxiesImpl.java @@ -71,7 +71,10 @@ public class CDOListWithElementProxiesImpl extends CDOListImpl { CDOType type = CDOModelUtil.getType(classifier); int size = size(); + InternalCDOList list = new CDOListWithElementProxiesImpl(size, 0, 0); + list.setUseEquals(useEquals()); + for (int j = 0; j < size; j++) { Object value = this.get(j); diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionCacheBranching.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionCacheBranching.java index 3904bb9d52..81b91760fa 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionCacheBranching.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionCacheBranching.java @@ -19,11 +19,8 @@ import org.eclipse.emf.cdo.common.revision.CDOIDAndBranch; import org.eclipse.emf.cdo.common.revision.CDORevision; import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevisionCache; -import org.eclipse.net4j.util.ObjectUtil; - import org.eclipse.emf.ecore.EClass; -import java.util.HashMap; import java.util.Map; /** @@ -31,7 +28,7 @@ import java.util.Map; */ public class CDORevisionCacheBranching extends CDORevisionCacheAuditing { - private Map<CDOID, TypeAndRefCounter> typeMap = new HashMap<CDOID, TypeAndRefCounter>(); + private Map<CDOID, TypeAndRefCounter> typeMap = CDOIDUtil.createMap(); public CDORevisionCacheBranching() { @@ -90,7 +87,7 @@ public class CDORevisionCacheBranching extends CDORevisionCacheAuditing @Override protected boolean isKeyInBranch(Object key, CDOBranch branch) { - return ObjectUtil.equals(((CDOIDAndBranch)key).getBranch(), branch); + return ((CDOIDAndBranch)key).getBranch() == branch; } @Override diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionCacheNonAuditing.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionCacheNonAuditing.java index 5e140270e4..5e73556dfe 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionCacheNonAuditing.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionCacheNonAuditing.java @@ -16,6 +16,7 @@ import org.eclipse.emf.cdo.common.branch.CDOBranch; import org.eclipse.emf.cdo.common.branch.CDOBranchPoint; import org.eclipse.emf.cdo.common.branch.CDOBranchVersion; import org.eclipse.emf.cdo.common.id.CDOID; +import org.eclipse.emf.cdo.common.id.CDOIDUtil; import org.eclipse.emf.cdo.common.revision.CDORevision; import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevision; import org.eclipse.emf.cdo.spi.common.revision.InternalCDORevisionCache; @@ -35,7 +36,7 @@ import java.util.Map; */ public class CDORevisionCacheNonAuditing extends AbstractCDORevisionCache { - private Map<CDOID, Reference<InternalCDORevision>> revisions = new HashMap<CDOID, Reference<InternalCDORevision>>(); + private Map<CDOID, Reference<InternalCDORevision>> revisions = CDOIDUtil.createMap(); public CDORevisionCacheNonAuditing() { @@ -165,9 +166,10 @@ public class CDORevisionCacheNonAuditing extends AbstractCDORevisionCache CheckUtil.checkArg(revision, "revision"); if (!revision.isHistorical()) { + Reference<InternalCDORevision> reference = createReference(revision); synchronized (revisions) { - revisions.put(revision.getID(), createReference(revision)); + revisions.put(revision.getID(), reference); } } } diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionKeyImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionKeyImpl.java index 23cbdf5e16..f28daf3846 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionKeyImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/CDORevisionKeyImpl.java @@ -52,7 +52,7 @@ public class CDORevisionKeyImpl extends CDOBranchVersionImpl implements CDORevis if (obj instanceof CDORevisionKey) { CDORevisionKey that = (CDORevisionKey)obj; - return id.equals(that.getID()) && getBranch().equals(that.getBranch()) && getVersion() == that.getVersion(); + return id == that.getID() && getVersion() == that.getVersion() && getBranch() == that.getBranch(); } return false; diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDORevisionDeltaImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDORevisionDeltaImpl.java index 3116aa35b5..773b4b6a7b 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDORevisionDeltaImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDORevisionDeltaImpl.java @@ -433,7 +433,17 @@ public class CDORevisionDeltaImpl implements InternalCDORevisionDelta return false; } - return origin == dirty || origin.equals(dirty); + if (origin == dirty) + { + return true; + } + + if (origin instanceof CDOID) + { + return false; + } + + return origin.equals(dirty); } private Object convertEObject(Object value) diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/branch/CDOBranchUtil.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/branch/CDOBranchUtil.java index 73983c3f59..e41dbd2651 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/branch/CDOBranchUtil.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/branch/CDOBranchUtil.java @@ -19,8 +19,6 @@ import org.eclipse.emf.cdo.internal.common.branch.CDOBranchManagerImpl; import org.eclipse.emf.cdo.internal.common.branch.CDOBranchPointImpl; import org.eclipse.emf.cdo.internal.common.branch.CDOBranchPointRangeImpl; -import org.eclipse.net4j.util.ObjectUtil; - import java.util.ArrayList; import java.util.List; @@ -88,7 +86,7 @@ public final class CDOBranchUtil public static boolean isContainedBy(CDOBranchPoint contained, CDOBranchPoint container) { CDOBranch containerBranch = container.getBranch(); - if (ObjectUtil.equals(containerBranch, contained.getBranch())) + if (containerBranch == contained.getBranch()) { return CDOCommonUtil.compareTimeStamps(contained.getTimeStamp(), container.getTimeStamp()) <= 0; } @@ -121,7 +119,7 @@ public final class CDOBranchUtil { for (CDOBranchPoint pathPoint2 : path2) { - if (ObjectUtil.equals(pathPoint1.getBranch(), pathPoint2.getBranch())) + if (pathPoint1.getBranch() == pathPoint2.getBranch()) { if (CDOCommonUtil.compareTimeStamps(pathPoint1.getTimeStamp(), pathPoint2.getTimeStamp()) < 0) { diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/commit/CDOChangeSetDataRevisionProvider.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/commit/CDOChangeSetDataRevisionProvider.java index 47ad2c8a74..c9a8204f2f 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/commit/CDOChangeSetDataRevisionProvider.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/commit/CDOChangeSetDataRevisionProvider.java @@ -13,6 +13,7 @@ package org.eclipse.emf.cdo.spi.common.commit; import org.eclipse.emf.cdo.common.commit.CDOChangeSetData; import org.eclipse.emf.cdo.common.commit.CDOChangeSetDataProvider; import org.eclipse.emf.cdo.common.id.CDOID; +import org.eclipse.emf.cdo.common.id.CDOIDUtil; import org.eclipse.emf.cdo.common.revision.CDOIDAndVersion; import org.eclipse.emf.cdo.common.revision.CDORevision; import org.eclipse.emf.cdo.common.revision.CDORevisionKey; @@ -20,7 +21,6 @@ import org.eclipse.emf.cdo.common.revision.CDORevisionProvider; import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta; import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDeltaProvider; -import java.util.HashMap; import java.util.Map; /** @@ -121,7 +121,7 @@ public class CDOChangeSetDataRevisionProvider implements CDORevisionProvider, CD private Map<CDOID, CDOIDAndVersion> cacheRevisions() { - Map<CDOID, CDOIDAndVersion> cache = new HashMap<CDOID, CDOIDAndVersion>(); + Map<CDOID, CDOIDAndVersion> cache = CDOIDUtil.createMap(); for (CDOIDAndVersion key : changeSetData.getNewObjects()) { diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/commit/CDOChangeSetSegment.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/commit/CDOChangeSetSegment.java index 0576054f65..6c8de3ae9d 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/commit/CDOChangeSetSegment.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/commit/CDOChangeSetSegment.java @@ -14,8 +14,6 @@ import org.eclipse.emf.cdo.common.branch.CDOBranch; import org.eclipse.emf.cdo.common.branch.CDOBranchPoint; import org.eclipse.emf.cdo.internal.common.branch.CDOBranchPointImpl; -import org.eclipse.net4j.util.ObjectUtil; - import java.text.MessageFormat; import java.util.LinkedList; @@ -75,7 +73,7 @@ public class CDOChangeSetSegment implements CDOBranchPoint CDOBranch startBranch = startPoint.getBranch(); CDOBranch endBranch = endPoint.getBranch(); - while (!ObjectUtil.equals(startBranch, endBranch)) + while (startBranch != endBranch) { CDOBranchPoint base = endBranch.getBase(); result.addFirst(new CDOChangeSetSegment(endBranch, base.getTimeStamp(), endPoint.getTimeStamp())); diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/commit/CDORevisionAvailabilityInfo.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/commit/CDORevisionAvailabilityInfo.java index 1a38f42049..b206fedeb3 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/commit/CDORevisionAvailabilityInfo.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/commit/CDORevisionAvailabilityInfo.java @@ -12,12 +12,12 @@ package org.eclipse.emf.cdo.spi.common.commit; import org.eclipse.emf.cdo.common.branch.CDOBranchPoint; import org.eclipse.emf.cdo.common.id.CDOID; +import org.eclipse.emf.cdo.common.id.CDOIDUtil; import org.eclipse.emf.cdo.common.revision.CDORevision; import org.eclipse.emf.cdo.common.revision.CDORevisionKey; import org.eclipse.emf.cdo.common.revision.CDORevisionProvider; import java.text.MessageFormat; -import java.util.HashMap; import java.util.Map; /** @@ -30,7 +30,7 @@ public final class CDORevisionAvailabilityInfo implements CDORevisionProvider { private CDOBranchPoint branchPoint; - private Map<CDOID, CDORevisionKey> availableRevisions = new HashMap<CDOID, CDORevisionKey>(); + private Map<CDOID, CDORevisionKey> availableRevisions = CDOIDUtil.createMap(); public CDORevisionAvailabilityInfo(CDOBranchPoint branchPoint) { diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/protocol/CDODataInputImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/protocol/CDODataInputImpl.java index d4071cbafb..7b03ab29b8 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/protocol/CDODataInputImpl.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/protocol/CDODataInputImpl.java @@ -99,7 +99,6 @@ import org.eclipse.emf.ecore.xml.type.XMLTypePackage; import java.io.IOException; import java.text.MessageFormat; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import java.util.Map; @@ -317,7 +316,7 @@ public abstract class CDODataInputImpl extends ExtendedDataInput.Delegating impl boolean readOnly = readBoolean(); int nLockStates = readInt(); - Map<CDOID, LockGrade> locks = new HashMap<CDOID, LockGrade>(); + Map<CDOID, LockGrade> locks = CDOIDUtil.createMap(); for (int i = 0; i < nLockStates; i++) { CDOID key = readCDOID(); @@ -477,6 +476,11 @@ public abstract class CDODataInputImpl extends ExtendedDataInput.Delegating impl } InternalCDOList list = (InternalCDOList)getListFactory().createList(size, size, referenceChunk); + if (feature instanceof EReference) + { + list.setUseEquals(false); + } + for (int j = 0; j < referenceChunk; j++) { if (isFeatureMap) diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/AbstractCDORevision.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/AbstractCDORevision.java index 8a476cd64a..35da8f46b2 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/AbstractCDORevision.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/AbstractCDORevision.java @@ -24,7 +24,6 @@ import org.eclipse.emf.cdo.internal.common.messages.Messages; import org.eclipse.emf.cdo.spi.common.model.InternalCDOClassInfo; import org.eclipse.net4j.util.ImplementationError; -import org.eclipse.net4j.util.ObjectUtil; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EStructuralFeature; @@ -173,7 +172,7 @@ public abstract class AbstractCDORevision implements InternalCDORevision */ public void adjustForCommit(CDOBranch branch, long timeStamp) { - if (ObjectUtil.equals(branch, getBranch())) + if (branch == getBranch()) { // Same branch, increase version setVersion(getVersion() + 1); @@ -205,7 +204,7 @@ public abstract class AbstractCDORevision implements InternalCDORevision if (obj instanceof CDORevision) { CDORevision that = (CDORevision)obj; - return getID().equals(that.getID()) && getBranch().equals(that.getBranch()) && getVersion() == that.getVersion(); + return getID() == that.getID() && getVersion() == that.getVersion() && getBranch() == that.getBranch(); } return false; diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/BaseCDORevision.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/BaseCDORevision.java index da4f902f66..34a1e77bad 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/BaseCDORevision.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/BaseCDORevision.java @@ -13,7 +13,6 @@ */ package org.eclipse.emf.cdo.spi.common.revision; -import org.eclipse.emf.cdo.common.branch.CDOBranch; import org.eclipse.emf.cdo.common.branch.CDOBranchPoint; import org.eclipse.emf.cdo.common.id.CDOID; import org.eclipse.emf.cdo.common.id.CDOIDProvider; @@ -39,6 +38,7 @@ import org.eclipse.emf.cdo.internal.common.bundle.OM; import org.eclipse.emf.cdo.internal.common.messages.Messages; import org.eclipse.emf.cdo.internal.common.revision.delta.CDORevisionDeltaImpl; import org.eclipse.emf.cdo.spi.common.branch.CDOBranchUtil; +import org.eclipse.emf.cdo.spi.common.branch.InternalCDOBranch; import org.eclipse.net4j.util.om.trace.ContextTracer; import org.eclipse.net4j.util.om.trace.PerfTracer; @@ -357,14 +357,14 @@ public abstract class BaseCDORevision extends AbstractCDORevision /** * @since 3.0 */ - public CDOBranch getBranch() + public InternalCDOBranch getBranch() { if (branchPoint == null) { return null; } - return branchPoint.getBranch(); + return (InternalCDOBranch)branchPoint.getBranch(); } /** @@ -684,10 +684,14 @@ public abstract class BaseCDORevision extends AbstractCDORevision public CDOList getList(EStructuralFeature feature, int size) { int featureIndex = getFeatureIndex(feature); - CDOList list = (CDOList)getValue(featureIndex); + InternalCDOList list = (InternalCDOList)getValue(featureIndex); if (list == null && size != -1) { - list = CDOListFactory.DEFAULT.createList(size, 0, 0); + list = (InternalCDOList)CDOListFactory.DEFAULT.createList(size, 0, 0); + if (feature instanceof EReference) + { + list.setUseEquals(false); + } synchronized (this) { diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/DelegatingCDORevision.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/DelegatingCDORevision.java index 1a2adc88fd..1889c99b94 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/DelegatingCDORevision.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/DelegatingCDORevision.java @@ -22,6 +22,7 @@ import org.eclipse.emf.cdo.common.revision.CDORevision; import org.eclipse.emf.cdo.common.revision.CDORevisionData; import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta; import org.eclipse.emf.cdo.common.security.CDOPermission; +import org.eclipse.emf.cdo.spi.common.branch.InternalCDOBranch; import org.eclipse.emf.cdo.spi.common.model.InternalCDOClassInfo; import org.eclipse.emf.ecore.EClass; @@ -72,7 +73,7 @@ public abstract class DelegatingCDORevision implements InternalCDORevision return getDelegate().getTimeStamp(); } - public CDOBranch getBranch() + public InternalCDOBranch getBranch() { return getDelegate().getBranch(); } diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDOList.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDOList.java index bb8d26d26c..eeb0417d1e 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDOList.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDOList.java @@ -48,4 +48,14 @@ public interface InternalCDOList extends CDOList * @since 4.0 */ public void setWithoutFrozenCheck(int i, Object value); + + /** + * @since 4.2 + */ + public boolean useEquals(); + + /** + * @since 4.2 + */ + public void setUseEquals(boolean useEquals); } diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevision.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevision.java index a5c1e427a8..65057dd251 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevision.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/InternalCDORevision.java @@ -21,6 +21,7 @@ import org.eclipse.emf.cdo.common.revision.CDOList; import org.eclipse.emf.cdo.common.revision.CDORevision; import org.eclipse.emf.cdo.common.revision.CDORevisionData; import org.eclipse.emf.cdo.common.security.CDOPermission; +import org.eclipse.emf.cdo.spi.common.branch.InternalCDOBranch; import org.eclipse.emf.cdo.spi.common.model.InternalCDOClassInfo; import org.eclipse.emf.ecore.EStructuralFeature; @@ -45,6 +46,11 @@ public interface InternalCDORevision extends CDORevision, CDORevisionData, CDORe /** * @since 4.2 */ + public InternalCDOBranch getBranch(); + + /** + * @since 4.2 + */ public InternalCDORevision getRevisionForID(CDOID id); /** diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/RevisionInfo.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/RevisionInfo.java index 0b04f75263..42706eae59 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/RevisionInfo.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/RevisionInfo.java @@ -19,7 +19,6 @@ import org.eclipse.emf.cdo.common.protocol.CDODataOutput; import org.eclipse.emf.cdo.common.revision.CDORevision; import org.eclipse.net4j.util.CheckUtil; -import org.eclipse.net4j.util.ObjectUtil; import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EClassifier; @@ -368,7 +367,7 @@ public abstract class RevisionInfo public boolean isDirect() { - return ObjectUtil.equals(availableBranchVersion.getBranch(), getRequestedBranchPoint().getBranch()); + return availableBranchVersion.getBranch() == getRequestedBranchPoint().getBranch(); } @Override @@ -389,7 +388,7 @@ public abstract class RevisionInfo throws IOException { InternalCDORevision result = getResult(); - if (result != null && ObjectUtil.equals(result.getBranch(), availableBranchVersion.getBranch())) + if (result != null && result.getBranch() == availableBranchVersion.getBranch()) { // Use available out.writeBoolean(true); diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/StubCDORevision.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/StubCDORevision.java index b7f27d59ab..432714d699 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/StubCDORevision.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/StubCDORevision.java @@ -10,7 +10,6 @@ */ package org.eclipse.emf.cdo.spi.common.revision; -import org.eclipse.emf.cdo.common.branch.CDOBranch; import org.eclipse.emf.cdo.common.branch.CDOBranchPoint; import org.eclipse.emf.cdo.common.id.CDOID; import org.eclipse.emf.cdo.common.id.CDOIDProvider; @@ -20,6 +19,7 @@ import org.eclipse.emf.cdo.common.revision.CDOList; import org.eclipse.emf.cdo.common.revision.CDORevision; import org.eclipse.emf.cdo.common.revision.delta.CDORevisionDelta; import org.eclipse.emf.cdo.common.security.CDOPermission; +import org.eclipse.emf.cdo.spi.common.branch.InternalCDOBranch; import org.eclipse.emf.cdo.spi.common.model.InternalCDOClassInfo; import org.eclipse.emf.ecore.EClass; @@ -196,7 +196,7 @@ public class StubCDORevision extends AbstractCDORevision throw new UnsupportedOperationException(getExceptionMessage()); } - public CDOBranch getBranch() + public InternalCDOBranch getBranch() { throw new UnsupportedOperationException(getExceptionMessage()); } diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/SyntheticCDORevision.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/SyntheticCDORevision.java index 2687010565..7ef871626a 100644 --- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/SyntheticCDORevision.java +++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/spi/common/revision/SyntheticCDORevision.java @@ -15,6 +15,7 @@ import org.eclipse.emf.cdo.common.branch.CDOBranchVersion; import org.eclipse.emf.cdo.common.id.CDOID; import org.eclipse.emf.cdo.common.revision.CDORevisionCache; import org.eclipse.emf.cdo.common.revision.CDORevisionManager; +import org.eclipse.emf.cdo.spi.common.branch.InternalCDOBranch; import org.eclipse.emf.ecore.EClass; @@ -33,7 +34,7 @@ import org.eclipse.emf.ecore.EClass; * Instances of this marker revision are not supposed to be exposed outside of a revision {@link CDORevisionManager * manager}. They are mainly used in the communication between a revision manager and its associated revision * {@link InternalCDORevisionManager.RevisionLoader loader}. - * + * * @author Eike Stepper * @since 3.0 */ @@ -41,13 +42,13 @@ public abstract class SyntheticCDORevision extends StubCDORevision { private CDOID id; - private CDOBranch branch; + private InternalCDOBranch branch; public SyntheticCDORevision(EClass eClass, CDOID id, CDOBranch branch) { super(eClass); this.id = id; - this.branch = branch; + this.branch = (InternalCDOBranch)branch; } @Override @@ -57,7 +58,7 @@ public abstract class SyntheticCDORevision extends StubCDORevision } @Override - public CDOBranch getBranch() + public InternalCDOBranch getBranch() { return branch; } |