[573836] Revert to UML-like [1] default multiplicity
diff --git a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/options/PivotValidationOptions.java b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/options/PivotValidationOptions.java
index 2ad92a2..2814b68 100644
--- a/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/options/PivotValidationOptions.java
+++ b/plugins/org.eclipse.ocl.pivot/src/org/eclipse/ocl/pivot/options/PivotValidationOptions.java
@@ -38,10 +38,12 @@
PivotPlugin.PLUGIN_ID, "missing.safe.navigation", StatusCodes.Severity.IGNORE, StatusCodes.Severity.class); //$NON-NLS-1$
/**
+ * Specify the interpretation of default multiplicities; true for Ecore-like optional [?]. false for UML-like required [1].
+ *
* @since 1.16
*/
public static final @NonNull BooleanOption OptionalDefaultMultiplicity = new BooleanOption(
- PivotPlugin.PLUGIN_ID, "optional.default.multiplicity", true); //$NON-NLS-1$
+ PivotPlugin.PLUGIN_ID, "optional.default.multiplicity", false); //$NON-NLS-1$
public static final @NonNull EnumeratedOption<StatusCodes.Severity> RedundantSafeNavigation = new EnumeratedOption<StatusCodes.Severity>(
PivotPlugin.PLUGIN_ID, "redundant.safe.navigation", StatusCodes.Severity.IGNORE, StatusCodes.Severity.class); //$NON-NLS-1$
diff --git a/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/cs2as/CS2ASConversion.java b/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/cs2as/CS2ASConversion.java
index ae19355..615de1d 100644
--- a/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/cs2as/CS2ASConversion.java
+++ b/plugins/org.eclipse.ocl.xtext.base/src/org/eclipse/ocl/xtext/base/cs2as/CS2ASConversion.java
@@ -1114,7 +1114,11 @@
public void refreshRequiredType(@NonNull TypedElement pivotElement, @NonNull TypedRefCS csTypeRef) {
org.eclipse.ocl.pivot.Class type = PivotUtil.getPivot(org.eclipse.ocl.pivot.Class.class, csTypeRef);
Boolean isRequired = converter.isRequired(csTypeRef);
- getHelper().setType(pivotElement, type, isRequired != Boolean.FALSE);
+ if (isRequired == null) {
+ boolean defaultIsOptional = getEnvironmentFactory().getValue(PivotValidationOptions.OptionalDefaultMultiplicity) == Boolean.TRUE;
+ isRequired = !defaultIsOptional;
+ }
+ getHelper().setType(pivotElement, type, isRequired.booleanValue());
}
public void refreshTemplateSignature(@NonNull TemplateableElementCS csTemplateableElement, @NonNull TemplateableElement pivotTemplateableElement) {