[460755] Fix boxing of DataTypes
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/library/executor/AbstractIdResolver.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/library/executor/AbstractIdResolver.java
index 3b6fc7e..90c8289 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/library/executor/AbstractIdResolver.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/internal/library/executor/AbstractIdResolver.java
@@ -394,7 +394,7 @@
else if (unboxedValue instanceof Enumerator) {
return boxedValueOfEnumerator((Enumerator) unboxedValue);
}
- throw new UnsupportedOperationException(); // Must invoke createObjectValue with the appropriate TypeId
+ return unboxedValue;
}
@Override
diff --git a/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/pivot/tests/EvaluateModelOperationsTest4.java b/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/pivot/tests/EvaluateModelOperationsTest4.java
index c6f76fd..05eaf82 100644
--- a/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/pivot/tests/EvaluateModelOperationsTest4.java
+++ b/tests/org.eclipse.ocl.examples.xtext.tests/src/org/eclipse/ocl/examples/pivot/tests/EvaluateModelOperationsTest4.java
@@ -17,6 +17,7 @@
import java.math.BigInteger;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Date;
import java.util.List;
import org.eclipse.emf.ecore.EClass;
@@ -144,6 +145,7 @@
" property anEShort : ecore::EShort;\n" +
" property anEShortObject : ecore::EShortObject;\n" +
" property anEString : ecore::EString;\n" +
+ " property anEDate : ecore::EDate;\n" +
" }\n" +
"}\n";
Resource metamodel = cs2ecore(ocl, metamodelText, null);
@@ -152,6 +154,11 @@
// helper.setContext(metamodelManager.getIdResolver().getType(eClass));
EObject eObject = eCreate(eClass);
//
+ Date nowDate = new Date();
+ eSet(eObject, "anEDate", nowDate);
+ ocl.assertQueryTrue(eObject, "anEDate = anEDate");
+ ocl.assertQueryFalse(eObject, "anEDate = ecore::EDate{'2345-12-23'}");
+ //
eSet(eObject, "anEBigDecimal", BigDecimal.valueOf(0));
ocl.assertQueryEquals(eObject, 0, "anEBigDecimal");
ocl.assertQueryEquals(eObject, 1, "anEBigDecimal + 1");