[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);
 			}