/**
* <copyright>
* </copyright>
*
*
*/
package org.dresdenocl.language.ocl.resource.ocl.mopp;
import java.io.BufferedOutputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Arrays;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.ListIterator;
import java.util.Map;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EReference;
public class OclPrinter implements org.dresdenocl.language.ocl.resource.ocl.IOclTextPrinter {
protected org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolverFactory tokenResolverFactory = new org.dresdenocl.language.ocl.resource.ocl.mopp.OclTokenResolverFactory();
protected OutputStream outputStream;
/**
* Holds the resource that is associated with this printer. This may be null if
* the printer is used stand alone.
*/
private org.dresdenocl.language.ocl.resource.ocl.IOclTextResource resource;
private Map<?, ?> options;
private String encoding = System.getProperty("file.encoding");
public OclPrinter(OutputStream outputStream, org.dresdenocl.language.ocl.resource.ocl.IOclTextResource resource) {
super();
this.outputStream = outputStream;
this.resource = resource;
}
protected int matchCount(Map<String, Integer> featureCounter, Collection<String> needed) {
int pos = 0;
int neg = 0;
for (String featureName : featureCounter.keySet()) {
if (needed.contains(featureName)) {
int value = featureCounter.get(featureName);
if (value == 0) {
neg += 1;
} else {
pos += 1;
}
}
}
return neg > 0 ? -neg : pos;
}
protected void doPrint(EObject element, PrintWriter out, String globaltab) {
if (element == null) {
throw new IllegalArgumentException("Nothing to write.");
}
if (out == null) {
throw new IllegalArgumentException("Nothing to write on.");
}
if (element instanceof org.dresdenocl.language.ocl.SimpleNameCS) {
print_org_dresdenocl_language_ocl_SimpleNameCS((org.dresdenocl.language.ocl.SimpleNameCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.PackageDeclarationWithNamespaceCS) {
print_org_dresdenocl_language_ocl_PackageDeclarationWithNamespaceCS((org.dresdenocl.language.ocl.PackageDeclarationWithNamespaceCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.PackageDeclarationNestedNamespaceCS) {
print_org_dresdenocl_language_ocl_PackageDeclarationNestedNamespaceCS((org.dresdenocl.language.ocl.PackageDeclarationNestedNamespaceCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.PackageDeclarationWithoutNamespaceCS) {
print_org_dresdenocl_language_ocl_PackageDeclarationWithoutNamespaceCS((org.dresdenocl.language.ocl.PackageDeclarationWithoutNamespaceCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.OperationContextDeclarationCS) {
print_org_dresdenocl_language_ocl_OperationContextDeclarationCS((org.dresdenocl.language.ocl.OperationContextDeclarationCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.AttributeContextDeclarationCS) {
print_org_dresdenocl_language_ocl_AttributeContextDeclarationCS((org.dresdenocl.language.ocl.AttributeContextDeclarationCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.ClassifierContextDeclarationCS) {
print_org_dresdenocl_language_ocl_ClassifierContextDeclarationCS((org.dresdenocl.language.ocl.ClassifierContextDeclarationCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.InitValueCS) {
print_org_dresdenocl_language_ocl_InitValueCS((org.dresdenocl.language.ocl.InitValueCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.DeriveValueCS) {
print_org_dresdenocl_language_ocl_DeriveValueCS((org.dresdenocl.language.ocl.DeriveValueCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.InvariantExpCS) {
print_org_dresdenocl_language_ocl_InvariantExpCS((org.dresdenocl.language.ocl.InvariantExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.DefinitionExpCS) {
print_org_dresdenocl_language_ocl_DefinitionExpCS((org.dresdenocl.language.ocl.DefinitionExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.DefinitionExpPropertyCS) {
print_org_dresdenocl_language_ocl_DefinitionExpPropertyCS((org.dresdenocl.language.ocl.DefinitionExpPropertyCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.DefinitionExpOperationCS) {
print_org_dresdenocl_language_ocl_DefinitionExpOperationCS((org.dresdenocl.language.ocl.DefinitionExpOperationCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.PreConditionDeclarationCS) {
print_org_dresdenocl_language_ocl_PreConditionDeclarationCS((org.dresdenocl.language.ocl.PreConditionDeclarationCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.PostConditionDeclarationCS) {
print_org_dresdenocl_language_ocl_PostConditionDeclarationCS((org.dresdenocl.language.ocl.PostConditionDeclarationCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.BodyDeclarationCS) {
print_org_dresdenocl_language_ocl_BodyDeclarationCS((org.dresdenocl.language.ocl.BodyDeclarationCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.OperationDefinitionInContextCS) {
print_org_dresdenocl_language_ocl_OperationDefinitionInContextCS((org.dresdenocl.language.ocl.OperationDefinitionInContextCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.OperationDefinitionInDefCS) {
print_org_dresdenocl_language_ocl_OperationDefinitionInDefCS((org.dresdenocl.language.ocl.OperationDefinitionInDefCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.ParameterCS) {
print_org_dresdenocl_language_ocl_ParameterCS((org.dresdenocl.language.ocl.ParameterCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.LogicalImpliesOperationCallExpCS) {
print_org_dresdenocl_language_ocl_LogicalImpliesOperationCallExpCS((org.dresdenocl.language.ocl.LogicalImpliesOperationCallExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.LogicalXorOperationCallExpCS) {
print_org_dresdenocl_language_ocl_LogicalXorOperationCallExpCS((org.dresdenocl.language.ocl.LogicalXorOperationCallExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.LogicalOrOperationCallExpCS) {
print_org_dresdenocl_language_ocl_LogicalOrOperationCallExpCS((org.dresdenocl.language.ocl.LogicalOrOperationCallExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.LogicalAndOperationCallExpCS) {
print_org_dresdenocl_language_ocl_LogicalAndOperationCallExpCS((org.dresdenocl.language.ocl.LogicalAndOperationCallExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.EqualityOperationCallExpCS) {
print_org_dresdenocl_language_ocl_EqualityOperationCallExpCS((org.dresdenocl.language.ocl.EqualityOperationCallExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.RelationalOperationCallExpCS) {
print_org_dresdenocl_language_ocl_RelationalOperationCallExpCS((org.dresdenocl.language.ocl.RelationalOperationCallExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.AdditiveOperationCallExpCS) {
print_org_dresdenocl_language_ocl_AdditiveOperationCallExpCS((org.dresdenocl.language.ocl.AdditiveOperationCallExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.MultOperationCallExpCS) {
print_org_dresdenocl_language_ocl_MultOperationCallExpCS((org.dresdenocl.language.ocl.MultOperationCallExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.UnaryOperationCallExpCS) {
print_org_dresdenocl_language_ocl_UnaryOperationCallExpCS((org.dresdenocl.language.ocl.UnaryOperationCallExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.LogicalNotOperationCallExpCS) {
print_org_dresdenocl_language_ocl_LogicalNotOperationCallExpCS((org.dresdenocl.language.ocl.LogicalNotOperationCallExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.NavigationCallExp) {
print_org_dresdenocl_language_ocl_NavigationCallExp((org.dresdenocl.language.ocl.NavigationCallExp) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.ImplicitOperationCallCS) {
print_org_dresdenocl_language_ocl_ImplicitOperationCallCS((org.dresdenocl.language.ocl.ImplicitOperationCallCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.ImplicitPropertyCallCS) {
print_org_dresdenocl_language_ocl_ImplicitPropertyCallCS((org.dresdenocl.language.ocl.ImplicitPropertyCallCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.IteratorExpCS) {
print_org_dresdenocl_language_ocl_IteratorExpCS((org.dresdenocl.language.ocl.IteratorExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.IterateExpCS) {
print_org_dresdenocl_language_ocl_IterateExpCS((org.dresdenocl.language.ocl.IterateExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.IteratorExpVariableCS) {
print_org_dresdenocl_language_ocl_IteratorExpVariableCS((org.dresdenocl.language.ocl.IteratorExpVariableCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.TupleTypeCS) {
print_org_dresdenocl_language_ocl_TupleTypeCS((org.dresdenocl.language.ocl.TupleTypeCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.CollectionTypeIdentifierCS) {
print_org_dresdenocl_language_ocl_CollectionTypeIdentifierCS((org.dresdenocl.language.ocl.CollectionTypeIdentifierCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.TypeModelElementCS) {
print_org_dresdenocl_language_ocl_TypeModelElementCS((org.dresdenocl.language.ocl.TypeModelElementCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.VariableDeclarationWithoutInitCS) {
print_org_dresdenocl_language_ocl_VariableDeclarationWithoutInitCS((org.dresdenocl.language.ocl.VariableDeclarationWithoutInitCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.VariableDeclarationWithoutInitListCS) {
print_org_dresdenocl_language_ocl_VariableDeclarationWithoutInitListCS((org.dresdenocl.language.ocl.VariableDeclarationWithoutInitListCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.VariableDeclarationWithInitCS) {
print_org_dresdenocl_language_ocl_VariableDeclarationWithInitCS((org.dresdenocl.language.ocl.VariableDeclarationWithInitCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.VariableDeclarationWithInitListCS) {
print_org_dresdenocl_language_ocl_VariableDeclarationWithInitListCS((org.dresdenocl.language.ocl.VariableDeclarationWithInitListCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.OperationCallOnSelfExpCS) {
print_org_dresdenocl_language_ocl_OperationCallOnSelfExpCS((org.dresdenocl.language.ocl.OperationCallOnSelfExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.StaticOperationCallExpCS) {
print_org_dresdenocl_language_ocl_StaticOperationCallExpCS((org.dresdenocl.language.ocl.StaticOperationCallExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.ModelElementCS) {
print_org_dresdenocl_language_ocl_ModelElementCS((org.dresdenocl.language.ocl.ModelElementCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.PathNameSimpleCS) {
print_org_dresdenocl_language_ocl_PathNameSimpleCS((org.dresdenocl.language.ocl.PathNameSimpleCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.PathNamePathCS) {
print_org_dresdenocl_language_ocl_PathNamePathCS((org.dresdenocl.language.ocl.PathNamePathCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.NamedElementCS) {
print_org_dresdenocl_language_ocl_NamedElementCS((org.dresdenocl.language.ocl.NamedElementCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.TupleLiteralExpCS) {
print_org_dresdenocl_language_ocl_TupleLiteralExpCS((org.dresdenocl.language.ocl.TupleLiteralExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.IfExpCS) {
print_org_dresdenocl_language_ocl_IfExpCS((org.dresdenocl.language.ocl.IfExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.CollectionLiteralExpCS) {
print_org_dresdenocl_language_ocl_CollectionLiteralExpCS((org.dresdenocl.language.ocl.CollectionLiteralExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.CollectionRangeCS) {
print_org_dresdenocl_language_ocl_CollectionRangeCS((org.dresdenocl.language.ocl.CollectionRangeCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.CollectionLiteralPartsOclExpCS) {
print_org_dresdenocl_language_ocl_CollectionLiteralPartsOclExpCS((org.dresdenocl.language.ocl.CollectionLiteralPartsOclExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.CollectionTypeLiteralExpCS) {
print_org_dresdenocl_language_ocl_CollectionTypeLiteralExpCS((org.dresdenocl.language.ocl.CollectionTypeLiteralExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.TupleTypeLiteralExpCS) {
print_org_dresdenocl_language_ocl_TupleTypeLiteralExpCS((org.dresdenocl.language.ocl.TupleTypeLiteralExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.PropertyCallOnSelfExpCS) {
print_org_dresdenocl_language_ocl_PropertyCallOnSelfExpCS((org.dresdenocl.language.ocl.PropertyCallOnSelfExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.LetExpCS) {
print_org_dresdenocl_language_ocl_LetExpCS((org.dresdenocl.language.ocl.LetExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.RealLiteralExpCS) {
print_org_dresdenocl_language_ocl_RealLiteralExpCS((org.dresdenocl.language.ocl.RealLiteralExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.IntegerLiteralExpCS) {
print_org_dresdenocl_language_ocl_IntegerLiteralExpCS((org.dresdenocl.language.ocl.IntegerLiteralExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.BooleanLiteralExpCS) {
print_org_dresdenocl_language_ocl_BooleanLiteralExpCS((org.dresdenocl.language.ocl.BooleanLiteralExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.StringLiteralExpCS) {
print_org_dresdenocl_language_ocl_StringLiteralExpCS((org.dresdenocl.language.ocl.StringLiteralExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.InvalidLiteralExpCS) {
print_org_dresdenocl_language_ocl_InvalidLiteralExpCS((org.dresdenocl.language.ocl.InvalidLiteralExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.NullLiteralExpCS) {
print_org_dresdenocl_language_ocl_NullLiteralExpCS((org.dresdenocl.language.ocl.NullLiteralExpCS) element, globaltab, out);
return;
}
if (element instanceof org.dresdenocl.language.ocl.BracketExpCS) {
print_org_dresdenocl_language_ocl_BracketExpCS((org.dresdenocl.language.ocl.BracketExpCS) element, globaltab, out);
return;
}
addWarningToResource("The printer can not handle " + element.eClass().getName() + " elements", element);
}
protected org.dresdenocl.language.ocl.resource.ocl.mopp.OclReferenceResolverSwitch getReferenceResolverSwitch() {
return (org.dresdenocl.language.ocl.resource.ocl.mopp.OclReferenceResolverSwitch) new org.dresdenocl.language.ocl.resource.ocl.mopp.OclMetaInformation().getReferenceResolverSwitch();
}
protected void addWarningToResource(final String errorMessage, EObject cause) {
org.dresdenocl.language.ocl.resource.ocl.IOclTextResource resource = getResource();
if (resource == null) {
// the resource can be null if the printer is used stand alone
return;
}
resource.addProblem(new org.dresdenocl.language.ocl.resource.ocl.mopp.OclProblem(errorMessage, org.dresdenocl.language.ocl.resource.ocl.OclEProblemType.PRINT_PROBLEM, org.dresdenocl.language.ocl.resource.ocl.OclEProblemSeverity.WARNING), cause);
}
public void setOptions(Map<?,?> options) {
this.options = options;
}
public Map<?,?> getOptions() {
return options;
}
public void setEncoding(String encoding) {
if (encoding != null) {
this.encoding = encoding;
}
}
public String getEncoding() {
return encoding;
}
public org.dresdenocl.language.ocl.resource.ocl.IOclTextResource getResource() {
return resource;
}
/**
* Calls {@link #doPrint(EObject, PrintWriter, String)} and writes the result to
* the underlying output stream.
*/
public void print(EObject element) throws java.io.IOException {
PrintWriter out = new PrintWriter(new OutputStreamWriter(new BufferedOutputStream(outputStream), encoding));
doPrint(element, out, "");
out.flush();
}
public void print_org_dresdenocl_language_ocl_SimpleNameCS(org.dresdenocl.language.ocl.SimpleNameCS element, String outertab, PrintWriter out) {
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(1);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.SIMPLE_NAME_CS__SIMPLE_NAME));
printCountingMap.put("simpleName", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
int alt = -1;
alt = 0;
int matches = matchCount(printCountingMap, Arrays.asList( "simpleName" ));
int tempMatchCount;
tempMatchCount = matchCount(printCountingMap, Arrays.asList( "simpleName" ));
if (tempMatchCount > matches) {
alt = 1;
matches = tempMatchCount;
}
switch(alt) {
case 1: {
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("simpleName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.SIMPLE_NAME_CS__SIMPLE_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("SIMPLE_NAME");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.SIMPLE_NAME_CS__SIMPLE_NAME), element));
out.print(" ");
}
printCountingMap.put("simpleName", count - 1);
}
}
break;
default: // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("simpleName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.SIMPLE_NAME_CS__SIMPLE_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("ITERATOR_NAME");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.SIMPLE_NAME_CS__SIMPLE_NAME), element));
out.print(" ");
}
printCountingMap.put("simpleName", count - 1);
}
}
}
public void print_org_dresdenocl_language_ocl_PackageDeclarationWithNamespaceCS(org.dresdenocl.language.ocl.PackageDeclarationWithNamespaceCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(3);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PACKAGE_DECLARATION_WITH_NAMESPACE_CS__CONTEXT_DECLARATIONS));
printCountingMap.put("contextDeclarations", temp == null ? 0 : ((Collection<?>) temp).size());
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PACKAGE_DECLARATION_WITH_NAMESPACE_CS__LAYOUT_INFORMATION));
printCountingMap.put("layoutInformation", temp == null ? 0 : ((Collection<?>) temp).size());
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PACKAGE_DECLARATION_WITH_NAMESPACE_CS__NESTED_NAMESPACE));
printCountingMap.put("nestedNamespace", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
boolean iterate = true;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (CsString)
out.print("package");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("nestedNamespace");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PACKAGE_DECLARATION_WITH_NAMESPACE_CS__NESTED_NAMESPACE));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("nestedNamespace", count - 1);
}
// DEFINITION PART BEGINS (LineBreak)
out.println();
out.print(localtab);
// DEFINITION PART BEGINS (CompoundDefinition)
iterate = true;
while (iterate) {
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_PackageDeclarationWithNamespaceCS_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
iterate = false;
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
}
// DEFINITION PART BEGINS (LineBreak)
out.println();
out.print(localtab);
// DEFINITION PART BEGINS (CsString)
out.print("endpackage");
out.print(" ");
}
public void print_org_dresdenocl_language_ocl_PackageDeclarationWithNamespaceCS_0(org.dresdenocl.language.ocl.PackageDeclarationWithNamespaceCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("contextDeclarations");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PACKAGE_DECLARATION_WITH_NAMESPACE_CS__CONTEXT_DECLARATIONS));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("contextDeclarations", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_PackageDeclarationNestedNamespaceCS(org.dresdenocl.language.ocl.PackageDeclarationNestedNamespaceCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(3);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PACKAGE_DECLARATION_NESTED_NAMESPACE_CS__NAMESPACE));
printCountingMap.put("namespace", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PACKAGE_DECLARATION_NESTED_NAMESPACE_CS__NESTED_NAMESPACE));
printCountingMap.put("nestedNamespace", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PACKAGE_DECLARATION_NESTED_NAMESPACE_CS__LAYOUT_INFORMATION));
printCountingMap.put("layoutInformation", temp == null ? 0 : ((Collection<?>) temp).size());
// print collected hidden tokens
int count;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("namespace");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PACKAGE_DECLARATION_NESTED_NAMESPACE_CS__NAMESPACE));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("SIMPLE_NAME");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getPackageDeclarationNestedNamespaceCSNamespaceReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Namespace) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PACKAGE_DECLARATION_NESTED_NAMESPACE_CS__NAMESPACE)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PACKAGE_DECLARATION_NESTED_NAMESPACE_CS__NAMESPACE), element));
out.print(" ");
}
printCountingMap.put("namespace", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_PackageDeclarationNestedNamespaceCS_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
}
public void print_org_dresdenocl_language_ocl_PackageDeclarationNestedNamespaceCS_0(org.dresdenocl.language.ocl.PackageDeclarationNestedNamespaceCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (CsString)
out.print("::");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("nestedNamespace");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PACKAGE_DECLARATION_NESTED_NAMESPACE_CS__NESTED_NAMESPACE));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("nestedNamespace", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_PackageDeclarationWithoutNamespaceCS(org.dresdenocl.language.ocl.PackageDeclarationWithoutNamespaceCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(2);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PACKAGE_DECLARATION_WITHOUT_NAMESPACE_CS__CONTEXT_DECLARATIONS));
printCountingMap.put("contextDeclarations", temp == null ? 0 : ((Collection<?>) temp).size());
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PACKAGE_DECLARATION_WITHOUT_NAMESPACE_CS__LAYOUT_INFORMATION));
printCountingMap.put("layoutInformation", temp == null ? 0 : ((Collection<?>) temp).size());
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("contextDeclarations");
if (count > 0) {
List<?> list = (List<?>)element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PACKAGE_DECLARATION_WITHOUT_NAMESPACE_CS__CONTEXT_DECLARATIONS));
int index = list.size() - count;
if (index < 0) {
index = 0;
}
ListIterator<?> it = list.listIterator(index);
while (it.hasNext()) {
Object o = it.next();
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("contextDeclarations", 0);
}
}
public void print_org_dresdenocl_language_ocl_OperationContextDeclarationCS(org.dresdenocl.language.ocl.OperationContextDeclarationCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(2);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CONTEXT_DECLARATION_CS__OPERATION));
printCountingMap.put("operation", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CONTEXT_DECLARATION_CS__PRE_POST_OR_BODY_DECLARATIONS));
printCountingMap.put("prePostOrBodyDeclarations", temp == null ? 0 : ((Collection<?>) temp).size());
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (CsString)
out.print("context");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("operation");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CONTEXT_DECLARATION_CS__OPERATION));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("operation", count - 1);
}
// DEFINITION PART BEGINS (LineBreak)
out.println();
out.print(localtab);
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("prePostOrBodyDeclarations");
if (count > 0) {
List<?> list = (List<?>)element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CONTEXT_DECLARATION_CS__PRE_POST_OR_BODY_DECLARATIONS));
int index = list.size() - count;
if (index < 0) {
index = 0;
}
ListIterator<?> it = list.listIterator(index);
while (it.hasNext()) {
Object o = it.next();
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("prePostOrBodyDeclarations", 0);
}
}
public void print_org_dresdenocl_language_ocl_AttributeContextDeclarationCS(org.dresdenocl.language.ocl.AttributeContextDeclarationCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(3);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ATTRIBUTE_CONTEXT_DECLARATION_CS__TYPE_NAME));
printCountingMap.put("typeName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ATTRIBUTE_CONTEXT_DECLARATION_CS__TYPE));
printCountingMap.put("type", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ATTRIBUTE_CONTEXT_DECLARATION_CS__INIT_OR_DERIVE_VALUE));
printCountingMap.put("initOrDeriveValue", temp == null ? 0 : ((Collection<?>) temp).size());
// print collected hidden tokens
int count;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (CsString)
out.print("context");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("typeName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ATTRIBUTE_CONTEXT_DECLARATION_CS__TYPE_NAME));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("typeName", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_AttributeContextDeclarationCS_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
// DEFINITION PART BEGINS (LineBreak)
out.println();
out.print(localtab);
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("initOrDeriveValue");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ATTRIBUTE_CONTEXT_DECLARATION_CS__INIT_OR_DERIVE_VALUE));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("initOrDeriveValue", count - 1);
}
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("initOrDeriveValue");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ATTRIBUTE_CONTEXT_DECLARATION_CS__INIT_OR_DERIVE_VALUE));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("initOrDeriveValue", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_AttributeContextDeclarationCS_0(org.dresdenocl.language.ocl.AttributeContextDeclarationCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (CsString)
out.print(":");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("type");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ATTRIBUTE_CONTEXT_DECLARATION_CS__TYPE));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("type", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_ClassifierContextDeclarationCS(org.dresdenocl.language.ocl.ClassifierContextDeclarationCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(2);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.CLASSIFIER_CONTEXT_DECLARATION_CS__TYPE_NAME));
printCountingMap.put("typeName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.CLASSIFIER_CONTEXT_DECLARATION_CS__INVARIANTS_AND_DEFINITIONS));
printCountingMap.put("invariantsAndDefinitions", temp == null ? 0 : ((Collection<?>) temp).size());
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (CsString)
out.print("context");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("typeName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.CLASSIFIER_CONTEXT_DECLARATION_CS__TYPE_NAME));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("typeName", count - 1);
}
// DEFINITION PART BEGINS (LineBreak)
out.println();
out.print(localtab);
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("invariantsAndDefinitions");
if (count > 0) {
List<?> list = (List<?>)element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.CLASSIFIER_CONTEXT_DECLARATION_CS__INVARIANTS_AND_DEFINITIONS));
int index = list.size() - count;
if (index < 0) {
index = 0;
}
ListIterator<?> it = list.listIterator(index);
while (it.hasNext()) {
Object o = it.next();
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("invariantsAndDefinitions", 0);
}
}
public void print_org_dresdenocl_language_ocl_InitValueCS(org.dresdenocl.language.ocl.InitValueCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(1);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.INIT_VALUE_CS__OCL_EXPRESSION));
printCountingMap.put("oclExpression", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (CsString)
out.print("init");
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(":");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("oclExpression");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.INIT_VALUE_CS__OCL_EXPRESSION));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("oclExpression", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_DeriveValueCS(org.dresdenocl.language.ocl.DeriveValueCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(1);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.DERIVE_VALUE_CS__OCL_EXPRESSION));
printCountingMap.put("oclExpression", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (CsString)
out.print("derive");
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(":");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("oclExpression");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.DERIVE_VALUE_CS__OCL_EXPRESSION));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("oclExpression", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_InvariantExpCS(org.dresdenocl.language.ocl.InvariantExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(2);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.INVARIANT_EXP_CS__NAME));
printCountingMap.put("name", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.INVARIANT_EXP_CS__OCL_EXPRESSION));
printCountingMap.put("oclExpression", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (CsString)
out.print("inv");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("name");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.INVARIANT_EXP_CS__NAME));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("name", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(":");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("oclExpression");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.INVARIANT_EXP_CS__OCL_EXPRESSION));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("oclExpression", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_DefinitionExpCS(org.dresdenocl.language.ocl.DefinitionExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(2);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.DEFINITION_EXP_CS__STATIC));
printCountingMap.put("static", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.DEFINITION_EXP_CS__DEFINITION_EXP_PART));
printCountingMap.put("definitionExpPart", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_DefinitionExpCS_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
// DEFINITION PART BEGINS (CsString)
out.print("def");
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(":");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("definitionExpPart");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.DEFINITION_EXP_CS__DEFINITION_EXP_PART));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("definitionExpPart", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_DefinitionExpCS_0(org.dresdenocl.language.ocl.DefinitionExpCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
int count;
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("static");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.DEFINITION_EXP_CS__STATIC));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("STATIC");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.DEFINITION_EXP_CS__STATIC), element));
out.print(" ");
}
printCountingMap.put("static", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_DefinitionExpPropertyCS(org.dresdenocl.language.ocl.DefinitionExpPropertyCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(1);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.DEFINITION_EXP_PROPERTY_CS__VARIABLE_DECLARATION));
printCountingMap.put("variableDeclaration", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("variableDeclaration");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.DEFINITION_EXP_PROPERTY_CS__VARIABLE_DECLARATION));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("variableDeclaration", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_DefinitionExpOperationCS(org.dresdenocl.language.ocl.DefinitionExpOperationCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(3);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.DEFINITION_EXP_OPERATION_CS__OPERATION));
printCountingMap.put("operation", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.DEFINITION_EXP_OPERATION_CS__EQUAL));
printCountingMap.put("equal", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.DEFINITION_EXP_OPERATION_CS__OCL_EXPRESSION));
printCountingMap.put("oclExpression", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("operation");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.DEFINITION_EXP_OPERATION_CS__OPERATION));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("operation", count - 1);
}
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("equal");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.DEFINITION_EXP_OPERATION_CS__EQUAL));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("EQUALITY_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.DEFINITION_EXP_OPERATION_CS__EQUAL), element));
out.print(" ");
}
printCountingMap.put("equal", count - 1);
}
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("oclExpression");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.DEFINITION_EXP_OPERATION_CS__OCL_EXPRESSION));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("oclExpression", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_PreConditionDeclarationCS(org.dresdenocl.language.ocl.PreConditionDeclarationCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(2);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PRE_CONDITION_DECLARATION_CS__NAME));
printCountingMap.put("name", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PRE_CONDITION_DECLARATION_CS__OCL_EXPRESSION));
printCountingMap.put("oclExpression", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (CsString)
out.print("pre");
out.print(" ");
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_PreConditionDeclarationCS_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(":");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("oclExpression");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PRE_CONDITION_DECLARATION_CS__OCL_EXPRESSION));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("oclExpression", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_PreConditionDeclarationCS_0(org.dresdenocl.language.ocl.PreConditionDeclarationCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("name");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PRE_CONDITION_DECLARATION_CS__NAME));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("name", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_PostConditionDeclarationCS(org.dresdenocl.language.ocl.PostConditionDeclarationCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(2);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.POST_CONDITION_DECLARATION_CS__NAME));
printCountingMap.put("name", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.POST_CONDITION_DECLARATION_CS__OCL_EXPRESSION));
printCountingMap.put("oclExpression", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (CsString)
out.print("post");
out.print(" ");
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_PostConditionDeclarationCS_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(":");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("oclExpression");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.POST_CONDITION_DECLARATION_CS__OCL_EXPRESSION));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("oclExpression", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_PostConditionDeclarationCS_0(org.dresdenocl.language.ocl.PostConditionDeclarationCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("name");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.POST_CONDITION_DECLARATION_CS__NAME));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("name", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_BodyDeclarationCS(org.dresdenocl.language.ocl.BodyDeclarationCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(2);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.BODY_DECLARATION_CS__NAME));
printCountingMap.put("name", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.BODY_DECLARATION_CS__OCL_EXPRESSION));
printCountingMap.put("oclExpression", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (CsString)
out.print("body");
out.print(" ");
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_BodyDeclarationCS_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(":");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("oclExpression");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.BODY_DECLARATION_CS__OCL_EXPRESSION));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("oclExpression", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_BodyDeclarationCS_0(org.dresdenocl.language.ocl.BodyDeclarationCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("name");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.BODY_DECLARATION_CS__NAME));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("name", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_OperationDefinitionInContextCS(org.dresdenocl.language.ocl.OperationDefinitionInContextCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(4);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_DEFINITION_IN_CONTEXT_CS__OPERATION));
printCountingMap.put("operation", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_DEFINITION_IN_CONTEXT_CS__PARAMETERS));
printCountingMap.put("parameters", temp == null ? 0 : ((Collection<?>) temp).size());
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_DEFINITION_IN_CONTEXT_CS__RETURN_TYPE));
printCountingMap.put("returnType", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_DEFINITION_IN_CONTEXT_CS__TYPE_NAME));
printCountingMap.put("typeName", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("typeName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_DEFINITION_IN_CONTEXT_CS__TYPE_NAME));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("typeName", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print("::");
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operation");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_DEFINITION_IN_CONTEXT_CS__OPERATION));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("SIMPLE_NAME");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getOperationDefinitionCSOperationReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Operation) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_DEFINITION_IN_CONTEXT_CS__OPERATION)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_DEFINITION_IN_CONTEXT_CS__OPERATION), element));
}
printCountingMap.put("operation", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print("(");
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_OperationDefinitionInContextCS_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(")");
out.print(" ");
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_OperationDefinitionInContextCS_1(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
}
public void print_org_dresdenocl_language_ocl_OperationDefinitionInContextCS_0(org.dresdenocl.language.ocl.OperationDefinitionInContextCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
boolean iterate = true;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("parameters");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_DEFINITION_IN_CONTEXT_CS__PARAMETERS));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("parameters", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
iterate = true;
while (iterate) {
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_OperationDefinitionInContextCS_0_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
iterate = false;
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
}
}
public void print_org_dresdenocl_language_ocl_OperationDefinitionInContextCS_0_0(org.dresdenocl.language.ocl.OperationDefinitionInContextCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(",");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("parameters");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_DEFINITION_IN_CONTEXT_CS__PARAMETERS));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("parameters", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_OperationDefinitionInContextCS_1(org.dresdenocl.language.ocl.OperationDefinitionInContextCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (CsString)
out.print(":");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("returnType");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_DEFINITION_IN_CONTEXT_CS__RETURN_TYPE));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("returnType", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_OperationDefinitionInDefCS(org.dresdenocl.language.ocl.OperationDefinitionInDefCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(3);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_DEFINITION_IN_DEF_CS__OPERATION));
printCountingMap.put("operation", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_DEFINITION_IN_DEF_CS__PARAMETERS));
printCountingMap.put("parameters", temp == null ? 0 : ((Collection<?>) temp).size());
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_DEFINITION_IN_DEF_CS__RETURN_TYPE));
printCountingMap.put("returnType", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operation");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_DEFINITION_IN_DEF_CS__OPERATION));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("SIMPLE_NAME");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getOperationDefinitionCSOperationReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Operation) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_DEFINITION_IN_DEF_CS__OPERATION)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_DEFINITION_IN_DEF_CS__OPERATION), element));
out.print(" ");
}
printCountingMap.put("operation", count - 1);
}
// DEFINITION PART BEGINS (CsString)
out.print("(");
out.print(" ");
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_OperationDefinitionInDefCS_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
// DEFINITION PART BEGINS (CsString)
out.print(")");
out.print(" ");
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_OperationDefinitionInDefCS_1(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
}
public void print_org_dresdenocl_language_ocl_OperationDefinitionInDefCS_0(org.dresdenocl.language.ocl.OperationDefinitionInDefCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
boolean iterate = true;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("parameters");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_DEFINITION_IN_DEF_CS__PARAMETERS));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("parameters", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
iterate = true;
while (iterate) {
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_OperationDefinitionInDefCS_0_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
iterate = false;
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
}
}
public void print_org_dresdenocl_language_ocl_OperationDefinitionInDefCS_0_0(org.dresdenocl.language.ocl.OperationDefinitionInDefCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (CsString)
out.print(",");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("parameters");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_DEFINITION_IN_DEF_CS__PARAMETERS));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("parameters", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_OperationDefinitionInDefCS_1(org.dresdenocl.language.ocl.OperationDefinitionInDefCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (CsString)
out.print(":");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("returnType");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_DEFINITION_IN_DEF_CS__RETURN_TYPE));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("returnType", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_ParameterCS(org.dresdenocl.language.ocl.ParameterCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(2);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PARAMETER_CS__PARAMETER));
printCountingMap.put("parameter", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PARAMETER_CS__PARAMETER_TYPE));
printCountingMap.put("parameterType", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("parameter");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PARAMETER_CS__PARAMETER));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("SIMPLE_NAME");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getParameterCSParameterReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Parameter) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PARAMETER_CS__PARAMETER)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PARAMETER_CS__PARAMETER), element));
out.print(" ");
}
printCountingMap.put("parameter", count - 1);
}
// DEFINITION PART BEGINS (CsString)
out.print(":");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("parameterType");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PARAMETER_CS__PARAMETER_TYPE));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("parameterType", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_LogicalImpliesOperationCallExpCS(org.dresdenocl.language.ocl.LogicalImpliesOperationCallExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(4);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_IMPLIES_OPERATION_CALL_EXP_CS__SOURCE));
printCountingMap.put("source", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_IMPLIES_OPERATION_CALL_EXP_CS__IS_MARKED_PRE));
printCountingMap.put("isMarkedPre", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_IMPLIES_OPERATION_CALL_EXP_CS__OPERATION_NAME));
printCountingMap.put("operationName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_IMPLIES_OPERATION_CALL_EXP_CS__TARGET));
printCountingMap.put("target", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("source");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_IMPLIES_OPERATION_CALL_EXP_CS__SOURCE));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("source", count - 1);
}
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_IMPLIES_OPERATION_CALL_EXP_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("IMPLIES_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_IMPLIES_OPERATION_CALL_EXP_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("target");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_IMPLIES_OPERATION_CALL_EXP_CS__TARGET));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("target", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_LogicalXorOperationCallExpCS(org.dresdenocl.language.ocl.LogicalXorOperationCallExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(4);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_XOR_OPERATION_CALL_EXP_CS__SOURCE));
printCountingMap.put("source", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_XOR_OPERATION_CALL_EXP_CS__IS_MARKED_PRE));
printCountingMap.put("isMarkedPre", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_XOR_OPERATION_CALL_EXP_CS__OPERATION_NAME));
printCountingMap.put("operationName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_XOR_OPERATION_CALL_EXP_CS__TARGET));
printCountingMap.put("target", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("source");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_XOR_OPERATION_CALL_EXP_CS__SOURCE));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("source", count - 1);
}
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_XOR_OPERATION_CALL_EXP_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("XOR_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_XOR_OPERATION_CALL_EXP_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("target");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_XOR_OPERATION_CALL_EXP_CS__TARGET));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("target", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_LogicalOrOperationCallExpCS(org.dresdenocl.language.ocl.LogicalOrOperationCallExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(4);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_OR_OPERATION_CALL_EXP_CS__SOURCE));
printCountingMap.put("source", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_OR_OPERATION_CALL_EXP_CS__IS_MARKED_PRE));
printCountingMap.put("isMarkedPre", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_OR_OPERATION_CALL_EXP_CS__OPERATION_NAME));
printCountingMap.put("operationName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_OR_OPERATION_CALL_EXP_CS__TARGET));
printCountingMap.put("target", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("source");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_OR_OPERATION_CALL_EXP_CS__SOURCE));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("source", count - 1);
}
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_OR_OPERATION_CALL_EXP_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("OR_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_OR_OPERATION_CALL_EXP_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("target");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_OR_OPERATION_CALL_EXP_CS__TARGET));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("target", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_LogicalAndOperationCallExpCS(org.dresdenocl.language.ocl.LogicalAndOperationCallExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(4);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_AND_OPERATION_CALL_EXP_CS__SOURCE));
printCountingMap.put("source", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_AND_OPERATION_CALL_EXP_CS__IS_MARKED_PRE));
printCountingMap.put("isMarkedPre", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_AND_OPERATION_CALL_EXP_CS__OPERATION_NAME));
printCountingMap.put("operationName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_AND_OPERATION_CALL_EXP_CS__TARGET));
printCountingMap.put("target", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("source");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_AND_OPERATION_CALL_EXP_CS__SOURCE));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("source", count - 1);
}
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_AND_OPERATION_CALL_EXP_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("AND_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_AND_OPERATION_CALL_EXP_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("target");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_AND_OPERATION_CALL_EXP_CS__TARGET));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("target", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_EqualityOperationCallExpCS(org.dresdenocl.language.ocl.EqualityOperationCallExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(4);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.EQUALITY_OPERATION_CALL_EXP_CS__SOURCE));
printCountingMap.put("source", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.EQUALITY_OPERATION_CALL_EXP_CS__IS_MARKED_PRE));
printCountingMap.put("isMarkedPre", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.EQUALITY_OPERATION_CALL_EXP_CS__OPERATION_NAME));
printCountingMap.put("operationName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.EQUALITY_OPERATION_CALL_EXP_CS__TARGET));
printCountingMap.put("target", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("source");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.EQUALITY_OPERATION_CALL_EXP_CS__SOURCE));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("source", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
print_org_dresdenocl_language_ocl_EqualityOperationCallExpCS_0(element, localtab, out, printCountingMap);
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("target");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.EQUALITY_OPERATION_CALL_EXP_CS__TARGET));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("target", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_EqualityOperationCallExpCS_0(org.dresdenocl.language.ocl.EqualityOperationCallExpCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
int count;
int alt = -1;
alt = 0;
int matches = matchCount(printCountingMap, Arrays.asList( "operationName" ));
int tempMatchCount;
tempMatchCount = matchCount(printCountingMap, Arrays.asList( "operationName" ));
if (tempMatchCount > matches) {
alt = 1;
matches = tempMatchCount;
}
switch(alt) {
case 1: {
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.EQUALITY_OPERATION_CALL_EXP_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("NEQUALITY_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.EQUALITY_OPERATION_CALL_EXP_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
}
break;
default: // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.EQUALITY_OPERATION_CALL_EXP_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("EQUALITY_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.EQUALITY_OPERATION_CALL_EXP_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
}
}
public void print_org_dresdenocl_language_ocl_RelationalOperationCallExpCS(org.dresdenocl.language.ocl.RelationalOperationCallExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(4);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.RELATIONAL_OPERATION_CALL_EXP_CS__SOURCE));
printCountingMap.put("source", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.RELATIONAL_OPERATION_CALL_EXP_CS__IS_MARKED_PRE));
printCountingMap.put("isMarkedPre", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.RELATIONAL_OPERATION_CALL_EXP_CS__OPERATION_NAME));
printCountingMap.put("operationName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.RELATIONAL_OPERATION_CALL_EXP_CS__TARGET));
printCountingMap.put("target", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("source");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.RELATIONAL_OPERATION_CALL_EXP_CS__SOURCE));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("source", count - 1);
}
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.RELATIONAL_OPERATION_CALL_EXP_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("RELATIONAL_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.RELATIONAL_OPERATION_CALL_EXP_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("target");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.RELATIONAL_OPERATION_CALL_EXP_CS__TARGET));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("target", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_AdditiveOperationCallExpCS(org.dresdenocl.language.ocl.AdditiveOperationCallExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(4);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ADDITIVE_OPERATION_CALL_EXP_CS__SOURCE));
printCountingMap.put("source", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ADDITIVE_OPERATION_CALL_EXP_CS__IS_MARKED_PRE));
printCountingMap.put("isMarkedPre", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ADDITIVE_OPERATION_CALL_EXP_CS__OPERATION_NAME));
printCountingMap.put("operationName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ADDITIVE_OPERATION_CALL_EXP_CS__TARGET));
printCountingMap.put("target", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("source");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ADDITIVE_OPERATION_CALL_EXP_CS__SOURCE));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("source", count - 1);
}
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ADDITIVE_OPERATION_CALL_EXP_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("ADDITIVE_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ADDITIVE_OPERATION_CALL_EXP_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("target");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ADDITIVE_OPERATION_CALL_EXP_CS__TARGET));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("target", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_MultOperationCallExpCS(org.dresdenocl.language.ocl.MultOperationCallExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(4);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.MULT_OPERATION_CALL_EXP_CS__SOURCE));
printCountingMap.put("source", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.MULT_OPERATION_CALL_EXP_CS__IS_MARKED_PRE));
printCountingMap.put("isMarkedPre", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.MULT_OPERATION_CALL_EXP_CS__OPERATION_NAME));
printCountingMap.put("operationName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.MULT_OPERATION_CALL_EXP_CS__TARGET));
printCountingMap.put("target", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("source");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.MULT_OPERATION_CALL_EXP_CS__SOURCE));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("source", count - 1);
}
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.MULT_OPERATION_CALL_EXP_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("MULT_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.MULT_OPERATION_CALL_EXP_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("target");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.MULT_OPERATION_CALL_EXP_CS__TARGET));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("target", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_UnaryOperationCallExpCS(org.dresdenocl.language.ocl.UnaryOperationCallExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(2);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.UNARY_OPERATION_CALL_EXP_CS__OPERATION_NAME));
printCountingMap.put("operationName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.UNARY_OPERATION_CALL_EXP_CS__TARGET));
printCountingMap.put("target", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.UNARY_OPERATION_CALL_EXP_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("ADDITIVE_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.UNARY_OPERATION_CALL_EXP_CS__OPERATION_NAME), element));
}
printCountingMap.put("operationName", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("target");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.UNARY_OPERATION_CALL_EXP_CS__TARGET));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("target", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_LogicalNotOperationCallExpCS(org.dresdenocl.language.ocl.LogicalNotOperationCallExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(2);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_NOT_OPERATION_CALL_EXP_CS__OPERATION_NAME));
printCountingMap.put("operationName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_NOT_OPERATION_CALL_EXP_CS__TARGET));
printCountingMap.put("target", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_NOT_OPERATION_CALL_EXP_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("NOT_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_NOT_OPERATION_CALL_EXP_CS__OPERATION_NAME), element));
}
printCountingMap.put("operationName", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("target");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LOGICAL_NOT_OPERATION_CALL_EXP_CS__TARGET));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("target", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_NavigationCallExp(org.dresdenocl.language.ocl.NavigationCallExp element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(3);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.NAVIGATION_CALL_EXP__SOURCE));
printCountingMap.put("source", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.NAVIGATION_CALL_EXP__NAVIGATION_OPERATOR));
printCountingMap.put("navigationOperator", temp == null ? 0 : ((Collection<?>) temp).size());
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.NAVIGATION_CALL_EXP__FEATURE_CALLS));
printCountingMap.put("featureCalls", temp == null ? 0 : ((Collection<?>) temp).size());
// print collected hidden tokens
int count;
boolean iterate = true;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("source");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.NAVIGATION_CALL_EXP__SOURCE));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("source", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("navigationOperator");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.NAVIGATION_CALL_EXP__NAVIGATION_OPERATOR));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("NAVIGATION_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.NAVIGATION_CALL_EXP__NAVIGATION_OPERATOR), element));
}
printCountingMap.put("navigationOperator", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("featureCalls");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.NAVIGATION_CALL_EXP__FEATURE_CALLS));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("featureCalls", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
iterate = true;
while (iterate) {
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_NavigationCallExp_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
iterate = false;
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
}
}
public void print_org_dresdenocl_language_ocl_NavigationCallExp_0(org.dresdenocl.language.ocl.NavigationCallExp element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("navigationOperator");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.NAVIGATION_CALL_EXP__NAVIGATION_OPERATOR));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("NAVIGATION_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.NAVIGATION_CALL_EXP__NAVIGATION_OPERATOR), element));
}
printCountingMap.put("navigationOperator", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("featureCalls");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.NAVIGATION_CALL_EXP__FEATURE_CALLS));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("featureCalls", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_ImplicitOperationCallCS(org.dresdenocl.language.ocl.ImplicitOperationCallCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(3);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME));
printCountingMap.put("operationName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__ARGUMENTS));
printCountingMap.put("arguments", temp == null ? 0 : ((Collection<?>) temp).size());
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__IS_MARKED_PRE));
printCountingMap.put("isMarkedPre", temp == null ? 0 : 1);
// print collected hidden tokens
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (CompoundDefinition)
print_org_dresdenocl_language_ocl_ImplicitOperationCallCS_0(element, localtab, out, printCountingMap);
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print("(");
out.print(" ");
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_ImplicitOperationCallCS_1(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(")");
out.print(" ");
}
public void print_org_dresdenocl_language_ocl_ImplicitOperationCallCS_0(org.dresdenocl.language.ocl.ImplicitOperationCallCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
int count;
int alt = -1;
alt = 0;
int matches = matchCount(printCountingMap, Arrays.asList( "operationName" ));
int tempMatchCount;
tempMatchCount = matchCount(printCountingMap, Arrays.asList( "operationName" ));
if (tempMatchCount > matches) {
alt = 1;
matches = tempMatchCount;
}
tempMatchCount = matchCount(printCountingMap, Arrays.asList( "operationName" ));
if (tempMatchCount > matches) {
alt = 2;
matches = tempMatchCount;
}
tempMatchCount = matchCount(printCountingMap, Arrays.asList( "operationName" ));
if (tempMatchCount > matches) {
alt = 3;
matches = tempMatchCount;
}
tempMatchCount = matchCount(printCountingMap, Arrays.asList( "operationName" ));
if (tempMatchCount > matches) {
alt = 4;
matches = tempMatchCount;
}
tempMatchCount = matchCount(printCountingMap, Arrays.asList( "operationName" ));
if (tempMatchCount > matches) {
alt = 5;
matches = tempMatchCount;
}
tempMatchCount = matchCount(printCountingMap, Arrays.asList( "operationName" ));
if (tempMatchCount > matches) {
alt = 6;
matches = tempMatchCount;
}
tempMatchCount = matchCount(printCountingMap, Arrays.asList( "operationName" ));
if (tempMatchCount > matches) {
alt = 7;
matches = tempMatchCount;
}
switch(alt) {
case 1: {
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("NEQUALITY_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getOperationCallBaseExpCSOperationNameReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Operation) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
}
break;
case 2: {
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("NOT_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getOperationCallBaseExpCSOperationNameReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Operation) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
}
break;
case 3: {
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("AND_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getOperationCallBaseExpCSOperationNameReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Operation) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
}
break;
case 4: {
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("OR_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getOperationCallBaseExpCSOperationNameReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Operation) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
}
break;
case 5: {
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("XOR_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getOperationCallBaseExpCSOperationNameReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Operation) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
}
break;
case 6: {
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("IMPLIES_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getOperationCallBaseExpCSOperationNameReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Operation) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
}
break;
case 7: {
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("SIMPLE_NAME");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getOperationCallBaseExpCSOperationNameReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Operation) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
}
break;
default: // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("EQUALITY_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getOperationCallBaseExpCSOperationNameReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Operation) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
}
}
public void print_org_dresdenocl_language_ocl_ImplicitOperationCallCS_1(org.dresdenocl.language.ocl.ImplicitOperationCallCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
boolean iterate = true;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("arguments");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__ARGUMENTS));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("arguments", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
iterate = true;
while (iterate) {
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_ImplicitOperationCallCS_1_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
iterate = false;
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
}
}
public void print_org_dresdenocl_language_ocl_ImplicitOperationCallCS_1_0(org.dresdenocl.language.ocl.ImplicitOperationCallCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (CsString)
out.print(",");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("arguments");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_OPERATION_CALL_CS__ARGUMENTS));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("arguments", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_ImplicitPropertyCallCS(org.dresdenocl.language.ocl.ImplicitPropertyCallCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(2);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_PROPERTY_CALL_CS__PROPERTY));
printCountingMap.put("property", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_PROPERTY_CALL_CS__IS_MARKED_PRE));
printCountingMap.put("isMarkedPre", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("property");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_PROPERTY_CALL_CS__PROPERTY));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("SIMPLE_NAME");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getPropertyCallBaseExpCSPropertyReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Property) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_PROPERTY_CALL_CS__PROPERTY)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_PROPERTY_CALL_CS__PROPERTY), element));
out.print(" ");
}
printCountingMap.put("property", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_ImplicitPropertyCallCS_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
}
public void print_org_dresdenocl_language_ocl_ImplicitPropertyCallCS_0(org.dresdenocl.language.ocl.ImplicitPropertyCallCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
int count;
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("isMarkedPre");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_PROPERTY_CALL_CS__IS_MARKED_PRE));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("IS_MARKED_PRE");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IMPLICIT_PROPERTY_CALL_CS__IS_MARKED_PRE), element));
out.print(" ");
}
printCountingMap.put("isMarkedPre", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_IteratorExpCS(org.dresdenocl.language.ocl.IteratorExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(3);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ITERATOR_EXP_CS__ITERATOR_NAME));
printCountingMap.put("iteratorName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ITERATOR_EXP_CS__ITERATOR_VARIABLES));
printCountingMap.put("iteratorVariables", temp == null ? 0 : ((Collection<?>) temp).size());
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ITERATOR_EXP_CS__BODY_EXPRESSION));
printCountingMap.put("bodyExpression", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("iteratorName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ITERATOR_EXP_CS__ITERATOR_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("ITERATOR_NAME");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ITERATOR_EXP_CS__ITERATOR_NAME), element));
}
printCountingMap.put("iteratorName", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print("(");
out.print(" ");
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_IteratorExpCS_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
// DEFINITION PART BEGINS (LineBreak)
localtab += " ";
out.println();
out.print(localtab);
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("bodyExpression");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ITERATOR_EXP_CS__BODY_EXPRESSION));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("bodyExpression", count - 1);
}
// DEFINITION PART BEGINS (LineBreak)
out.println();
out.print(localtab);
// DEFINITION PART BEGINS (CsString)
out.print(")");
out.print(" ");
}
public void print_org_dresdenocl_language_ocl_IteratorExpCS_0(org.dresdenocl.language.ocl.IteratorExpCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("iteratorVariables");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ITERATOR_EXP_CS__ITERATOR_VARIABLES));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("iteratorVariables", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_IteratorExpCS_0_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
// DEFINITION PART BEGINS (CsString)
out.print("|");
out.print(" ");
}
public void print_org_dresdenocl_language_ocl_IteratorExpCS_0_0(org.dresdenocl.language.ocl.IteratorExpCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(",");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("iteratorVariables");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ITERATOR_EXP_CS__ITERATOR_VARIABLES));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("iteratorVariables", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_IterateExpCS(org.dresdenocl.language.ocl.IterateExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(3);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ITERATE_EXP_CS__ITERATOR_VARIABLE));
printCountingMap.put("iteratorVariable", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ITERATE_EXP_CS__RESULT_VARIABLE));
printCountingMap.put("resultVariable", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ITERATE_EXP_CS__BODY_EXPRESSION));
printCountingMap.put("bodyExpression", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
boolean iterate = true;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (CsString)
out.print("iterate");
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print("(");
out.print(" ");
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_IterateExpCS_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("resultVariable");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ITERATE_EXP_CS__RESULT_VARIABLE));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("resultVariable", count - 1);
}
// DEFINITION PART BEGINS (CsString)
out.print("|");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("bodyExpression");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ITERATE_EXP_CS__BODY_EXPRESSION));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("bodyExpression", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(")");
out.print(" ");
}
public void print_org_dresdenocl_language_ocl_IterateExpCS_0(org.dresdenocl.language.ocl.IterateExpCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("iteratorVariable");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ITERATE_EXP_CS__ITERATOR_VARIABLE));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("iteratorVariable", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(";");
out.print(" ");
}
public void print_org_dresdenocl_language_ocl_IteratorExpVariableCS(org.dresdenocl.language.ocl.IteratorExpVariableCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(2);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ITERATOR_EXP_VARIABLE_CS__VARIABLE_NAME));
printCountingMap.put("variableName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ITERATOR_EXP_VARIABLE_CS__TYPE_NAME));
printCountingMap.put("typeName", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("variableName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ITERATOR_EXP_VARIABLE_CS__VARIABLE_NAME));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("variableName", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_IteratorExpVariableCS_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
}
public void print_org_dresdenocl_language_ocl_IteratorExpVariableCS_0(org.dresdenocl.language.ocl.IteratorExpVariableCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (CsString)
out.print(":");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("typeName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.ITERATOR_EXP_VARIABLE_CS__TYPE_NAME));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("typeName", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_TupleTypeCS(org.dresdenocl.language.ocl.TupleTypeCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(1);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.TUPLE_TYPE_CS__VARIABLE_DECLARATION_LIST));
printCountingMap.put("variableDeclarationList", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (CsString)
out.print("Tuple");
out.print(" ");
// DEFINITION PART BEGINS (CsString)
out.print("(");
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("variableDeclarationList");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.TUPLE_TYPE_CS__VARIABLE_DECLARATION_LIST));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("variableDeclarationList", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(")");
out.print(" ");
}
public void print_org_dresdenocl_language_ocl_CollectionTypeIdentifierCS(org.dresdenocl.language.ocl.CollectionTypeIdentifierCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(2);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.COLLECTION_TYPE_IDENTIFIER_CS__TYPE_NAME));
printCountingMap.put("typeName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.COLLECTION_TYPE_IDENTIFIER_CS__GENERIC_TYPE));
printCountingMap.put("genericType", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("typeName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.COLLECTION_TYPE_IDENTIFIER_CS__TYPE_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("COLLECTION_TYPES");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getCollectionTypeIdentifierCSTypeNameReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Type) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.COLLECTION_TYPE_IDENTIFIER_CS__TYPE_NAME)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.COLLECTION_TYPE_IDENTIFIER_CS__TYPE_NAME), element));
out.print(" ");
}
printCountingMap.put("typeName", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_CollectionTypeIdentifierCS_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
}
public void print_org_dresdenocl_language_ocl_CollectionTypeIdentifierCS_0(org.dresdenocl.language.ocl.CollectionTypeIdentifierCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print("(");
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("genericType");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.COLLECTION_TYPE_IDENTIFIER_CS__GENERIC_TYPE));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("genericType", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(")");
out.print(" ");
}
public void print_org_dresdenocl_language_ocl_TypeModelElementCS(org.dresdenocl.language.ocl.TypeModelElementCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(1);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.TYPE_MODEL_ELEMENT_CS__MODEL_ELEMENT));
printCountingMap.put("modelElement", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("modelElement");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.TYPE_MODEL_ELEMENT_CS__MODEL_ELEMENT));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("modelElement", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_VariableDeclarationWithoutInitCS(org.dresdenocl.language.ocl.VariableDeclarationWithoutInitCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(2);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.VARIABLE_DECLARATION_WITHOUT_INIT_CS__VARIABLE_NAME));
printCountingMap.put("variableName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.VARIABLE_DECLARATION_WITHOUT_INIT_CS__TYPE_NAME));
printCountingMap.put("typeName", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("variableName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.VARIABLE_DECLARATION_WITHOUT_INIT_CS__VARIABLE_NAME));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("variableName", count - 1);
}
// DEFINITION PART BEGINS (CsString)
out.print(":");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("typeName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.VARIABLE_DECLARATION_WITHOUT_INIT_CS__TYPE_NAME));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("typeName", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_VariableDeclarationWithoutInitListCS(org.dresdenocl.language.ocl.VariableDeclarationWithoutInitListCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(1);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.VARIABLE_DECLARATION_WITHOUT_INIT_LIST_CS__VARIABLE_DECLARATIONS));
printCountingMap.put("variableDeclarations", temp == null ? 0 : ((Collection<?>) temp).size());
// print collected hidden tokens
int count;
boolean iterate = true;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("variableDeclarations");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.VARIABLE_DECLARATION_WITHOUT_INIT_LIST_CS__VARIABLE_DECLARATIONS));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("variableDeclarations", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
iterate = true;
while (iterate) {
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_VariableDeclarationWithoutInitListCS_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
iterate = false;
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
}
}
public void print_org_dresdenocl_language_ocl_VariableDeclarationWithoutInitListCS_0(org.dresdenocl.language.ocl.VariableDeclarationWithoutInitListCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(",");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("variableDeclarations");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.VARIABLE_DECLARATION_WITHOUT_INIT_LIST_CS__VARIABLE_DECLARATIONS));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("variableDeclarations", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_VariableDeclarationWithInitCS(org.dresdenocl.language.ocl.VariableDeclarationWithInitCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(4);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.VARIABLE_DECLARATION_WITH_INIT_CS__VARIABLE_NAME));
printCountingMap.put("variableName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.VARIABLE_DECLARATION_WITH_INIT_CS__TYPE_NAME));
printCountingMap.put("typeName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.VARIABLE_DECLARATION_WITH_INIT_CS__INITIALIZATION));
printCountingMap.put("initialization", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.VARIABLE_DECLARATION_WITH_INIT_CS__EQUAL));
printCountingMap.put("equal", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("variableName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.VARIABLE_DECLARATION_WITH_INIT_CS__VARIABLE_NAME));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("variableName", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_VariableDeclarationWithInitCS_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("equal");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.VARIABLE_DECLARATION_WITH_INIT_CS__EQUAL));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("EQUALITY_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.VARIABLE_DECLARATION_WITH_INIT_CS__EQUAL), element));
out.print(" ");
}
printCountingMap.put("equal", count - 1);
}
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("initialization");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.VARIABLE_DECLARATION_WITH_INIT_CS__INITIALIZATION));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("initialization", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_VariableDeclarationWithInitCS_0(org.dresdenocl.language.ocl.VariableDeclarationWithInitCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (CsString)
out.print(":");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("typeName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.VARIABLE_DECLARATION_WITH_INIT_CS__TYPE_NAME));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("typeName", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_VariableDeclarationWithInitListCS(org.dresdenocl.language.ocl.VariableDeclarationWithInitListCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(1);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.VARIABLE_DECLARATION_WITH_INIT_LIST_CS__VARIABLE_DECLARATIONS));
printCountingMap.put("variableDeclarations", temp == null ? 0 : ((Collection<?>) temp).size());
// print collected hidden tokens
int count;
boolean iterate = true;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("variableDeclarations");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.VARIABLE_DECLARATION_WITH_INIT_LIST_CS__VARIABLE_DECLARATIONS));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("variableDeclarations", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
iterate = true;
while (iterate) {
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_VariableDeclarationWithInitListCS_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
iterate = false;
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
}
}
public void print_org_dresdenocl_language_ocl_VariableDeclarationWithInitListCS_0(org.dresdenocl.language.ocl.VariableDeclarationWithInitListCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(",");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("variableDeclarations");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.VARIABLE_DECLARATION_WITH_INIT_LIST_CS__VARIABLE_DECLARATIONS));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("variableDeclarations", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_OperationCallOnSelfExpCS(org.dresdenocl.language.ocl.OperationCallOnSelfExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(3);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME));
printCountingMap.put("operationName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__ARGUMENTS));
printCountingMap.put("arguments", temp == null ? 0 : ((Collection<?>) temp).size());
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__IS_MARKED_PRE));
printCountingMap.put("isMarkedPre", temp == null ? 0 : 1);
// print collected hidden tokens
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (CompoundDefinition)
print_org_dresdenocl_language_ocl_OperationCallOnSelfExpCS_0(element, localtab, out, printCountingMap);
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_OperationCallOnSelfExpCS_1(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
// DEFINITION PART BEGINS (CsString)
out.print("(");
out.print(" ");
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_OperationCallOnSelfExpCS_2(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(")");
out.print(" ");
}
public void print_org_dresdenocl_language_ocl_OperationCallOnSelfExpCS_0(org.dresdenocl.language.ocl.OperationCallOnSelfExpCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
int count;
int alt = -1;
alt = 0;
int matches = matchCount(printCountingMap, Arrays.asList( "operationName" ));
int tempMatchCount;
tempMatchCount = matchCount(printCountingMap, Arrays.asList( "operationName" ));
if (tempMatchCount > matches) {
alt = 1;
matches = tempMatchCount;
}
tempMatchCount = matchCount(printCountingMap, Arrays.asList( "operationName" ));
if (tempMatchCount > matches) {
alt = 2;
matches = tempMatchCount;
}
tempMatchCount = matchCount(printCountingMap, Arrays.asList( "operationName" ));
if (tempMatchCount > matches) {
alt = 3;
matches = tempMatchCount;
}
tempMatchCount = matchCount(printCountingMap, Arrays.asList( "operationName" ));
if (tempMatchCount > matches) {
alt = 4;
matches = tempMatchCount;
}
tempMatchCount = matchCount(printCountingMap, Arrays.asList( "operationName" ));
if (tempMatchCount > matches) {
alt = 5;
matches = tempMatchCount;
}
tempMatchCount = matchCount(printCountingMap, Arrays.asList( "operationName" ));
if (tempMatchCount > matches) {
alt = 6;
matches = tempMatchCount;
}
tempMatchCount = matchCount(printCountingMap, Arrays.asList( "operationName" ));
if (tempMatchCount > matches) {
alt = 7;
matches = tempMatchCount;
}
switch(alt) {
case 1: {
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("NEQUALITY_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getOperationCallBaseExpCSOperationNameReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Operation) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
}
break;
case 2: {
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("NOT_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getOperationCallBaseExpCSOperationNameReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Operation) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
}
break;
case 3: {
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("AND_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getOperationCallBaseExpCSOperationNameReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Operation) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
}
break;
case 4: {
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("OR_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getOperationCallBaseExpCSOperationNameReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Operation) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
}
break;
case 5: {
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("XOR_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getOperationCallBaseExpCSOperationNameReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Operation) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
}
break;
case 6: {
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("IMPLIES_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getOperationCallBaseExpCSOperationNameReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Operation) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
}
break;
case 7: {
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("SIMPLE_NAME");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getOperationCallBaseExpCSOperationNameReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Operation) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
}
break;
default: // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("EQUALITY_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getOperationCallBaseExpCSOperationNameReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Operation) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__OPERATION_NAME), element));
out.print(" ");
}
printCountingMap.put("operationName", count - 1);
}
}
}
public void print_org_dresdenocl_language_ocl_OperationCallOnSelfExpCS_1(org.dresdenocl.language.ocl.OperationCallOnSelfExpCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
int count;
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("isMarkedPre");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__IS_MARKED_PRE));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("IS_MARKED_PRE");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__IS_MARKED_PRE), element));
}
printCountingMap.put("isMarkedPre", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
}
public void print_org_dresdenocl_language_ocl_OperationCallOnSelfExpCS_2(org.dresdenocl.language.ocl.OperationCallOnSelfExpCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
boolean iterate = true;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("arguments");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__ARGUMENTS));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("arguments", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
iterate = true;
while (iterate) {
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_OperationCallOnSelfExpCS_2_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
iterate = false;
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
}
}
public void print_org_dresdenocl_language_ocl_OperationCallOnSelfExpCS_2_0(org.dresdenocl.language.ocl.OperationCallOnSelfExpCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (CsString)
out.print(",");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("arguments");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.OPERATION_CALL_ON_SELF_EXP_CS__ARGUMENTS));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("arguments", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_StaticOperationCallExpCS(org.dresdenocl.language.ocl.StaticOperationCallExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(3);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.STATIC_OPERATION_CALL_EXP_CS__TYPE_NAME));
printCountingMap.put("typeName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.STATIC_OPERATION_CALL_EXP_CS__OPERATION_NAME));
printCountingMap.put("operationName", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.STATIC_OPERATION_CALL_EXP_CS__ARGUMENTS));
printCountingMap.put("arguments", temp == null ? 0 : ((Collection<?>) temp).size());
// print collected hidden tokens
int count;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("typeName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.STATIC_OPERATION_CALL_EXP_CS__TYPE_NAME));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("typeName", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print("::");
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("operationName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.STATIC_OPERATION_CALL_EXP_CS__OPERATION_NAME));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("SIMPLE_NAME");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getStaticOperationCallExpCSOperationNameReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Operation) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.STATIC_OPERATION_CALL_EXP_CS__OPERATION_NAME)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.STATIC_OPERATION_CALL_EXP_CS__OPERATION_NAME), element));
}
printCountingMap.put("operationName", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print("(");
out.print(" ");
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_StaticOperationCallExpCS_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(")");
out.print(" ");
}
public void print_org_dresdenocl_language_ocl_StaticOperationCallExpCS_0(org.dresdenocl.language.ocl.StaticOperationCallExpCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
boolean iterate = true;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("arguments");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.STATIC_OPERATION_CALL_EXP_CS__ARGUMENTS));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("arguments", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
iterate = true;
while (iterate) {
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_StaticOperationCallExpCS_0_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
iterate = false;
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
}
}
public void print_org_dresdenocl_language_ocl_StaticOperationCallExpCS_0_0(org.dresdenocl.language.ocl.StaticOperationCallExpCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (CsString)
out.print(",");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("arguments");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.STATIC_OPERATION_CALL_EXP_CS__ARGUMENTS));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("arguments", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_ModelElementCS(org.dresdenocl.language.ocl.ModelElementCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(1);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.MODEL_ELEMENT_CS__PATH_NAME));
printCountingMap.put("pathName", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("pathName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.MODEL_ELEMENT_CS__PATH_NAME));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("pathName", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_PathNameSimpleCS(org.dresdenocl.language.ocl.PathNameSimpleCS element, String outertab, PrintWriter out) {
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(1);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PATH_NAME_SIMPLE_CS__NAMED_ELEMENT));
printCountingMap.put("namedElement", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("namedElement");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PATH_NAME_SIMPLE_CS__NAMED_ELEMENT));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("SIMPLE_NAME");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getPathNameSimpleCSNamedElementReferenceResolver().deResolve((org.dresdenocl.pivotmodel.NamedElement) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PATH_NAME_SIMPLE_CS__NAMED_ELEMENT)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PATH_NAME_SIMPLE_CS__NAMED_ELEMENT), element));
out.print(" ");
}
printCountingMap.put("namedElement", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_PathNamePathCS(org.dresdenocl.language.ocl.PathNamePathCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(1);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PATH_NAME_PATH_CS__PATH_NAME));
printCountingMap.put("pathName", temp == null ? 0 : ((Collection<?>) temp).size());
// print collected hidden tokens
int count;
boolean iterate = true;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (CompoundDefinition)
print_org_dresdenocl_language_ocl_PathNamePathCS_0(element, localtab, out, printCountingMap);
iterate = true;
while (iterate) {
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_PathNamePathCS_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
iterate = false;
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
}
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("pathName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PATH_NAME_PATH_CS__PATH_NAME));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("pathName", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_PathNamePathCS_0(org.dresdenocl.language.ocl.PathNamePathCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("pathName");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PATH_NAME_PATH_CS__PATH_NAME));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("pathName", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print("::");
// DEFINITION PART BEGINS (WhiteSpaces)
}
public void print_org_dresdenocl_language_ocl_NamedElementCS(org.dresdenocl.language.ocl.NamedElementCS element, String outertab, PrintWriter out) {
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(1);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.NAMED_ELEMENT_CS__NAMED_ELEMENT));
printCountingMap.put("namedElement", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("namedElement");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.NAMED_ELEMENT_CS__NAMED_ELEMENT));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("SIMPLE_NAME");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getNamedElementCSNamedElementReferenceResolver().deResolve((org.dresdenocl.pivotmodel.NamedElement) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.NAMED_ELEMENT_CS__NAMED_ELEMENT)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.NAMED_ELEMENT_CS__NAMED_ELEMENT), element));
out.print(" ");
}
printCountingMap.put("namedElement", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_TupleLiteralExpCS(org.dresdenocl.language.ocl.TupleLiteralExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(1);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.TUPLE_LITERAL_EXP_CS__VARIABLE_DECLARATIONS));
printCountingMap.put("variableDeclarations", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (CsString)
out.print("Tuple");
out.print(" ");
// DEFINITION PART BEGINS (CsString)
out.print("{");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("variableDeclarations");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.TUPLE_LITERAL_EXP_CS__VARIABLE_DECLARATIONS));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("variableDeclarations", count - 1);
}
// DEFINITION PART BEGINS (CsString)
out.print("}");
out.print(" ");
}
public void print_org_dresdenocl_language_ocl_IfExpCS(org.dresdenocl.language.ocl.IfExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(3);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IF_EXP_CS__CONDITION));
printCountingMap.put("condition", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IF_EXP_CS__THEN_BRANCH));
printCountingMap.put("thenBranch", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IF_EXP_CS__ELSE_BRANCH));
printCountingMap.put("elseBranch", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (CsString)
out.print("if");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("condition");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IF_EXP_CS__CONDITION));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("condition", count - 1);
}
// DEFINITION PART BEGINS (LineBreak)
out.println();
out.print(localtab);
// DEFINITION PART BEGINS (CsString)
out.print("then");
out.print(" ");
// DEFINITION PART BEGINS (LineBreak)
localtab += " ";
out.println();
out.print(localtab);
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("thenBranch");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IF_EXP_CS__THEN_BRANCH));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("thenBranch", count - 1);
}
// DEFINITION PART BEGINS (LineBreak)
out.println();
out.print(localtab);
// DEFINITION PART BEGINS (CsString)
out.print("else");
out.print(" ");
// DEFINITION PART BEGINS (LineBreak)
localtab += " ";
out.println();
out.print(localtab);
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("elseBranch");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.IF_EXP_CS__ELSE_BRANCH));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("elseBranch", count - 1);
}
// DEFINITION PART BEGINS (LineBreak)
out.println();
out.print(localtab);
// DEFINITION PART BEGINS (CsString)
out.print("endif");
out.print(" ");
}
public void print_org_dresdenocl_language_ocl_CollectionLiteralExpCS(org.dresdenocl.language.ocl.CollectionLiteralExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(2);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.COLLECTION_LITERAL_EXP_CS__COLLECTION_TYPE));
printCountingMap.put("collectionType", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.COLLECTION_LITERAL_EXP_CS__COLLECTION_LITERAL_PARTS));
printCountingMap.put("collectionLiteralParts", temp == null ? 0 : ((Collection<?>) temp).size());
// print collected hidden tokens
int count;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("collectionType");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.COLLECTION_LITERAL_EXP_CS__COLLECTION_TYPE));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("collectionType", count - 1);
}
// DEFINITION PART BEGINS (CsString)
out.print("{");
out.print(" ");
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_CollectionLiteralExpCS_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
// DEFINITION PART BEGINS (CsString)
out.print("}");
out.print(" ");
}
public void print_org_dresdenocl_language_ocl_CollectionLiteralExpCS_0(org.dresdenocl.language.ocl.CollectionLiteralExpCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
boolean iterate = true;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("collectionLiteralParts");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.COLLECTION_LITERAL_EXP_CS__COLLECTION_LITERAL_PARTS));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("collectionLiteralParts", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
iterate = true;
while (iterate) {
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_CollectionLiteralExpCS_0_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
iterate = false;
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
}
}
public void print_org_dresdenocl_language_ocl_CollectionLiteralExpCS_0_0(org.dresdenocl.language.ocl.CollectionLiteralExpCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(",");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("collectionLiteralParts");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.COLLECTION_LITERAL_EXP_CS__COLLECTION_LITERAL_PARTS));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("collectionLiteralParts", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_CollectionRangeCS(org.dresdenocl.language.ocl.CollectionRangeCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(2);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.COLLECTION_RANGE_CS__FROM));
printCountingMap.put("from", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.COLLECTION_RANGE_CS__TO));
printCountingMap.put("to", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("from");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.COLLECTION_RANGE_CS__FROM));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("from", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print("..");
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("to");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.COLLECTION_RANGE_CS__TO));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("to", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_CollectionLiteralPartsOclExpCS(org.dresdenocl.language.ocl.CollectionLiteralPartsOclExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(1);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.COLLECTION_LITERAL_PARTS_OCL_EXP_CS__OCL_EXPRESSION));
printCountingMap.put("oclExpression", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("oclExpression");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.COLLECTION_LITERAL_PARTS_OCL_EXP_CS__OCL_EXPRESSION));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("oclExpression", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_CollectionTypeLiteralExpCS(org.dresdenocl.language.ocl.CollectionTypeLiteralExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(1);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.COLLECTION_TYPE_LITERAL_EXP_CS__COLLECTION_TYPE));
printCountingMap.put("collectionType", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("collectionType");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.COLLECTION_TYPE_LITERAL_EXP_CS__COLLECTION_TYPE));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("collectionType", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_TupleTypeLiteralExpCS(org.dresdenocl.language.ocl.TupleTypeLiteralExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(1);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.TUPLE_TYPE_LITERAL_EXP_CS__TUPLE_TYPE));
printCountingMap.put("tupleType", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("tupleType");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.TUPLE_TYPE_LITERAL_EXP_CS__TUPLE_TYPE));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("tupleType", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_PropertyCallOnSelfExpCS(org.dresdenocl.language.ocl.PropertyCallOnSelfExpCS element, String outertab, PrintWriter out) {
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(2);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PROPERTY_CALL_ON_SELF_EXP_CS__PROPERTY));
printCountingMap.put("property", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PROPERTY_CALL_ON_SELF_EXP_CS__IS_MARKED_PRE));
printCountingMap.put("isMarkedPre", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("property");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PROPERTY_CALL_ON_SELF_EXP_CS__PROPERTY));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("SIMPLE_NAME");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getPropertyCallBaseExpCSPropertyReferenceResolver().deResolve((org.dresdenocl.pivotmodel.Property) o, element, (EReference) element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PROPERTY_CALL_ON_SELF_EXP_CS__PROPERTY)), element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PROPERTY_CALL_ON_SELF_EXP_CS__PROPERTY), element));
}
printCountingMap.put("property", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("isMarkedPre");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PROPERTY_CALL_ON_SELF_EXP_CS__IS_MARKED_PRE));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("IS_MARKED_PRE");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.PROPERTY_CALL_ON_SELF_EXP_CS__IS_MARKED_PRE), element));
out.print(" ");
}
printCountingMap.put("isMarkedPre", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_LetExpCS(org.dresdenocl.language.ocl.LetExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(2);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LET_EXP_CS__VARIABLE_DECLARATIONS));
printCountingMap.put("variableDeclarations", temp == null ? 0 : ((Collection<?>) temp).size());
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LET_EXP_CS__OCL_EXPRESSION));
printCountingMap.put("oclExpression", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
boolean iterate = true;
java.io.StringWriter sWriter = null;
PrintWriter out1 = null;
Map<String, Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (CsString)
out.print("let");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("variableDeclarations");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LET_EXP_CS__VARIABLE_DECLARATIONS));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("variableDeclarations", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
iterate = true;
while (iterate) {
sWriter = new StringWriter();
out1 = new PrintWriter(sWriter);
printCountingMap1 = new LinkedHashMap<String, Integer>(printCountingMap);
print_org_dresdenocl_language_ocl_LetExpCS_0(element, localtab, out1, printCountingMap1);
if (printCountingMap.equals(printCountingMap1)) {
iterate = false;
out1.close();
} else {
out1.flush();
out1.close();
out.print(sWriter.toString());
printCountingMap.putAll(printCountingMap1);
}
}
// DEFINITION PART BEGINS (CsString)
out.print("in");
out.print(" ");
// DEFINITION PART BEGINS (LineBreak)
localtab += " ";
out.println();
out.print(localtab);
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("oclExpression");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LET_EXP_CS__OCL_EXPRESSION));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("oclExpression", count - 1);
}
// DEFINITION PART BEGINS (LineBreak)
out.println();
out.print(localtab);
}
public void print_org_dresdenocl_language_ocl_LetExpCS_0(org.dresdenocl.language.ocl.LetExpCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
String localtab = outertab;
int count;
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(",");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("variableDeclarations");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.LET_EXP_CS__VARIABLE_DECLARATIONS));
List<?> list = (List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("variableDeclarations", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_RealLiteralExpCS(org.dresdenocl.language.ocl.RealLiteralExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(3);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.REAL_LITERAL_EXP_CS__INT_VALUE));
printCountingMap.put("intValue", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.REAL_LITERAL_EXP_CS__REAL_VALUE));
printCountingMap.put("realValue", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.REAL_LITERAL_EXP_CS__NAVIGATION_OPERATOR));
printCountingMap.put("navigationOperator", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("intValue");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.REAL_LITERAL_EXP_CS__INT_VALUE));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("INTEGER_LITERAL");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.REAL_LITERAL_EXP_CS__INT_VALUE), element));
}
printCountingMap.put("intValue", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("navigationOperator");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.REAL_LITERAL_EXP_CS__NAVIGATION_OPERATOR));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("NAVIGATION_OPERATOR");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.REAL_LITERAL_EXP_CS__NAVIGATION_OPERATOR), element));
}
printCountingMap.put("navigationOperator", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CompoundDefinition)
print_org_dresdenocl_language_ocl_RealLiteralExpCS_0(element, localtab, out, printCountingMap);
}
public void print_org_dresdenocl_language_ocl_RealLiteralExpCS_0(org.dresdenocl.language.ocl.RealLiteralExpCS element, String outertab, PrintWriter out, Map<String, Integer> printCountingMap) {
int count;
int alt = -1;
alt = 0;
int matches = matchCount(printCountingMap, Arrays.asList( "realValue" ));
int tempMatchCount;
tempMatchCount = matchCount(printCountingMap, Arrays.asList( "realValue" ));
if (tempMatchCount > matches) {
alt = 1;
matches = tempMatchCount;
}
switch(alt) {
case 1: {
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("realValue");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.REAL_LITERAL_EXP_CS__REAL_VALUE));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("INTEGER_LITERAL");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.REAL_LITERAL_EXP_CS__REAL_VALUE), element));
out.print(" ");
}
printCountingMap.put("realValue", count - 1);
}
}
break;
default: // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("realValue");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.REAL_LITERAL_EXP_CS__REAL_VALUE));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("INTEGER_0");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.REAL_LITERAL_EXP_CS__REAL_VALUE), element));
out.print(" ");
}
printCountingMap.put("realValue", count - 1);
}
}
}
public void print_org_dresdenocl_language_ocl_IntegerLiteralExpCS(org.dresdenocl.language.ocl.IntegerLiteralExpCS element, String outertab, PrintWriter out) {
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(1);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.INTEGER_LITERAL_EXP_CS__INTEGER_LITERAL));
printCountingMap.put("integerLiteral", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("integerLiteral");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.INTEGER_LITERAL_EXP_CS__INTEGER_LITERAL));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("INTEGER_LITERAL");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.INTEGER_LITERAL_EXP_CS__INTEGER_LITERAL), element));
out.print(" ");
}
printCountingMap.put("integerLiteral", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_BooleanLiteralExpCS(org.dresdenocl.language.ocl.BooleanLiteralExpCS element, String outertab, PrintWriter out) {
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(1);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.BOOLEAN_LITERAL_EXP_CS__BOOLEAN_LITERAL));
printCountingMap.put("booleanLiteral", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("booleanLiteral");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.BOOLEAN_LITERAL_EXP_CS__BOOLEAN_LITERAL));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("BOOLEAN_LITERAL");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.BOOLEAN_LITERAL_EXP_CS__BOOLEAN_LITERAL), element));
out.print(" ");
}
printCountingMap.put("booleanLiteral", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_StringLiteralExpCS(org.dresdenocl.language.ocl.StringLiteralExpCS element, String outertab, PrintWriter out) {
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(1);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.STRING_LITERAL_EXP_CS__STRING_LITERAL));
printCountingMap.put("stringLiteral", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (PlaceholderInQuotes)
count = printCountingMap.get("stringLiteral");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.STRING_LITERAL_EXP_CS__STRING_LITERAL));
if (o != null) {
org.dresdenocl.language.ocl.resource.ocl.IOclTokenResolver resolver = tokenResolverFactory.createTokenResolver("QUOTED_39_39");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.STRING_LITERAL_EXP_CS__STRING_LITERAL), element));
out.print(" ");
}
printCountingMap.put("stringLiteral", count - 1);
}
}
public void print_org_dresdenocl_language_ocl_InvalidLiteralExpCS(org.dresdenocl.language.ocl.InvalidLiteralExpCS element, String outertab, PrintWriter out) {
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
// print collected hidden tokens
// DEFINITION PART BEGINS (CsString)
out.print("invalid");
out.print(" ");
}
public void print_org_dresdenocl_language_ocl_NullLiteralExpCS(org.dresdenocl.language.ocl.NullLiteralExpCS element, String outertab, PrintWriter out) {
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
// print collected hidden tokens
// DEFINITION PART BEGINS (CsString)
out.print("null");
out.print(" ");
}
public void print_org_dresdenocl_language_ocl_BracketExpCS(org.dresdenocl.language.ocl.BracketExpCS element, String outertab, PrintWriter out) {
String localtab = outertab;
// The printCountingMap contains a mapping from feature names to the number of
// remaining elements that still need to be printed. The map is initialized with
// the number of elements stored in each structural feature. For lists this is the
// list size. For non-multiple features it is either 1 (if the feature is set) or
// 0 (if the feature is null).
Map<String, Integer> printCountingMap = new LinkedHashMap<String, Integer>(1);
Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.BRACKET_EXP_CS__OCL_EXPRESSION));
printCountingMap.put("oclExpression", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (CsString)
out.print("(");
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("oclExpression");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.dresdenocl.language.ocl.OclPackage.BRACKET_EXP_CS__OCL_EXPRESSION));
if (o != null) {
doPrint((EObject) o, out, localtab);
}
printCountingMap.put("oclExpression", count - 1);
}
// DEFINITION PART BEGINS (WhiteSpaces)
// DEFINITION PART BEGINS (CsString)
out.print(")");
out.print(" ");
}
}