From 60758b180412e4c791c64d3579c261accf1d3162 Mon Sep 17 00:00:00 2001 From: dgelessus <dgelessus@users.noreply.github.com> Date: Thu, 7 Dec 2023 15:20:11 +0100 Subject: [PATCH] Optimize EventBEObjectMatcher slightly --- .../diffmerge/EventBEObjectMatcher.java | 31 ++++++------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/org.eventb.texttools/src/org/eventb/texttools/diffmerge/EventBEObjectMatcher.java b/org.eventb.texttools/src/org/eventb/texttools/diffmerge/EventBEObjectMatcher.java index 1995d9a..546d694 100644 --- a/org.eventb.texttools/src/org/eventb/texttools/diffmerge/EventBEObjectMatcher.java +++ b/org.eventb.texttools/src/org/eventb/texttools/diffmerge/EventBEObjectMatcher.java @@ -78,14 +78,16 @@ public class EventBEObjectMatcher implements IEObjectMatcher { /* * Only one variant may exist in a model, so two variants are a match */ - if (areVariants(left, candidate)) { + if (left instanceof Variant) { + assert candidate instanceof Variant; return true; } /* * Improve matching for event b named objects with same name */ - if (left instanceof EventBNamed && candidate instanceof EventBNamed) { + if (left instanceof EventBNamed) { + assert candidate instanceof EventBNamed; EventBNamed l = (EventBNamed) left; EventBNamed c = (EventBNamed) candidate; @@ -98,12 +100,11 @@ public class EventBEObjectMatcher implements IEObjectMatcher { * rely on emf identifiers after the event-b specific code */ String idLeft = getEMFId(left); - String idCandidate = getEMFId(candidate); - if (idLeft != null && idLeft.equals(idCandidate)) { - return true; + if (idLeft == null) { + return false; } - - return false; + String idCandidate = getEMFId(candidate); + return idLeft.equals(idCandidate); } private static boolean areSameType(final EObject obj1, final EObject obj2) { @@ -111,23 +112,9 @@ public class EventBEObjectMatcher implements IEObjectMatcher { && obj1.eClass().equals(obj2.eClass()); } - /** - * Test if both given {@link EObject}s are of type {@link Variant}, includes - * <code>null</code> check. - * - * @param obj1 - * @param obj2 - * @return - */ - private static boolean areVariants(final EObject obj1, final EObject obj2) { - return areSameType(obj1, obj2) && obj2 instanceof Variant; - } - private static String getEMFId(EObject eObject) { final String identifier; - if (eObject == null) { - identifier = null; - } else if (eObject.eIsProxy()) { + if (eObject.eIsProxy()) { identifier = ((InternalEObject) eObject).eProxyURI().fragment(); } else { String functionalId = EcoreUtil.getID(eObject); -- GitLab