Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Lehmann2010-11-29 14:39:56 +0000
committerPascal Lehmann2010-11-29 14:39:56 +0000
commite991182586061e98c12024ddd02a661a22795616 (patch)
tree6995fc95e3cd3c6673bfbf88ca18518551766f22 /plugins/org.eclipse.emf.cdo.common/src
parent82665d1b8c9818a2535deda8e84576cf120393b2 (diff)
downloadcdo-e991182586061e98c12024ddd02a661a22795616.tar.gz
cdo-e991182586061e98c12024ddd02a661a22795616.tar.xz
cdo-e991182586061e98c12024ddd02a661a22795616.zip
[330903] Improve hashcode & equals Implementation for CDOFeatureDeltas.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=330903
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.common/src')
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/delta/CDOFeatureDelta.java5
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOContainerFeatureDeltaImpl.java11
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOFeatureDeltaImpl.java9
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOListFeatureDeltaImpl.java10
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOMoveFeatureDeltaImpl.java10
-rw-r--r--plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOSingleValueFeatureDeltaImpl.java10
6 files changed, 14 insertions, 41 deletions
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/delta/CDOFeatureDelta.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/delta/CDOFeatureDelta.java
index e48dd48d24..202d4001ca 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/delta/CDOFeatureDelta.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/common/revision/delta/CDOFeatureDelta.java
@@ -50,6 +50,11 @@ public interface CDOFeatureDelta
public CDOFeatureDelta copy();
/**
+ * @since 4.0
+ */
+ public boolean isStructurallyEqual(Object obj);
+
+ /**
* @author Simon McDuff
*/
public enum Type
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOContainerFeatureDeltaImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOContainerFeatureDeltaImpl.java
index e90b821819..4b90633834 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOContainerFeatureDeltaImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOContainerFeatureDeltaImpl.java
@@ -112,16 +112,9 @@ public class CDOContainerFeatureDeltaImpl extends CDOFeatureDeltaImpl implements
}
@Override
- public int hashCode()
+ public boolean isStructurallyEqual(Object obj)
{
- return super.hashCode() ^ ObjectUtil.hashCode(newResourceID) ^ ObjectUtil.hashCode(newContainerID)
- ^ newContainerFeatureID;
- }
-
- @Override
- public boolean equals(Object obj)
- {
- if (!super.equals(obj))
+ if (!super.isStructurallyEqual(obj))
{
return false;
}
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOFeatureDeltaImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOFeatureDeltaImpl.java
index e1556dc490..f9afb221ce 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOFeatureDeltaImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOFeatureDeltaImpl.java
@@ -58,14 +58,7 @@ public abstract class CDOFeatureDeltaImpl implements InternalCDOFeatureDelta
return feature;
}
- @Override
- public int hashCode()
- {
- return feature.hashCode() ^ getType().hashCode() << 16;
- }
-
- @Override
- public boolean equals(Object obj)
+ public boolean isStructurallyEqual(Object obj)
{
if (obj == this)
{
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOListFeatureDeltaImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOListFeatureDeltaImpl.java
index 095245f65e..e44b4bb6c4 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOListFeatureDeltaImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOListFeatureDeltaImpl.java
@@ -413,15 +413,9 @@ public class CDOListFeatureDeltaImpl extends CDOFeatureDeltaImpl implements CDOL
}
@Override
- public int hashCode()
+ public boolean isStructurallyEqual(Object obj)
{
- return super.hashCode() ^ ObjectUtil.hashCode(featureDeltas);
- }
-
- @Override
- public boolean equals(Object obj)
- {
- if (!super.equals(obj))
+ if (!super.isStructurallyEqual(obj))
{
return false;
}
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOMoveFeatureDeltaImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOMoveFeatureDeltaImpl.java
index 23bc79c521..2b900c584c 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOMoveFeatureDeltaImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOMoveFeatureDeltaImpl.java
@@ -181,15 +181,9 @@ public class CDOMoveFeatureDeltaImpl extends CDOFeatureDeltaImpl implements CDOM
}
@Override
- public int hashCode()
+ public boolean isStructurallyEqual(Object obj)
{
- return super.hashCode() ^ oldPosition ^ newPosition;
- }
-
- @Override
- public boolean equals(Object obj)
- {
- if (!super.equals(obj))
+ if (!super.isStructurallyEqual(obj))
{
return false;
}
diff --git a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOSingleValueFeatureDeltaImpl.java b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOSingleValueFeatureDeltaImpl.java
index 262562f6e3..24c7837bcb 100644
--- a/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOSingleValueFeatureDeltaImpl.java
+++ b/plugins/org.eclipse.emf.cdo.common/src/org/eclipse/emf/cdo/internal/common/revision/delta/CDOSingleValueFeatureDeltaImpl.java
@@ -154,15 +154,9 @@ public abstract class CDOSingleValueFeatureDeltaImpl extends CDOFeatureDeltaImpl
}
@Override
- public int hashCode()
+ public boolean isStructurallyEqual(Object obj)
{
- return super.hashCode() ^ index ^ ObjectUtil.hashCode(value);
- }
-
- @Override
- public boolean equals(Object obj)
- {
- if (!super.equals(obj))
+ if (!super.isStructurallyEqual(obj))
{
return false;
}

Back to the top