Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Ratz2018-09-23 15:22:26 +0000
committerAndrey Loskutov2018-09-23 16:36:46 +0000
commit542f40e5776d928308fc6443fe6293463e2b5483 (patch)
tree211f3902148d42c72616b93cdc16325e8515a9c7 /org.eclipse.jface.text/src
parentbb4abd131785dc66b2a4da321ded042fd4e37db1 (diff)
downloadeclipse.platform.text-542f40e5776d928308fc6443fe6293463e2b5483.tar.gz
eclipse.platform.text-542f40e5776d928308fc6443fe6293463e2b5483.tar.xz
eclipse.platform.text-542f40e5776d928308fc6443fe6293463e2b5483.zip
Bug 535964 - Move some non UI classes from jface.text to o.e.text.I20180923-1800
Another update to the #equals() implementation. bb4abd131785dc66b2a4da321ded042fd4e37db1 broke equals() in other scenarios. A = org.eclipse.text.templates.TemplatePersistenceData B = org.eclipse.jface.text.templates.persistence.TemplatePersistenceData Properly implement equals() in the super class (A) and in the deprecated subclass (B), such that the symmetric property of equals holds: A.equals(B) B.equals(A) This is ensured by always using B as a dummy and delegating via "ref". In the super type A introduce a new dummy UUID just for equals. This simulates the previous object identity semantics for equals (there can exist multiple *different* templates with identical values). Change-Id: Ia34e7019a54464b6f4d95521eddea8e682e87bf1 Signed-off-by: Sebastian Ratz <sebastian.ratz@sap.com>
Diffstat (limited to 'org.eclipse.jface.text/src')
-rw-r--r--org.eclipse.jface.text/src/org/eclipse/jface/text/templates/persistence/TemplatePersistenceData.java60
1 files changed, 24 insertions, 36 deletions
diff --git a/org.eclipse.jface.text/src/org/eclipse/jface/text/templates/persistence/TemplatePersistenceData.java b/org.eclipse.jface.text/src/org/eclipse/jface/text/templates/persistence/TemplatePersistenceData.java
index a87ad110f75..dcfeff12b7b 100644
--- a/org.eclipse.jface.text/src/org/eclipse/jface/text/templates/persistence/TemplatePersistenceData.java
+++ b/org.eclipse.jface.text/src/org/eclipse/jface/text/templates/persistence/TemplatePersistenceData.java
@@ -13,6 +13,8 @@
*******************************************************************************/
package org.eclipse.jface.text.templates.persistence;
+import java.util.UUID;
+
import org.eclipse.jface.text.templates.Template;
@@ -33,7 +35,7 @@ import org.eclipse.jface.text.templates.Template;
@Deprecated
public class TemplatePersistenceData extends org.eclipse.text.templates.TemplatePersistenceData {
- org.eclipse.text.templates.TemplatePersistenceData ref;
+ private final org.eclipse.text.templates.TemplatePersistenceData ref;
/**
* In some cases, we must continue to respect the deprecated TemplatePresistenceData
@@ -45,99 +47,85 @@ public class TemplatePersistenceData extends org.eclipse.text.templates.Template
*/
public TemplatePersistenceData(org.eclipse.text.templates.TemplatePersistenceData data) {
super(data.getTemplate(), data.isEnabled(), data.getId()); // these are ignored
- this.ref= data;
+ this.ref= data instanceof TemplatePersistenceData ? ((TemplatePersistenceData) data).ref : data; // no double wrapping
}
public TemplatePersistenceData(Template template, boolean enabled) {
- super(template, enabled);
+ this(new org.eclipse.text.templates.TemplatePersistenceData(template, enabled));
}
public TemplatePersistenceData(Template template, boolean enabled, String id) {
- super(template, enabled, id);
+ this(new org.eclipse.text.templates.TemplatePersistenceData(template, enabled, id));
}
@Override
public String getId() {
- return (ref != null) ? ref.getId() : super.getId();
+ return ref.getId();
}
@Override
public boolean isDeleted() {
- return (ref != null) ? ref.isDeleted() : super.isDeleted();
+ return ref.isDeleted();
}
@Override
public void setDeleted(boolean isDeleted) {
- if (ref != null) {
- ref.setDeleted(isDeleted);
- } else {
- super.setDeleted(isDeleted);
- }
+ ref.setDeleted(isDeleted);
}
@Override
public Template getTemplate() {
- return (ref != null) ? ref.getTemplate() : super.getTemplate();
+ return ref.getTemplate();
}
@Override
public void setTemplate(Template template) {
- if (ref != null) {
- ref.setTemplate(template);
- } else {
- super.setTemplate(template);
- }
+ ref.setTemplate(template);
}
@Override
public boolean isCustom() {
- return (ref != null) ? ref.isCustom() : super.isCustom();
+ return ref.isCustom();
}
@Override
public boolean isModified() {
- return (ref != null) ? ref.isModified() : super.isModified();
+ return ref.isModified();
}
@Override
public boolean isUserAdded() {
- return (ref != null) ? ref.isUserAdded() : super.isUserAdded();
+ return ref.isUserAdded();
}
@Override
public void revert() {
- if (ref != null) {
- ref.revert();
- } else {
- super.revert();
- }
+ ref.revert();
}
@Override
public boolean isEnabled() {
- return (ref != null) ? ref.isEnabled() : super.isEnabled();
+ return ref.isEnabled();
}
@Override
public void setEnabled(boolean isEnabled) {
- if (ref != null) {
- ref.setEnabled(isEnabled);
- } else {
- super.setEnabled(isEnabled);
- }
+ ref.setEnabled(isEnabled);
}
@Override
public boolean equals(Object other) {
- if (ref != null && other instanceof TemplatePersistenceData && ((TemplatePersistenceData) other).ref != null) {
- return ref.equals(((TemplatePersistenceData) other).ref);
- }
- return super.equals(other);
+ return ref.equals(other);
}
@Override
public int hashCode() {
- return (ref != null) ? ref.hashCode() : super.hashCode();
+ return ref.hashCode();
+ }
+
+ @Override
+ protected UUID getUniqueIdForEquals() {
+ return getUniqueIdForEquals(ref);
}
}

Back to the top