/**
* <copyright>
* </copyright>
*
*
*/
package org.reuseware.air.language.abstractsyntax.resource.as.mopp;
public class AsPrinter implements org.reuseware.air.language.abstractsyntax.resource.as.IAsTextPrinter {
protected org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolverFactory tokenResolverFactory = new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsTokenResolverFactory();
protected java.io.OutputStream outputStream;
/**
* Holds the resource that is associated with this printer. may be null if the
* printer is used stand alone.
*/
private org.reuseware.air.language.abstractsyntax.resource.as.IAsTextResource resource;
private java.util.Map<?, ?> options;
public AsPrinter(java.io.OutputStream outputStream, org.reuseware.air.language.abstractsyntax.resource.as.IAsTextResource resource) {
super();
this.outputStream = outputStream;
this.resource = resource;
}
protected static int matchCount(java.util.Map<java.lang.String, java.lang.Integer> featureCounter, java.util.Collection<java.lang.String> needed){
int pos = 0;
int neg = 0;
for(java.lang.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(org.eclipse.emf.ecore.EObject element, java.io.PrintWriter out, java.lang.String globaltab) {
if (element == null) {
throw new java.lang.IllegalArgumentException("Nothing to write.");
}
if (out == null) {
throw new java.lang.IllegalArgumentException("Nothing to write on.");
}
if (element instanceof org.reuseware.air.language.abstractsyntax.AbstractSyntax) {
print_org_reuseware_air_language_abstractsyntax_AbstractSyntax((org.reuseware.air.language.abstractsyntax.AbstractSyntax) element, globaltab, out);
return;
}
if (element instanceof org.reuseware.air.language.abstractsyntax.Import) {
print_org_reuseware_air_language_abstractsyntax_Import((org.reuseware.air.language.abstractsyntax.Import) element, globaltab, out);
return;
}
if (element instanceof org.reuseware.air.language.abstractsyntax.ASProgram) {
print_org_reuseware_air_language_abstractsyntax_ASProgram((org.reuseware.air.language.abstractsyntax.ASProgram) element, globaltab, out);
return;
}
if (element instanceof org.reuseware.air.language.abstractsyntax.ConcreteNodeDefinition) {
print_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition((org.reuseware.air.language.abstractsyntax.ConcreteNodeDefinition) element, globaltab, out);
return;
}
if (element instanceof org.reuseware.air.language.abstractsyntax.InterfaceNodeDefinition) {
print_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition((org.reuseware.air.language.abstractsyntax.InterfaceNodeDefinition) element, globaltab, out);
return;
}
if (element instanceof org.reuseware.air.language.abstractsyntax.Attribute) {
print_org_reuseware_air_language_abstractsyntax_Attribute((org.reuseware.air.language.abstractsyntax.Attribute) element, globaltab, out);
return;
}
if (element instanceof org.reuseware.air.language.abstractsyntax.Containment) {
print_org_reuseware_air_language_abstractsyntax_Containment((org.reuseware.air.language.abstractsyntax.Containment) element, globaltab, out);
return;
}
if (element instanceof org.reuseware.air.language.abstractsyntax.InternalReference) {
print_org_reuseware_air_language_abstractsyntax_InternalReference((org.reuseware.air.language.abstractsyntax.InternalReference) element, globaltab, out);
return;
}
if (element instanceof org.reuseware.air.language.abstractsyntax.ExternalReference) {
print_org_reuseware_air_language_abstractsyntax_ExternalReference((org.reuseware.air.language.abstractsyntax.ExternalReference) element, globaltab, out);
return;
}
if (element instanceof org.reuseware.air.language.abstractsyntax.PLUS) {
print_org_reuseware_air_language_abstractsyntax_PLUS((org.reuseware.air.language.abstractsyntax.PLUS) element, globaltab, out);
return;
}
if (element instanceof org.reuseware.air.language.abstractsyntax.STAR) {
print_org_reuseware_air_language_abstractsyntax_STAR((org.reuseware.air.language.abstractsyntax.STAR) element, globaltab, out);
return;
}
if (element instanceof org.reuseware.air.language.abstractsyntax.QUESTIONMARK) {
print_org_reuseware_air_language_abstractsyntax_QUESTIONMARK((org.reuseware.air.language.abstractsyntax.QUESTIONMARK) element, globaltab, out);
return;
}
addWarningToResource("The printer can not handle " + element.eClass().getName() + " elements", element);
}
protected org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsReferenceResolverSwitch getReferenceResolverSwitch() {
return (org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsReferenceResolverSwitch) new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsMetaInformation().getReferenceResolverSwitch();
}
protected void addWarningToResource(final java.lang.String errorMessage, org.eclipse.emf.ecore.EObject cause) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTextResource resource = getResource();
if (resource == null) {
// the resource can be null if the printer is used stand alone
return;
}
resource.addProblem(new org.reuseware.air.language.abstractsyntax.resource.as.mopp.AsProblem(errorMessage, org.reuseware.air.language.abstractsyntax.resource.as.AsEProblemType.ERROR), cause);
}
public void setOptions(java.util.Map<?,?> options) {
this.options = options;
}
public java.util.Map<?,?> getOptions() {
return options;
}
public org.reuseware.air.language.abstractsyntax.resource.as.IAsTextResource getResource() {
return resource;
}
/**
* Calls {@link #doPrint(EObject, PrintWriter, String)} and writes the result to
* the underlying output stream.
*/
public void print(org.eclipse.emf.ecore.EObject element) {
java.io.PrintWriter out = new java.io.PrintWriter(new java.io.BufferedOutputStream(outputStream));
doPrint(element, out, "");
out.flush();
out.close();
}
public void print_org_reuseware_air_language_abstractsyntax_AbstractSyntax(org.reuseware.air.language.abstractsyntax.AbstractSyntax element, java.lang.String outertab, java.io.PrintWriter out) {
java.lang.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).
java.util.Map<java.lang.String, java.lang.Integer> printCountingMap = new java.util.LinkedHashMap<java.lang.String, java.lang.Integer>(5);
java.lang.Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__UNIT));
printCountingMap.put("unit", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__NSURI));
printCountingMap.put("nsuri", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__NSPREFIX));
printCountingMap.put("nsprefix", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__IMPORT));
printCountingMap.put("import", temp == null ? 0 : ((java.util.Collection<?>) temp).size());
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__NAME));
printCountingMap.put("name", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
java.io.StringWriter sWriter = null;
java.io.PrintWriter out1 = null;
java.util.Map<java.lang.String, java.lang.Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (CsString)
out.print("ABSTRACTSYNTAX");
out.print(" ");
// DEFINITION PART BEGINS (PlaceholderUsingDefaultToken)
count = printCountingMap.get("name");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__NAME));
if (o != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((java.lang.Object) o, element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__NAME), element));
out.print(" ");
}
printCountingMap.put("name", count - 1);
}
// DEFINITION PART BEGINS (LineBreak)
out.println();
out.print(localtab);
// DEFINITION PART BEGINS (CsString)
out.print("URI");
out.print(" ");
// DEFINITION PART BEGINS (PlaceholderInQuotes)
count = printCountingMap.get("nsuri");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__NSURI));
if (o != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver = tokenResolverFactory.createTokenResolver("QUOTED_60_62");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((java.lang.Object) o, element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__NSURI), element));
out.print(" ");
}
printCountingMap.put("nsuri", count - 1);
}
// DEFINITION PART BEGINS (LineBreak)
out.println();
out.print(localtab);
// DEFINITION PART BEGINS (CsString)
out.print("PREFIX");
out.print(" ");
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("nsprefix");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__NSPREFIX));
if (o != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver = tokenResolverFactory.createTokenResolver("QNAME");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((java.lang.Object) o, element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__NSPREFIX), element));
out.print(" ");
}
printCountingMap.put("nsprefix", count - 1);
}
// DEFINITION PART BEGINS (LineBreak)
out.println();
out.print(localtab);
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new java.io.StringWriter();
out1 = new java.io.PrintWriter(sWriter);
printCountingMap1 = new java.util.LinkedHashMap<java.lang.String, java.lang.Integer>(printCountingMap);
print_org_reuseware_air_language_abstractsyntax_AbstractSyntax_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("unit");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__UNIT));
if (o != null) {
doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab);
}
printCountingMap.put("unit", count - 1);
}
}
public void print_org_reuseware_air_language_abstractsyntax_AbstractSyntax_0(org.reuseware.air.language.abstractsyntax.AbstractSyntax element, java.lang.String outertab, java.io.PrintWriter out, java.util.Map<java.lang.String, java.lang.Integer> printCountingMap){
java.lang.String localtab = outertab;
int count;
boolean iterate = true;
java.io.StringWriter sWriter = null;
java.io.PrintWriter out1 = null;
java.util.Map<java.lang.String, java.lang.Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (CsString)
out.print("IMPORT");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("import");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__IMPORT));
java.util.List<?> list = (java.util.List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab);
}
printCountingMap.put("import", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
iterate = true;
while (iterate) {
sWriter = new java.io.StringWriter();
out1 = new java.io.PrintWriter(sWriter);
printCountingMap1 = new java.util.LinkedHashMap<java.lang.String, java.lang.Integer>(printCountingMap);
print_org_reuseware_air_language_abstractsyntax_AbstractSyntax_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);
}
}
// DEFINITION PART BEGINS (LineBreak)
out.println();
out.print(localtab);
}
public void print_org_reuseware_air_language_abstractsyntax_AbstractSyntax_0_0(org.reuseware.air.language.abstractsyntax.AbstractSyntax element, java.lang.String outertab, java.io.PrintWriter out, java.util.Map<java.lang.String, java.lang.Integer> printCountingMap){
java.lang.String localtab = outertab;
int count;
// DEFINITION PART BEGINS (CsString)
out.print(",");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("import");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ABSTRACT_SYNTAX__IMPORT));
java.util.List<?> list = (java.util.List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab);
}
printCountingMap.put("import", count - 1);
}
}
public void print_org_reuseware_air_language_abstractsyntax_Import(org.reuseware.air.language.abstractsyntax.Import element, java.lang.String outertab, java.io.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).
java.util.Map<java.lang.String, java.lang.Integer> printCountingMap = new java.util.LinkedHashMap<java.lang.String, java.lang.Integer>(2);
java.lang.Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.IMPORT__PREFIX));
printCountingMap.put("prefix", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.IMPORT__EPACKAGE));
printCountingMap.put("ePackage", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (PlaceholderInQuotes)
count = printCountingMap.get("ePackage");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.IMPORT__EPACKAGE));
if (o != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver = tokenResolverFactory.createTokenResolver("QUOTED_60_62");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getImportEPackageReferenceResolver().deResolve((org.eclipse.emf.ecore.EPackage) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.IMPORT__EPACKAGE)), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.IMPORT__EPACKAGE), element));
out.print(" ");
}
printCountingMap.put("ePackage", count - 1);
}
// DEFINITION PART BEGINS (CsString)
out.print("AS");
out.print(" ");
// DEFINITION PART BEGINS (PlaceholderUsingDefaultToken)
count = printCountingMap.get("prefix");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.IMPORT__PREFIX));
if (o != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((java.lang.Object) o, element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.IMPORT__PREFIX), element));
out.print(" ");
}
printCountingMap.put("prefix", count - 1);
}
}
public void print_org_reuseware_air_language_abstractsyntax_ASProgram(org.reuseware.air.language.abstractsyntax.ASProgram element, java.lang.String outertab, java.io.PrintWriter out) {
java.lang.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).
java.util.Map<java.lang.String, java.lang.Integer> printCountingMap = new java.util.LinkedHashMap<java.lang.String, java.lang.Integer>(1);
java.lang.Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.AS_PROGRAM__STATEMENT));
printCountingMap.put("statement", temp == null ? 0 : ((java.util.Collection<?>) temp).size());
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (LineBreak)
localtab += " ";
out.println();
out.print(localtab);
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("statement");
if (count > 0) {
java.util.List<?> list = (java.util.List<?>)element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.AS_PROGRAM__STATEMENT));
int index = list.size() - count;
if (index < 0) {
index = 0;
}
java.util.ListIterator<?> it = list.listIterator(index);
while (it.hasNext()) {
java.lang.Object o = it.next();
doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab);
}
printCountingMap.put("statement", 0);
}
}
public void print_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition(org.reuseware.air.language.abstractsyntax.ConcreteNodeDefinition element, java.lang.String outertab, java.io.PrintWriter out) {
java.lang.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).
java.util.Map<java.lang.String, java.lang.Integer> printCountingMap = new java.util.LinkedHashMap<java.lang.String, java.lang.Integer>(4);
java.lang.Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONCRETE_NODE_DEFINITION__NAME));
printCountingMap.put("name", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONCRETE_NODE_DEFINITION__INTERFACES));
printCountingMap.put("interfaces", temp == null ? 0 : ((java.util.Collection<?>) temp).size());
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONCRETE_NODE_DEFINITION__MEMBERS));
printCountingMap.put("members", temp == null ? 0 : ((java.util.Collection<?>) temp).size());
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONCRETE_NODE_DEFINITION__ESUPER_CLASS));
printCountingMap.put("eSuperClass", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
java.io.StringWriter sWriter = null;
java.io.PrintWriter out1 = null;
java.util.Map<java.lang.String, java.lang.Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (PlaceholderUsingDefaultToken)
count = printCountingMap.get("name");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONCRETE_NODE_DEFINITION__NAME));
if (o != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((java.lang.Object) o, element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONCRETE_NODE_DEFINITION__NAME), element));
out.print(" ");
}
printCountingMap.put("name", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new java.io.StringWriter();
out1 = new java.io.PrintWriter(sWriter);
printCountingMap1 = new java.util.LinkedHashMap<java.lang.String, java.lang.Integer>(printCountingMap);
print_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition_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 (CompoundDefinition)
sWriter = new java.io.StringWriter();
out1 = new java.io.PrintWriter(sWriter);
printCountingMap1 = new java.util.LinkedHashMap<java.lang.String, java.lang.Integer>(printCountingMap);
print_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition_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(" ");
}
public void print_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition_0(org.reuseware.air.language.abstractsyntax.ConcreteNodeDefinition element, java.lang.String outertab, java.io.PrintWriter out, java.util.Map<java.lang.String, java.lang.Integer> printCountingMap){
int count;
// DEFINITION PART BEGINS (CsString)
out.print("==>");
out.print(" ");
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("eSuperClass");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONCRETE_NODE_DEFINITION__ESUPER_CLASS));
if (o != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver = tokenResolverFactory.createTokenResolver("QNAME");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getConcreteNodeDefinitionESuperClassReferenceResolver().deResolve((org.eclipse.emf.ecore.EClass) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONCRETE_NODE_DEFINITION__ESUPER_CLASS)), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONCRETE_NODE_DEFINITION__ESUPER_CLASS), element));
out.print(" ");
}
printCountingMap.put("eSuperClass", count - 1);
}
}
public void print_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition_1(org.reuseware.air.language.abstractsyntax.ConcreteNodeDefinition element, java.lang.String outertab, java.io.PrintWriter out, java.util.Map<java.lang.String, java.lang.Integer> printCountingMap){
java.lang.String localtab = outertab;
int count;
boolean iterate = true;
java.io.StringWriter sWriter = null;
java.io.PrintWriter out1 = null;
java.util.Map<java.lang.String, java.lang.Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (CsString)
out.print("=");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("members");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONCRETE_NODE_DEFINITION__MEMBERS));
java.util.List<?> list = (java.util.List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab);
}
printCountingMap.put("members", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
iterate = true;
while (iterate) {
sWriter = new java.io.StringWriter();
out1 = new java.io.PrintWriter(sWriter);
printCountingMap1 = new java.util.LinkedHashMap<java.lang.String, java.lang.Integer>(printCountingMap);
print_org_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition_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_reuseware_air_language_abstractsyntax_ConcreteNodeDefinition_1_0(org.reuseware.air.language.abstractsyntax.ConcreteNodeDefinition element, java.lang.String outertab, java.io.PrintWriter out, java.util.Map<java.lang.String, java.lang.Integer> printCountingMap){
java.lang.String localtab = outertab;
int count;
// DEFINITION PART BEGINS (CsString)
out.print(",");
out.print(" ");
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("members");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONCRETE_NODE_DEFINITION__MEMBERS));
java.util.List<?> list = (java.util.List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab);
}
printCountingMap.put("members", count - 1);
}
}
public void print_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition(org.reuseware.air.language.abstractsyntax.InterfaceNodeDefinition element, java.lang.String outertab, java.io.PrintWriter out) {
java.lang.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).
java.util.Map<java.lang.String, java.lang.Integer> printCountingMap = new java.util.LinkedHashMap<java.lang.String, java.lang.Integer>(3);
java.lang.Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERFACE_NODE_DEFINITION__NAME));
printCountingMap.put("name", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERFACE_NODE_DEFINITION__INTERFACES));
printCountingMap.put("interfaces", temp == null ? 0 : ((java.util.Collection<?>) temp).size());
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERFACE_NODE_DEFINITION__OPTIONS));
printCountingMap.put("options", temp == null ? 0 : ((java.util.Collection<?>) temp).size());
// print collected hidden tokens
int count;
boolean iterate = true;
java.io.StringWriter sWriter = null;
java.io.PrintWriter out1 = null;
java.util.Map<java.lang.String, java.lang.Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (PlaceholderUsingDefaultToken)
count = printCountingMap.get("name");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERFACE_NODE_DEFINITION__NAME));
if (o != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((java.lang.Object) o, element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERFACE_NODE_DEFINITION__NAME), element));
out.print(" ");
}
printCountingMap.put("name", count - 1);
}
// DEFINITION PART BEGINS (CsString)
out.print("=");
out.print(" ");
// DEFINITION PART BEGINS (PlaceholderUsingDefaultToken)
count = printCountingMap.get("options");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERFACE_NODE_DEFINITION__OPTIONS));
java.util.List<?> list = (java.util.List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getInterfaceNodeDefinitionOptionsReferenceResolver().deResolve((org.reuseware.air.language.abstractsyntax.Definition) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERFACE_NODE_DEFINITION__OPTIONS)), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERFACE_NODE_DEFINITION__OPTIONS), element));
out.print(" ");
}
printCountingMap.put("options", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
iterate = true;
while (iterate) {
sWriter = new java.io.StringWriter();
out1 = new java.io.PrintWriter(sWriter);
printCountingMap1 = new java.util.LinkedHashMap<java.lang.String, java.lang.Integer>(printCountingMap);
print_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition_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(";");
out.print(" ");
}
public void print_org_reuseware_air_language_abstractsyntax_InterfaceNodeDefinition_0(org.reuseware.air.language.abstractsyntax.InterfaceNodeDefinition element, java.lang.String outertab, java.io.PrintWriter out, java.util.Map<java.lang.String, java.lang.Integer> printCountingMap){
int count;
// DEFINITION PART BEGINS (CsString)
out.print("|");
out.print(" ");
// DEFINITION PART BEGINS (PlaceholderUsingDefaultToken)
count = printCountingMap.get("options");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERFACE_NODE_DEFINITION__OPTIONS));
java.util.List<?> list = (java.util.List<?>) o;
int index = list.size() - count;
if (index >= 0) {
o = list.get(index);
} else {
o = null;
}
if (o != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getInterfaceNodeDefinitionOptionsReferenceResolver().deResolve((org.reuseware.air.language.abstractsyntax.Definition) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERFACE_NODE_DEFINITION__OPTIONS)), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERFACE_NODE_DEFINITION__OPTIONS), element));
out.print(" ");
}
printCountingMap.put("options", count - 1);
}
}
public void print_org_reuseware_air_language_abstractsyntax_Attribute(org.reuseware.air.language.abstractsyntax.Attribute element, java.lang.String outertab, java.io.PrintWriter out) {
java.lang.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).
java.util.Map<java.lang.String, java.lang.Integer> printCountingMap = new java.util.LinkedHashMap<java.lang.String, java.lang.Integer>(3);
java.lang.Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ATTRIBUTE__NAME));
printCountingMap.put("name", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ATTRIBUTE__CARDINALITY));
printCountingMap.put("cardinality", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ATTRIBUTE__TYPE));
printCountingMap.put("type", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (CsString)
out.print("@");
out.print(" ");
// DEFINITION PART BEGINS (PlaceholderUsingDefaultToken)
count = printCountingMap.get("name");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ATTRIBUTE__NAME));
if (o != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((java.lang.Object) o, element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ATTRIBUTE__NAME), element));
out.print(" ");
}
printCountingMap.put("name", count - 1);
}
// DEFINITION PART BEGINS (CsString)
out.print(":");
out.print(" ");
// DEFINITION PART BEGINS (PlaceholderUsingDefaultToken)
count = printCountingMap.get("type");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ATTRIBUTE__TYPE));
if (o != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getAttributeTypeReferenceResolver().deResolve((org.eclipse.emf.ecore.EDataType) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ATTRIBUTE__TYPE)), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ATTRIBUTE__TYPE), element));
out.print(" ");
}
printCountingMap.put("type", count - 1);
}
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("cardinality");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.ATTRIBUTE__CARDINALITY));
if (o != null) {
doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab);
}
printCountingMap.put("cardinality", count - 1);
}
}
public void print_org_reuseware_air_language_abstractsyntax_Containment(org.reuseware.air.language.abstractsyntax.Containment element, java.lang.String outertab, java.io.PrintWriter out) {
java.lang.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).
java.util.Map<java.lang.String, java.lang.Integer> printCountingMap = new java.util.LinkedHashMap<java.lang.String, java.lang.Integer>(3);
java.lang.Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONTAINMENT__NAME));
printCountingMap.put("name", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONTAINMENT__CARDINALITY));
printCountingMap.put("cardinality", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONTAINMENT__TYPE));
printCountingMap.put("type", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (PlaceholderUsingDefaultToken)
count = printCountingMap.get("name");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONTAINMENT__NAME));
if (o != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((java.lang.Object) o, element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONTAINMENT__NAME), element));
out.print(" ");
}
printCountingMap.put("name", count - 1);
}
// DEFINITION PART BEGINS (CsString)
out.print(":");
out.print(" ");
// DEFINITION PART BEGINS (PlaceholderUsingDefaultToken)
count = printCountingMap.get("type");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONTAINMENT__TYPE));
if (o != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getContainmentTypeReferenceResolver().deResolve((org.reuseware.air.language.abstractsyntax.Definition) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONTAINMENT__TYPE)), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONTAINMENT__TYPE), element));
out.print(" ");
}
printCountingMap.put("type", count - 1);
}
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("cardinality");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.CONTAINMENT__CARDINALITY));
if (o != null) {
doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab);
}
printCountingMap.put("cardinality", count - 1);
}
}
public void print_org_reuseware_air_language_abstractsyntax_InternalReference(org.reuseware.air.language.abstractsyntax.InternalReference element, java.lang.String outertab, java.io.PrintWriter out) {
java.lang.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).
java.util.Map<java.lang.String, java.lang.Integer> printCountingMap = new java.util.LinkedHashMap<java.lang.String, java.lang.Integer>(4);
java.lang.Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__NAME));
printCountingMap.put("name", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__CARDINALITY));
printCountingMap.put("cardinality", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__TYPE));
printCountingMap.put("type", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__OPPOSITE));
printCountingMap.put("opposite", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
java.io.StringWriter sWriter = null;
java.io.PrintWriter out1 = null;
java.util.Map<java.lang.String, java.lang.Integer> printCountingMap1 = null;
// DEFINITION PART BEGINS (PlaceholderUsingDefaultToken)
count = printCountingMap.get("name");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__NAME));
if (o != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((java.lang.Object) o, element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__NAME), element));
out.print(" ");
}
printCountingMap.put("name", count - 1);
}
// DEFINITION PART BEGINS (CsString)
out.print("::");
out.print(" ");
// DEFINITION PART BEGINS (PlaceholderUsingDefaultToken)
count = printCountingMap.get("type");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__TYPE));
if (o != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getInternalReferenceTypeReferenceResolver().deResolve((org.reuseware.air.language.abstractsyntax.Definition) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__TYPE)), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__TYPE), element));
out.print(" ");
}
printCountingMap.put("type", count - 1);
}
// DEFINITION PART BEGINS (CompoundDefinition)
sWriter = new java.io.StringWriter();
out1 = new java.io.PrintWriter(sWriter);
printCountingMap1 = new java.util.LinkedHashMap<java.lang.String, java.lang.Integer>(printCountingMap);
print_org_reuseware_air_language_abstractsyntax_InternalReference_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("cardinality");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__CARDINALITY));
if (o != null) {
doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab);
}
printCountingMap.put("cardinality", count - 1);
}
}
public void print_org_reuseware_air_language_abstractsyntax_InternalReference_0(org.reuseware.air.language.abstractsyntax.InternalReference element, java.lang.String outertab, java.io.PrintWriter out, java.util.Map<java.lang.String, java.lang.Integer> printCountingMap){
int count;
// DEFINITION PART BEGINS (CsString)
out.print("->");
out.print(" ");
// DEFINITION PART BEGINS (PlaceholderUsingDefaultToken)
count = printCountingMap.get("opposite");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__OPPOSITE));
if (o != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getInternalReferenceOppositeReferenceResolver().deResolve((org.reuseware.air.language.abstractsyntax.InternalReference) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__OPPOSITE)), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.INTERNAL_REFERENCE__OPPOSITE), element));
out.print(" ");
}
printCountingMap.put("opposite", count - 1);
}
}
public void print_org_reuseware_air_language_abstractsyntax_ExternalReference(org.reuseware.air.language.abstractsyntax.ExternalReference element, java.lang.String outertab, java.io.PrintWriter out) {
java.lang.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).
java.util.Map<java.lang.String, java.lang.Integer> printCountingMap = new java.util.LinkedHashMap<java.lang.String, java.lang.Integer>(3);
java.lang.Object temp;
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.EXTERNAL_REFERENCE__NAME));
printCountingMap.put("name", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.EXTERNAL_REFERENCE__CARDINALITY));
printCountingMap.put("cardinality", temp == null ? 0 : 1);
temp = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.EXTERNAL_REFERENCE__TYPE));
printCountingMap.put("type", temp == null ? 0 : 1);
// print collected hidden tokens
int count;
// DEFINITION PART BEGINS (PlaceholderUsingDefaultToken)
count = printCountingMap.get("name");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.EXTERNAL_REFERENCE__NAME));
if (o != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT");
resolver.setOptions(getOptions());
out.print(resolver.deResolve((java.lang.Object) o, element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.EXTERNAL_REFERENCE__NAME), element));
out.print(" ");
}
printCountingMap.put("name", count - 1);
}
// DEFINITION PART BEGINS (CsString)
out.print("::");
out.print(" ");
// DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken)
count = printCountingMap.get("type");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.EXTERNAL_REFERENCE__TYPE));
if (o != null) {
org.reuseware.air.language.abstractsyntax.resource.as.IAsTokenResolver resolver = tokenResolverFactory.createTokenResolver("QNAME");
resolver.setOptions(getOptions());
out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getExternalReferenceTypeReferenceResolver().deResolve((org.eclipse.emf.ecore.EClass) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.EXTERNAL_REFERENCE__TYPE)), element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.EXTERNAL_REFERENCE__TYPE), element));
out.print(" ");
}
printCountingMap.put("type", count - 1);
}
// DEFINITION PART BEGINS (Containment)
count = printCountingMap.get("cardinality");
if (count > 0) {
Object o = element.eGet(element.eClass().getEStructuralFeature(org.reuseware.air.language.abstractsyntax.AbstractsyntaxPackage.EXTERNAL_REFERENCE__CARDINALITY));
if (o != null) {
doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab);
}
printCountingMap.put("cardinality", count - 1);
}
}
public void print_org_reuseware_air_language_abstractsyntax_PLUS(org.reuseware.air.language.abstractsyntax.PLUS element, java.lang.String outertab, java.io.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("+");
out.print(" ");
}
public void print_org_reuseware_air_language_abstractsyntax_STAR(org.reuseware.air.language.abstractsyntax.STAR element, java.lang.String outertab, java.io.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("*");
out.print(" ");
}
public void print_org_reuseware_air_language_abstractsyntax_QUESTIONMARK(org.reuseware.air.language.abstractsyntax.QUESTIONMARK element, java.lang.String outertab, java.io.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("?");
out.print(" ");
}
}