Browse Source

Added separate equals/notEquals methods for EObject and Object input parameters.

tomqc86@googlemail.com 11 years ago
parent
commit
8e6eaf1abf

+ 11 - 7
plugins/org.yakindu.sct.simulation.core.sexec/src/org/yakindu/sct/simulation/core/sexec/interpreter/CoreFunction.java

@@ -450,12 +450,14 @@ public class CoreFunction extends Function {
 	public Boolean equals(Boolean b1, Boolean b2) {
 		return b1.equals(b2);
 	}
+
+	@FunctionMethod(EQUALS)
+	public Boolean equals(EObject e1, EObject e2) {
+		return EcoreUtil.equals(e1, e2);
+	}
 	
 	@FunctionMethod(EQUALS)
 	public Boolean equals(Object e1, Object e2) {
-		if (e1 instanceof EObject && e2 instanceof EObject) {
-			return EcoreUtil.equals((EObject)e1, (EObject)e2);
-		}
 		return Objects.equal(e1, e2);
 	}
 
@@ -529,14 +531,16 @@ public class CoreFunction extends Function {
 		return l1.longValue() == i1.intValue();
 	}
 
+	@FunctionMethod(NOT_EQUALS)
+	public Boolean notEquals(EObject e1, EObject e2) {
+		return !EcoreUtil.equals(e1, e2);
+	}
+	
 	@FunctionMethod(NOT_EQUALS)
 	public Boolean notEquals(Object e1, Object e2) {
-		if (e1 instanceof EObject && e2 instanceof EObject) {
-			return !EcoreUtil.equals((EObject)e1, (EObject)e2);
-		}
 		return ! Objects.equal(e1, e2);
 	}
-	
+
 	@FunctionMethod(NOT_EQUALS)
 	public Boolean notEquals(Boolean b1, Boolean b2) {
 		return b1.booleanValue() != b2.booleanValue();