From 816f7f6e09b3aa43c0b6108cec1e960f541e760b Mon Sep 17 00:00:00 2001 From: dgelessus <dgelessus@users.noreply.github.com> Date: Wed, 6 Dec 2023 13:54:49 +0100 Subject: [PATCH] Simplify EventBMerger.isMergerFor using namespace URIs This way, we don't have to explicitly list all EMF-EventB core package names, and avoid potential problems with other plugins that use the same unqualified names. --- .../eventb/texttools/diffmerge/EventBMerger.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/org.eventb.texttools/src/org/eventb/texttools/diffmerge/EventBMerger.java b/org.eventb.texttools/src/org/eventb/texttools/diffmerge/EventBMerger.java index 48b372d..3a85419 100644 --- a/org.eventb.texttools/src/org/eventb/texttools/diffmerge/EventBMerger.java +++ b/org.eventb.texttools/src/org/eventb/texttools/diffmerge/EventBMerger.java @@ -1,6 +1,5 @@ package org.eventb.texttools.diffmerge; -import org.eclipse.emf.common.util.EList; import org.eclipse.emf.compare.AttributeChange; import org.eclipse.emf.compare.Diff; import org.eclipse.emf.compare.ReferenceChange; @@ -8,7 +7,7 @@ import org.eclipse.emf.compare.merge.AbstractMerger; import org.eclipse.emf.compare.merge.AttributeChangeMerger; import org.eclipse.emf.compare.merge.ReferenceChangeMerger; import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.EStructuralFeature; import org.eventb.emf.core.EventBObject; import org.eventb.texttools.TextPositionUtil; @@ -19,20 +18,18 @@ public class EventBMerger extends AbstractMerger { @Override public boolean isMergerFor(Diff target) { - String pack = ""; + EStructuralFeature thing; if (target instanceof ReferenceChange) { ReferenceChange rc = (ReferenceChange) target; - pack = rc.getReference().getEContainingClass().getEPackage().getName(); - //System.out.println("REF PACK:"+pack); + thing = rc.getReference(); } else if (target instanceof AttributeChange) { AttributeChange ac = (AttributeChange) target; - pack = ac.getAttribute().getEContainingClass().getEPackage().getName(); - //System.out.println("ATTR PACK:"+pack); + thing = ac.getAttribute(); } else { - System.out.println("TARGET:"+target); return false; } - return pack.equals("core") || pack.equals("machine") || pack.equals("context") || pack.equals("formulas"); + String namespaceURI = thing.getEContainingClass().getEPackage().getNsURI(); + return namespaceURI.startsWith("http://emf.eventb.org/models/core/"); } -- GitLab