[573836] Accommodate reversion to UML-like [1] default multiplicity
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtbase/src/org/eclipse/qvtd/xtext/qvtbase/as2cs/QVTbaseDeclarationVisitor.java b/plugins/org.eclipse.qvtd.xtext.qvtbase/src/org/eclipse/qvtd/xtext/qvtbase/as2cs/QVTbaseDeclarationVisitor.java
index d7acce4..cb7e13b 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtbase/src/org/eclipse/qvtd/xtext/qvtbase/as2cs/QVTbaseDeclarationVisitor.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtbase/src/org/eclipse/qvtd/xtext/qvtbase/as2cs/QVTbaseDeclarationVisitor.java
@@ -64,14 +64,14 @@
}
public @Nullable TypedRefCS createTypeRefCS(@NonNull TypedElement asTypedElement) { // FIXME Bug 496810 promote to OCL
- return createTypeRefCS(asTypedElement, false);
+ return createTypeRefCS(asTypedElement, null);
}
- public @Nullable TypedRefCS createTypeRefCS(@NonNull TypedElement asTypedElement, boolean defaultIsRequired) { // FIXME Bug 496810 promote to OCL
+ public @Nullable TypedRefCS createTypeRefCS(@NonNull TypedElement asTypedElement, @Nullable Boolean defaultIsRequired) { // FIXME Bug 496810 promote to OCL
boolean isRequired = asTypedElement.isIsRequired();
Type asType = asTypedElement.getType();
TypedRefCS csTypeRef = createTypeRefCS(asType);
- if ((csTypeRef != null) && (isRequired != defaultIsRequired)) {
+ if ((csTypeRef != null) && ((defaultIsRequired == null) || (isRequired != defaultIsRequired.booleanValue()))) {
if (!isRequired) {
MultiplicityStringCS csMultiplicity = BaseCSFactory.eINSTANCE.createMultiplicityStringCS(); // FIXME MultiplicityStringCS would be nicer but "1" is the default which confuses Xtext serialization
csMultiplicity.setStringBounds("?");
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation/src/org/eclipse/qvtd/xtext/qvtrelation/as2cs/QVTrelationDeclarationVisitor.java b/plugins/org.eclipse.qvtd.xtext.qvtrelation/src/org/eclipse/qvtd/xtext/qvtrelation/as2cs/QVTrelationDeclarationVisitor.java
index ada3386..d6df552 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtrelation/src/org/eclipse/qvtd/xtext/qvtrelation/as2cs/QVTrelationDeclarationVisitor.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation/src/org/eclipse/qvtd/xtext/qvtrelation/as2cs/QVTrelationDeclarationVisitor.java
@@ -363,7 +363,7 @@
TemplateExp templateExpression = asDomainPattern.getTemplateExpression();
VariableDeclaration rootVariable = templateExpression.getBindsTo();
csDomainPattern.setName(rootVariable.getName());
- csDomainPattern.setOwnedType(createTypeRefCS(rootVariable, true));
+ csDomainPattern.setOwnedType(createTypeRefCS(rootVariable, null));
return csDomainPattern;
}
else {
diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation/src/org/eclipse/qvtd/xtext/qvtrelation/cs2as/QVTrelationCSPostOrderVisitor.java b/plugins/org.eclipse.qvtd.xtext.qvtrelation/src/org/eclipse/qvtd/xtext/qvtrelation/cs2as/QVTrelationCSPostOrderVisitor.java
index cfa76ae..c5f1385 100644
--- a/plugins/org.eclipse.qvtd.xtext.qvtrelation/src/org/eclipse/qvtd/xtext/qvtrelation/cs2as/QVTrelationCSPostOrderVisitor.java
+++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation/src/org/eclipse/qvtd/xtext/qvtrelation/cs2as/QVTrelationCSPostOrderVisitor.java
@@ -209,9 +209,6 @@
if (pivotElement != null) {
Type type = PivotUtil.getPivot(Type.class, csElement.getOwnedType());
TemplateExp template = pivotElement.getTemplateExpression();
- Variable rootVariable = template.getBindsTo();
- assert rootVariable != null;
- helper.setType(rootVariable, type, true);
if (template instanceof ObjectTemplateExp) {
((ObjectTemplateExp)template).setReferredClass((org.eclipse.ocl.pivot.Class)type);
}