/** * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * See the NOTICE file distributed with this work for additional * information regarding copyright ownership. */ package org.sintef.thingml.resource.thingml.mopp; public class ThingmlPrinter implements org.sintef.thingml.resource.thingml.IThingmlTextPrinter { protected org.sintef.thingml.resource.thingml.IThingmlTokenResolverFactory tokenResolverFactory = new org.sintef.thingml.resource.thingml.mopp.ThingmlTokenResolverFactory(); protected java.io.OutputStream outputStream; /** * Holds the resource that is associated with this printer. This may be null if * the printer is used stand alone. */ private org.sintef.thingml.resource.thingml.IThingmlTextResource resource; private java.util.Map<?, ?> options; private String encoding = System.getProperty("file.encoding"); public ThingmlPrinter(java.io.OutputStream outputStream, org.sintef.thingml.resource.thingml.IThingmlTextResource resource) { super(); this.outputStream = outputStream; this.resource = resource; } protected int matchCount(java.util.Map<String, Integer> featureCounter, java.util.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(org.eclipse.emf.ecore.EObject element, java.io.PrintWriter out, 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.sintef.thingml.ThingMLModel) { print_org_sintef_thingml_ThingMLModel((org.sintef.thingml.ThingMLModel) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.Message) { print_org_sintef_thingml_Message((org.sintef.thingml.Message) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.Function) { print_org_sintef_thingml_Function((org.sintef.thingml.Function) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.Thing) { print_org_sintef_thingml_Thing((org.sintef.thingml.Thing) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.RequiredPort) { print_org_sintef_thingml_RequiredPort((org.sintef.thingml.RequiredPort) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.ProvidedPort) { print_org_sintef_thingml_ProvidedPort((org.sintef.thingml.ProvidedPort) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.InternalPort) { print_org_sintef_thingml_InternalPort((org.sintef.thingml.InternalPort) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.Property) { print_org_sintef_thingml_Property((org.sintef.thingml.Property) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.Parameter) { print_org_sintef_thingml_Parameter((org.sintef.thingml.Parameter) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.PrimitiveType) { print_org_sintef_thingml_PrimitiveType((org.sintef.thingml.PrimitiveType) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.ObjectType) { print_org_sintef_thingml_ObjectType((org.sintef.thingml.ObjectType) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.Protocol) { print_org_sintef_thingml_Protocol((org.sintef.thingml.Protocol) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.Enumeration) { print_org_sintef_thingml_Enumeration((org.sintef.thingml.Enumeration) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.EnumerationLiteral) { print_org_sintef_thingml_EnumerationLiteral((org.sintef.thingml.EnumerationLiteral) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.PlatformAnnotation) { print_org_sintef_thingml_PlatformAnnotation((org.sintef.thingml.PlatformAnnotation) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.StateMachine) { print_org_sintef_thingml_StateMachine((org.sintef.thingml.StateMachine) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.FinalState) { print_org_sintef_thingml_FinalState((org.sintef.thingml.FinalState) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.ParallelRegion) { print_org_sintef_thingml_ParallelRegion((org.sintef.thingml.ParallelRegion) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.Session) { print_org_sintef_thingml_Session((org.sintef.thingml.Session) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.Transition) { print_org_sintef_thingml_Transition((org.sintef.thingml.Transition) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.InternalTransition) { print_org_sintef_thingml_InternalTransition((org.sintef.thingml.InternalTransition) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.ReceiveMessage) { print_org_sintef_thingml_ReceiveMessage((org.sintef.thingml.ReceiveMessage) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.PropertyAssign) { print_org_sintef_thingml_PropertyAssign((org.sintef.thingml.PropertyAssign) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.Increment) { print_org_sintef_thingml_Increment((org.sintef.thingml.Increment) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.Decrement) { print_org_sintef_thingml_Decrement((org.sintef.thingml.Decrement) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.Configuration) { print_org_sintef_thingml_Configuration((org.sintef.thingml.Configuration) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.Instance) { print_org_sintef_thingml_Instance((org.sintef.thingml.Instance) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.Connector) { print_org_sintef_thingml_Connector((org.sintef.thingml.Connector) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.ExternalConnector) { print_org_sintef_thingml_ExternalConnector((org.sintef.thingml.ExternalConnector) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.ConfigPropertyAssign) { print_org_sintef_thingml_ConfigPropertyAssign((org.sintef.thingml.ConfigPropertyAssign) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.InstanceRef) { print_org_sintef_thingml_InstanceRef((org.sintef.thingml.InstanceRef) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.SendAction) { print_org_sintef_thingml_SendAction((org.sintef.thingml.SendAction) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.StartSession) { print_org_sintef_thingml_StartSession((org.sintef.thingml.StartSession) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.StartStream) { print_org_sintef_thingml_StartStream((org.sintef.thingml.StartStream) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.StopStream) { print_org_sintef_thingml_StopStream((org.sintef.thingml.StopStream) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.VariableAssignment) { print_org_sintef_thingml_VariableAssignment((org.sintef.thingml.VariableAssignment) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.ActionBlock) { print_org_sintef_thingml_ActionBlock((org.sintef.thingml.ActionBlock) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.LocalVariable) { print_org_sintef_thingml_LocalVariable((org.sintef.thingml.LocalVariable) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.ExternStatement) { print_org_sintef_thingml_ExternStatement((org.sintef.thingml.ExternStatement) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.ConditionalAction) { print_org_sintef_thingml_ConditionalAction((org.sintef.thingml.ConditionalAction) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.LoopAction) { print_org_sintef_thingml_LoopAction((org.sintef.thingml.LoopAction) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.PrintAction) { print_org_sintef_thingml_PrintAction((org.sintef.thingml.PrintAction) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.ErrorAction) { print_org_sintef_thingml_ErrorAction((org.sintef.thingml.ErrorAction) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.ReturnAction) { print_org_sintef_thingml_ReturnAction((org.sintef.thingml.ReturnAction) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.FunctionCallStatement) { print_org_sintef_thingml_FunctionCallStatement((org.sintef.thingml.FunctionCallStatement) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.MessageParameter) { print_org_sintef_thingml_MessageParameter((org.sintef.thingml.MessageParameter) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.Filter) { print_org_sintef_thingml_Filter((org.sintef.thingml.Filter) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.LengthWindow) { print_org_sintef_thingml_LengthWindow((org.sintef.thingml.LengthWindow) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.TimeWindow) { print_org_sintef_thingml_TimeWindow((org.sintef.thingml.TimeWindow) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.SimpleSource) { print_org_sintef_thingml_SimpleSource((org.sintef.thingml.SimpleSource) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.JoinSources) { print_org_sintef_thingml_JoinSources((org.sintef.thingml.JoinSources) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.MergeSources) { print_org_sintef_thingml_MergeSources((org.sintef.thingml.MergeSources) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.Stream) { print_org_sintef_thingml_Stream((org.sintef.thingml.Stream) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.SimpleParamRef) { print_org_sintef_thingml_SimpleParamRef((org.sintef.thingml.SimpleParamRef) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.ArrayParamRef) { print_org_sintef_thingml_ArrayParamRef((org.sintef.thingml.ArrayParamRef) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.LengthArray) { print_org_sintef_thingml_LengthArray((org.sintef.thingml.LengthArray) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.OrExpression) { print_org_sintef_thingml_OrExpression((org.sintef.thingml.OrExpression) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.AndExpression) { print_org_sintef_thingml_AndExpression((org.sintef.thingml.AndExpression) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.LowerExpression) { print_org_sintef_thingml_LowerExpression((org.sintef.thingml.LowerExpression) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.GreaterExpression) { print_org_sintef_thingml_GreaterExpression((org.sintef.thingml.GreaterExpression) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.LowerOrEqualExpression) { print_org_sintef_thingml_LowerOrEqualExpression((org.sintef.thingml.LowerOrEqualExpression) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.GreaterOrEqualExpression) { print_org_sintef_thingml_GreaterOrEqualExpression((org.sintef.thingml.GreaterOrEqualExpression) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.EqualsExpression) { print_org_sintef_thingml_EqualsExpression((org.sintef.thingml.EqualsExpression) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.NotEqualsExpression) { print_org_sintef_thingml_NotEqualsExpression((org.sintef.thingml.NotEqualsExpression) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.PlusExpression) { print_org_sintef_thingml_PlusExpression((org.sintef.thingml.PlusExpression) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.MinusExpression) { print_org_sintef_thingml_MinusExpression((org.sintef.thingml.MinusExpression) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.TimesExpression) { print_org_sintef_thingml_TimesExpression((org.sintef.thingml.TimesExpression) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.DivExpression) { print_org_sintef_thingml_DivExpression((org.sintef.thingml.DivExpression) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.ModExpression) { print_org_sintef_thingml_ModExpression((org.sintef.thingml.ModExpression) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.UnaryMinus) { print_org_sintef_thingml_UnaryMinus((org.sintef.thingml.UnaryMinus) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.NotExpression) { print_org_sintef_thingml_NotExpression((org.sintef.thingml.NotExpression) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.Reference) { print_org_sintef_thingml_Reference((org.sintef.thingml.Reference) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.ExpressionGroup) { print_org_sintef_thingml_ExpressionGroup((org.sintef.thingml.ExpressionGroup) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.PropertyReference) { print_org_sintef_thingml_PropertyReference((org.sintef.thingml.PropertyReference) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.IntegerLiteral) { print_org_sintef_thingml_IntegerLiteral((org.sintef.thingml.IntegerLiteral) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.DoubleLiteral) { print_org_sintef_thingml_DoubleLiteral((org.sintef.thingml.DoubleLiteral) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.StringLiteral) { print_org_sintef_thingml_StringLiteral((org.sintef.thingml.StringLiteral) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.BooleanLiteral) { print_org_sintef_thingml_BooleanLiteral((org.sintef.thingml.BooleanLiteral) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.EnumLiteralRef) { print_org_sintef_thingml_EnumLiteralRef((org.sintef.thingml.EnumLiteralRef) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.ArrayIndex) { print_org_sintef_thingml_ArrayIndex((org.sintef.thingml.ArrayIndex) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.FunctionCallExpression) { print_org_sintef_thingml_FunctionCallExpression((org.sintef.thingml.FunctionCallExpression) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.ExternExpression) { print_org_sintef_thingml_ExternExpression((org.sintef.thingml.ExternExpression) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.CompositeState) { print_org_sintef_thingml_CompositeState((org.sintef.thingml.CompositeState) element, globaltab, out); return; } if (element instanceof org.sintef.thingml.State) { print_org_sintef_thingml_State((org.sintef.thingml.State) element, globaltab, out); return; } addWarningToResource("The printer can not handle " + element.eClass().getName() + " elements", element); } protected org.sintef.thingml.resource.thingml.mopp.ThingmlReferenceResolverSwitch getReferenceResolverSwitch() { return (org.sintef.thingml.resource.thingml.mopp.ThingmlReferenceResolverSwitch) new org.sintef.thingml.resource.thingml.mopp.ThingmlMetaInformation().getReferenceResolverSwitch(); } protected void addWarningToResource(final String errorMessage, org.eclipse.emf.ecore.EObject cause) { org.sintef.thingml.resource.thingml.IThingmlTextResource resource = getResource(); if (resource == null) { // the resource can be null if the printer is used stand alone return; } resource.addProblem(new org.sintef.thingml.resource.thingml.mopp.ThingmlProblem(errorMessage, org.sintef.thingml.resource.thingml.ThingmlEProblemType.PRINT_PROBLEM, org.sintef.thingml.resource.thingml.ThingmlEProblemSeverity.WARNING), cause); } public void setOptions(java.util.Map<?,?> options) { this.options = options; } public java.util.Map<?,?> getOptions() { return options; } public void setEncoding(String encoding) { if (encoding != null) { this.encoding = encoding; } } public String getEncoding() { return encoding; } public org.sintef.thingml.resource.thingml.IThingmlTextResource 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) throws java.io.IOException { java.io.PrintWriter out = new java.io.PrintWriter(new java.io.OutputStreamWriter(new java.io.BufferedOutputStream(outputStream), encoding)); doPrint(element, out, ""); out.flush(); out.close(); } public void print_org_sintef_thingml_ThingMLModel(org.sintef.thingml.ThingMLModel element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(4); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING_ML_MODEL__TYPES)); printCountingMap.put("types", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING_ML_MODEL__IMPORTS)); printCountingMap.put("imports", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING_ML_MODEL__CONFIGS)); printCountingMap.put("configs", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING_ML_MODEL__PROTOCOLS)); printCountingMap.put("protocols", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); // print collected hidden tokens boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_ThingMLModel_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 (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_ThingMLModel_1(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_sintef_thingml_ThingMLModel_0(org.sintef.thingml.ThingMLModel element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("import"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken) count = printCountingMap.get("imports"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING_ML_MODEL__IMPORTS)); 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.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("STRING_LITERAL"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getThingMLModelImportsReferenceResolver().deResolve((org.sintef.thingml.ThingMLModel) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING_ML_MODEL__IMPORTS)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING_ML_MODEL__IMPORTS), element)); } printCountingMap.put("imports", count - 1); } } public void print_org_sintef_thingml_ThingMLModel_1(org.sintef.thingml.ThingMLModel element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; // DEFINITION PART BEGINS (LineBreak) out.println(); out.print(localtab); // DEFINITION PART BEGINS (CompoundDefinition) print_org_sintef_thingml_ThingMLModel_1_0(element, localtab, out, printCountingMap); } public void print_org_sintef_thingml_ThingMLModel_1_0(org.sintef.thingml.ThingMLModel element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; int alt = -1; alt = 0; int matches = matchCount(printCountingMap, java.util.Arrays.asList( "types" )); int tempMatchCount; tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "configs" )); if (tempMatchCount > matches) { alt = 1; matches = tempMatchCount; } tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "protocols" )); if (tempMatchCount > matches) { alt = 2; matches = tempMatchCount; } switch(alt) { case 1: { // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("configs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING_ML_MODEL__CONFIGS)); 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("configs", count - 1); } } break; case 2: { // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("protocols"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING_ML_MODEL__PROTOCOLS)); 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("protocols", count - 1); } } break; default: // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("types"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING_ML_MODEL__TYPES)); 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("types", count - 1); } } } public void print_org_sintef_thingml_Message(org.sintef.thingml.Message element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(3); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MESSAGE__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MESSAGE__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MESSAGE__PARAMETERS)); printCountingMap.put("parameters", 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<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("message"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MESSAGE__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MESSAGE__NAME), element)); } printCountingMap.put("name", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("("); // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Message_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(")"); // DEFINITION PART BEGINS (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Message_1(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 (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Message_2(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_sintef_thingml_Message_0(org.sintef.thingml.Message element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("parameters"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MESSAGE__PARAMETERS)); 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("parameters", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_Message_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_sintef_thingml_Message_0_0(org.sintef.thingml.Message element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (CsString) out.print(","); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("parameters"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MESSAGE__PARAMETERS)); 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("parameters", count - 1); } } public void print_org_sintef_thingml_Message_1(org.sintef.thingml.Message element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MESSAGE__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_Message_2(org.sintef.thingml.Message element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { // DEFINITION PART BEGINS (CsString) out.print(";"); } public void print_org_sintef_thingml_Function(org.sintef.thingml.Function element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(7); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION__TYPE)); printCountingMap.put("type", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION__CARDINALITY)); printCountingMap.put("cardinality", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION__IS_ARRAY)); printCountingMap.put("isArray", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION__PARAMETERS)); printCountingMap.put("parameters", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION__BODY)); printCountingMap.put("body", temp == null ? 0 : 1); // print collected hidden tokens int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("function"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION__NAME), element)); } printCountingMap.put("name", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("("); // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Function_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(")"); // DEFINITION PART BEGINS (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Function_1(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 (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Function_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) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("body"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION__BODY)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("body", count - 1); } } public void print_org_sintef_thingml_Function_0(org.sintef.thingml.Function element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("parameters"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION__PARAMETERS)); 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("parameters", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_Function_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_sintef_thingml_Function_0_0(org.sintef.thingml.Function element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (CsString) out.print(","); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("parameters"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION__PARAMETERS)); 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("parameters", count - 1); } } public void print_org_sintef_thingml_Function_1(org.sintef.thingml.Function element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_Function_2(org.sintef.thingml.Function element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print(":"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("type"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION__TYPE)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getTypedElementTypeReferenceResolver().deResolve((org.sintef.thingml.Type) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION__TYPE)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION__TYPE), element)); } 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<String, Integer>(printCountingMap); print_org_sintef_thingml_Function_2_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_sintef_thingml_Function_2_0(org.sintef.thingml.Function element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int alt = -1; alt = 0; int matches = matchCount(printCountingMap, java.util.Arrays.asList( "isArray" , "cardinality" )); int tempMatchCount; tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "isArray" )); if (tempMatchCount > matches) { alt = 1; matches = tempMatchCount; } switch(alt) { case 1: { // DEFINITION PART BEGINS (CompoundDefinition) print_org_sintef_thingml_Function_2_0_1(element, localtab, out, printCountingMap); } break; default: // DEFINITION PART BEGINS (CompoundDefinition) print_org_sintef_thingml_Function_2_0_0(element, localtab, out, printCountingMap); } } public void print_org_sintef_thingml_Function_2_0_0(org.sintef.thingml.Function element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken) count = printCountingMap.get("isArray"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION__IS_ARRAY)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("T_ARRAY"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION__IS_ARRAY), element)); } printCountingMap.put("isArray", count - 1); } // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("cardinality"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION__CARDINALITY)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("cardinality", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("]"); } public void print_org_sintef_thingml_Function_2_0_1(org.sintef.thingml.Function element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (BooleanTerminal) count = printCountingMap.get("isArray"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION__IS_ARRAY)); if (o != null) { } printCountingMap.put("isArray", count - 1); } } public void print_org_sintef_thingml_Thing(org.sintef.thingml.Thing element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(11); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__PROPERTIES)); printCountingMap.put("properties", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__FRAGMENT)); printCountingMap.put("fragment", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__PORTS)); printCountingMap.put("ports", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__BEHAVIOUR)); printCountingMap.put("behaviour", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__INCLUDES)); printCountingMap.put("includes", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__ASSIGN)); printCountingMap.put("assign", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__MESSAGES)); printCountingMap.put("messages", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__FUNCTIONS)); printCountingMap.put("functions", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__STREAMS)); printCountingMap.put("streams", 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<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("thing"); // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Thing_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) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__NAME), element)); } 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<String, Integer>(printCountingMap); print_org_sintef_thingml_Thing_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 (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Thing_2(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("{"); // DEFINITION PART BEGINS (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Thing_3(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("}"); } public void print_org_sintef_thingml_Thing_0(org.sintef.thingml.Thing element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken) count = printCountingMap.get("fragment"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__FRAGMENT)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("T_ASPECT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__FRAGMENT), element)); } printCountingMap.put("fragment", count - 1); } } public void print_org_sintef_thingml_Thing_1(org.sintef.thingml.Thing element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("includes"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("includes"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__INCLUDES)); 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.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getThingIncludesReferenceResolver().deResolve((org.sintef.thingml.Thing) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__INCLUDES)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__INCLUDES), element)); } printCountingMap.put("includes", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_Thing_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_sintef_thingml_Thing_1_0(org.sintef.thingml.Thing element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (CsString) out.print(","); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("includes"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__INCLUDES)); 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.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getThingIncludesReferenceResolver().deResolve((org.sintef.thingml.Thing) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__INCLUDES)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__INCLUDES), element)); } printCountingMap.put("includes", count - 1); } } public void print_org_sintef_thingml_Thing_2(org.sintef.thingml.Thing element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_Thing_3(org.sintef.thingml.Thing element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; int alt = -1; alt = 0; int matches = matchCount(printCountingMap, java.util.Arrays.asList( "messages" )); int tempMatchCount; tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "functions" )); if (tempMatchCount > matches) { alt = 1; matches = tempMatchCount; } tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "properties" )); if (tempMatchCount > matches) { alt = 2; matches = tempMatchCount; } tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "assign" )); if (tempMatchCount > matches) { alt = 3; matches = tempMatchCount; } tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "ports" )); if (tempMatchCount > matches) { alt = 4; matches = tempMatchCount; } tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "behaviour" )); if (tempMatchCount > matches) { alt = 5; matches = tempMatchCount; } tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "streams" )); if (tempMatchCount > matches) { alt = 6; matches = tempMatchCount; } switch(alt) { case 1: { // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("functions"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__FUNCTIONS)); 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("functions", count - 1); } } break; case 2: { // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("properties"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__PROPERTIES)); 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("properties", count - 1); } } break; case 3: { // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("assign"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__ASSIGN)); 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("assign", count - 1); } } break; case 4: { // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("ports"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__PORTS)); 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("ports", count - 1); } } break; case 5: { // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("behaviour"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__BEHAVIOUR)); 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("behaviour", count - 1); } } break; case 6: { // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("streams"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__STREAMS)); 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("streams", count - 1); } } break; default: // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("messages"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.THING__MESSAGES)); 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("messages", count - 1); } } } public void print_org_sintef_thingml_RequiredPort(org.sintef.thingml.RequiredPort element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(6); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__OWNER)); printCountingMap.put("owner", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__RECEIVES)); printCountingMap.put("receives", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__SENDS)); printCountingMap.put("sends", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__OPTIONAL)); printCountingMap.put("optional", temp == null ? 0 : 1); // print collected hidden tokens int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (LineBreak) localtab += " "; 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<String, Integer>(printCountingMap); print_org_sintef_thingml_RequiredPort_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("required"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("port"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__NAME), element)); } printCountingMap.put("name", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_RequiredPort_1(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("{"); // DEFINITION PART BEGINS (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_RequiredPort_2(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("}"); } public void print_org_sintef_thingml_RequiredPort_0(org.sintef.thingml.RequiredPort element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken) count = printCountingMap.get("optional"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__OPTIONAL)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("T_OPTIONAL"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__OPTIONAL), element)); } printCountingMap.put("optional", count - 1); } } public void print_org_sintef_thingml_RequiredPort_1(org.sintef.thingml.RequiredPort element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_RequiredPort_2(org.sintef.thingml.RequiredPort element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; int alt = -1; alt = 0; int matches = matchCount(printCountingMap, java.util.Arrays.asList( "receives" )); int tempMatchCount; tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "sends" )); if (tempMatchCount > matches) { alt = 1; matches = tempMatchCount; } switch(alt) { case 1: { boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("sends"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("sends"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__SENDS)); 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.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getPortSendsReferenceResolver().deResolve((org.sintef.thingml.Message) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__SENDS)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__SENDS), element)); } printCountingMap.put("sends", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_RequiredPort_2_1(element, localtab, out1, printCountingMap1); if (printCountingMap.equals(printCountingMap1)) { iterate = false; out1.close(); } else { out1.flush(); out1.close(); out.print(sWriter.toString()); printCountingMap.putAll(printCountingMap1); } } } break; default: boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("receives"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("receives"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__RECEIVES)); 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.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getPortReceivesReferenceResolver().deResolve((org.sintef.thingml.Message) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__RECEIVES)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__RECEIVES), element)); } printCountingMap.put("receives", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_RequiredPort_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_sintef_thingml_RequiredPort_2_0(org.sintef.thingml.RequiredPort element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (CsString) out.print(","); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("receives"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__RECEIVES)); 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.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getPortReceivesReferenceResolver().deResolve((org.sintef.thingml.Message) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__RECEIVES)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__RECEIVES), element)); } printCountingMap.put("receives", count - 1); } } public void print_org_sintef_thingml_RequiredPort_2_1(org.sintef.thingml.RequiredPort element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (CsString) out.print(","); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("sends"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__SENDS)); 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.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getPortSendsReferenceResolver().deResolve((org.sintef.thingml.Message) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__SENDS)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REQUIRED_PORT__SENDS), element)); } printCountingMap.put("sends", count - 1); } } public void print_org_sintef_thingml_ProvidedPort(org.sintef.thingml.ProvidedPort element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(5); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROVIDED_PORT__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROVIDED_PORT__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROVIDED_PORT__OWNER)); printCountingMap.put("owner", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROVIDED_PORT__RECEIVES)); printCountingMap.put("receives", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROVIDED_PORT__SENDS)); printCountingMap.put("sends", 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<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("provided"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("port"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROVIDED_PORT__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROVIDED_PORT__NAME), element)); } printCountingMap.put("name", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_ProvidedPort_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("{"); // DEFINITION PART BEGINS (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_ProvidedPort_1(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("}"); } public void print_org_sintef_thingml_ProvidedPort_0(org.sintef.thingml.ProvidedPort element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROVIDED_PORT__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_ProvidedPort_1(org.sintef.thingml.ProvidedPort element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; int alt = -1; alt = 0; int matches = matchCount(printCountingMap, java.util.Arrays.asList( "receives" )); int tempMatchCount; tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "sends" )); if (tempMatchCount > matches) { alt = 1; matches = tempMatchCount; } switch(alt) { case 1: { boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("sends"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("sends"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROVIDED_PORT__SENDS)); 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.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getPortSendsReferenceResolver().deResolve((org.sintef.thingml.Message) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROVIDED_PORT__SENDS)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROVIDED_PORT__SENDS), element)); } printCountingMap.put("sends", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_ProvidedPort_1_1(element, localtab, out1, printCountingMap1); if (printCountingMap.equals(printCountingMap1)) { iterate = false; out1.close(); } else { out1.flush(); out1.close(); out.print(sWriter.toString()); printCountingMap.putAll(printCountingMap1); } } } break; default: boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("receives"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("receives"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROVIDED_PORT__RECEIVES)); 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.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getPortReceivesReferenceResolver().deResolve((org.sintef.thingml.Message) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROVIDED_PORT__RECEIVES)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROVIDED_PORT__RECEIVES), element)); } printCountingMap.put("receives", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_ProvidedPort_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_sintef_thingml_ProvidedPort_1_0(org.sintef.thingml.ProvidedPort element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (CsString) out.print(","); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("receives"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROVIDED_PORT__RECEIVES)); 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.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getPortReceivesReferenceResolver().deResolve((org.sintef.thingml.Message) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROVIDED_PORT__RECEIVES)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROVIDED_PORT__RECEIVES), element)); } printCountingMap.put("receives", count - 1); } } public void print_org_sintef_thingml_ProvidedPort_1_1(org.sintef.thingml.ProvidedPort element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (CsString) out.print(","); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("sends"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROVIDED_PORT__SENDS)); 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.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getPortSendsReferenceResolver().deResolve((org.sintef.thingml.Message) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROVIDED_PORT__SENDS)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROVIDED_PORT__SENDS), element)); } printCountingMap.put("sends", count - 1); } } public void print_org_sintef_thingml_InternalPort(org.sintef.thingml.InternalPort element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(5); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_PORT__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_PORT__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_PORT__OWNER)); printCountingMap.put("owner", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_PORT__RECEIVES)); printCountingMap.put("receives", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_PORT__SENDS)); printCountingMap.put("sends", 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<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("internal"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("port"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_PORT__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_PORT__NAME), element)); } printCountingMap.put("name", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_InternalPort_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("{"); // DEFINITION PART BEGINS (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_InternalPort_1(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("}"); } public void print_org_sintef_thingml_InternalPort_0(org.sintef.thingml.InternalPort element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_PORT__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_InternalPort_1(org.sintef.thingml.InternalPort element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; int alt = -1; alt = 0; int matches = matchCount(printCountingMap, java.util.Arrays.asList( "receives" )); int tempMatchCount; tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "sends" )); if (tempMatchCount > matches) { alt = 1; matches = tempMatchCount; } switch(alt) { case 1: { boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("sends"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("sends"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_PORT__SENDS)); 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.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getPortSendsReferenceResolver().deResolve((org.sintef.thingml.Message) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_PORT__SENDS)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_PORT__SENDS), element)); } printCountingMap.put("sends", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_InternalPort_1_1(element, localtab, out1, printCountingMap1); if (printCountingMap.equals(printCountingMap1)) { iterate = false; out1.close(); } else { out1.flush(); out1.close(); out.print(sWriter.toString()); printCountingMap.putAll(printCountingMap1); } } } break; default: boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("receives"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("receives"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_PORT__RECEIVES)); 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.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getPortReceivesReferenceResolver().deResolve((org.sintef.thingml.Message) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_PORT__RECEIVES)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_PORT__RECEIVES), element)); } printCountingMap.put("receives", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_InternalPort_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_sintef_thingml_InternalPort_1_0(org.sintef.thingml.InternalPort element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (CsString) out.print(","); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("receives"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_PORT__RECEIVES)); 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.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getPortReceivesReferenceResolver().deResolve((org.sintef.thingml.Message) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_PORT__RECEIVES)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_PORT__RECEIVES), element)); } printCountingMap.put("receives", count - 1); } } public void print_org_sintef_thingml_InternalPort_1_1(org.sintef.thingml.InternalPort element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (CsString) out.print(","); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("sends"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_PORT__SENDS)); 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.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getPortSendsReferenceResolver().deResolve((org.sintef.thingml.Message) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_PORT__SENDS)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_PORT__SENDS), element)); } printCountingMap.put("sends", count - 1); } } public void print_org_sintef_thingml_Property(org.sintef.thingml.Property element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(7); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY__TYPE)); printCountingMap.put("type", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY__CARDINALITY)); printCountingMap.put("cardinality", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY__IS_ARRAY)); printCountingMap.put("isArray", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY__INIT)); printCountingMap.put("init", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY__CHANGEABLE)); printCountingMap.put("changeable", temp == null ? 0 : 1); // print collected hidden tokens int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (LineBreak) localtab += " "; 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<String, Integer>(printCountingMap); print_org_sintef_thingml_Property_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("property"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY__NAME), element)); } printCountingMap.put("name", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print(":"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("type"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY__TYPE)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getTypedElementTypeReferenceResolver().deResolve((org.sintef.thingml.Type) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY__TYPE)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY__TYPE), element)); } 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<String, Integer>(printCountingMap); print_org_sintef_thingml_Property_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 (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Property_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 (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Property_3(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_sintef_thingml_Property_0(org.sintef.thingml.Property element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken) count = printCountingMap.get("changeable"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY__CHANGEABLE)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("T_READONLY"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY__CHANGEABLE), element)); } printCountingMap.put("changeable", count - 1); } } public void print_org_sintef_thingml_Property_1(org.sintef.thingml.Property element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int alt = -1; alt = 0; int matches = matchCount(printCountingMap, java.util.Arrays.asList( "isArray" , "cardinality" )); int tempMatchCount; tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "isArray" )); if (tempMatchCount > matches) { alt = 1; matches = tempMatchCount; } switch(alt) { case 1: { // DEFINITION PART BEGINS (CompoundDefinition) print_org_sintef_thingml_Property_1_1(element, localtab, out, printCountingMap); } break; default: // DEFINITION PART BEGINS (CompoundDefinition) print_org_sintef_thingml_Property_1_0(element, localtab, out, printCountingMap); } } public void print_org_sintef_thingml_Property_1_0(org.sintef.thingml.Property element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken) count = printCountingMap.get("isArray"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY__IS_ARRAY)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("T_ARRAY"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY__IS_ARRAY), element)); } printCountingMap.put("isArray", count - 1); } // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("cardinality"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY__CARDINALITY)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("cardinality", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("]"); } public void print_org_sintef_thingml_Property_1_1(org.sintef.thingml.Property element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (BooleanTerminal) count = printCountingMap.get("isArray"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY__IS_ARRAY)); if (o != null) { } printCountingMap.put("isArray", count - 1); } } public void print_org_sintef_thingml_Property_2(org.sintef.thingml.Property element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("="); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("init"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY__INIT)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("init", count - 1); } } public void print_org_sintef_thingml_Property_3(org.sintef.thingml.Property element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_Parameter(org.sintef.thingml.Parameter element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(5); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARAMETER__TYPE)); printCountingMap.put("type", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARAMETER__CARDINALITY)); printCountingMap.put("cardinality", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARAMETER__IS_ARRAY)); printCountingMap.put("isArray", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARAMETER__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARAMETER__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); // print collected hidden tokens int count; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARAMETER__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARAMETER__NAME), element)); } printCountingMap.put("name", count - 1); } // DEFINITION PART BEGINS (CsString) out.print(":"); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("type"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARAMETER__TYPE)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getTypedElementTypeReferenceResolver().deResolve((org.sintef.thingml.Type) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARAMETER__TYPE)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARAMETER__TYPE), element)); } 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<String, Integer>(printCountingMap); print_org_sintef_thingml_Parameter_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_sintef_thingml_Parameter_0(org.sintef.thingml.Parameter element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int alt = -1; alt = 0; int matches = matchCount(printCountingMap, java.util.Arrays.asList( "isArray" , "cardinality" )); int tempMatchCount; tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "isArray" )); if (tempMatchCount > matches) { alt = 1; matches = tempMatchCount; } switch(alt) { case 1: { // DEFINITION PART BEGINS (CompoundDefinition) print_org_sintef_thingml_Parameter_0_1(element, localtab, out, printCountingMap); } break; default: // DEFINITION PART BEGINS (CompoundDefinition) print_org_sintef_thingml_Parameter_0_0(element, localtab, out, printCountingMap); } } public void print_org_sintef_thingml_Parameter_0_0(org.sintef.thingml.Parameter element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken) count = printCountingMap.get("isArray"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARAMETER__IS_ARRAY)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("T_ARRAY"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARAMETER__IS_ARRAY), element)); } printCountingMap.put("isArray", count - 1); } // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("cardinality"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARAMETER__CARDINALITY)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("cardinality", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("]"); } public void print_org_sintef_thingml_Parameter_0_1(org.sintef.thingml.Parameter element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (BooleanTerminal) count = printCountingMap.get("isArray"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARAMETER__IS_ARRAY)); if (o != null) { } printCountingMap.put("isArray", count - 1); } } public void print_org_sintef_thingml_PrimitiveType(org.sintef.thingml.PrimitiveType element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(3); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PRIMITIVE_TYPE__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PRIMITIVE_TYPE__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PRIMITIVE_TYPE__BYTE_SIZE)); printCountingMap.put("ByteSize", temp == null ? 0 : 1); // print collected hidden tokens int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("datatype"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PRIMITIVE_TYPE__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PRIMITIVE_TYPE__NAME), element)); } printCountingMap.put("name", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("<"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken) count = printCountingMap.get("ByteSize"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PRIMITIVE_TYPE__BYTE_SIZE)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("INTEGER_LITERAL"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PRIMITIVE_TYPE__BYTE_SIZE), element)); } printCountingMap.put("ByteSize", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print(">"); // DEFINITION PART BEGINS (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_PrimitiveType_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 (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_PrimitiveType_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_sintef_thingml_PrimitiveType_0(org.sintef.thingml.PrimitiveType element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PRIMITIVE_TYPE__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_PrimitiveType_1(org.sintef.thingml.PrimitiveType element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { // DEFINITION PART BEGINS (CsString) out.print(";"); } public void print_org_sintef_thingml_ObjectType(org.sintef.thingml.ObjectType element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.OBJECT_TYPE__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.OBJECT_TYPE__ANNOTATIONS)); printCountingMap.put("annotations", 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<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("object"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.OBJECT_TYPE__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.OBJECT_TYPE__NAME), element)); } printCountingMap.put("name", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_ObjectType_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 (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_ObjectType_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_sintef_thingml_ObjectType_0(org.sintef.thingml.ObjectType element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.OBJECT_TYPE__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_ObjectType_1(org.sintef.thingml.ObjectType element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { // DEFINITION PART BEGINS (CsString) out.print(";"); } public void print_org_sintef_thingml_Protocol(org.sintef.thingml.Protocol element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROTOCOL__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROTOCOL__ANNOTATIONS)); printCountingMap.put("annotations", 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<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("protocol"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROTOCOL__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROTOCOL__NAME), element)); } printCountingMap.put("name", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_Protocol_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 (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Protocol_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_sintef_thingml_Protocol_0(org.sintef.thingml.Protocol element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROTOCOL__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_Protocol_1(org.sintef.thingml.Protocol element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { // DEFINITION PART BEGINS (CsString) out.print(";"); } public void print_org_sintef_thingml_Enumeration(org.sintef.thingml.Enumeration element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(3); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ENUMERATION__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ENUMERATION__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ENUMERATION__LITERALS)); printCountingMap.put("literals", 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<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("enumeration"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ENUMERATION__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ENUMERATION__NAME), element)); } printCountingMap.put("name", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_Enumeration_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("{"); // DEFINITION PART BEGINS (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Enumeration_1(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("}"); } public void print_org_sintef_thingml_Enumeration_0(org.sintef.thingml.Enumeration element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ENUMERATION__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_Enumeration_1(org.sintef.thingml.Enumeration element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("literals"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ENUMERATION__LITERALS)); 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("literals", count - 1); } } public void print_org_sintef_thingml_EnumerationLiteral(org.sintef.thingml.EnumerationLiteral element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(3); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ENUMERATION_LITERAL__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ENUMERATION_LITERAL__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ENUMERATION_LITERAL__ENUM)); printCountingMap.put("enum", temp == null ? 0 : 1); // print collected hidden tokens int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ENUMERATION_LITERAL__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ENUMERATION_LITERAL__NAME), element)); } printCountingMap.put("name", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_EnumerationLiteral_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_sintef_thingml_EnumerationLiteral_0(org.sintef.thingml.EnumerationLiteral element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ENUMERATION_LITERAL__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_PlatformAnnotation(org.sintef.thingml.PlatformAnnotation element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PLATFORM_ANNOTATION__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PLATFORM_ANNOTATION__VALUE)); printCountingMap.put("value", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PLATFORM_ANNOTATION__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("ANNOTATION"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PLATFORM_ANNOTATION__NAME), element)); } printCountingMap.put("name", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken) count = printCountingMap.get("value"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PLATFORM_ANNOTATION__VALUE)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("STRING_LITERAL"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PLATFORM_ANNOTATION__VALUE), element)); } printCountingMap.put("value", count - 1); } } public void print_org_sintef_thingml_StateMachine(org.sintef.thingml.StateMachine element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(12); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__OUTGOING)); printCountingMap.put("outgoing", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__INCOMING)); printCountingMap.put("incoming", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__ENTRY)); printCountingMap.put("entry", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__EXIT)); printCountingMap.put("exit", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__PROPERTIES)); printCountingMap.put("properties", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__INTERNAL)); printCountingMap.put("internal", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__SUBSTATE)); printCountingMap.put("substate", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__INITIAL)); printCountingMap.put("initial", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__HISTORY)); printCountingMap.put("history", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__REGION)); printCountingMap.put("region", 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<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("statechart"); // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_StateMachine_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) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("init"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("initial"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__INITIAL)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getRegionInitialReferenceResolver().deResolve((org.sintef.thingml.State) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__INITIAL)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__INITIAL), element)); } printCountingMap.put("initial", count - 1); } // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_StateMachine_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 (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_StateMachine_2(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 (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("{"); // DEFINITION PART BEGINS (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_StateMachine_3(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 (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_StateMachine_4(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<String, Integer>(printCountingMap); print_org_sintef_thingml_StateMachine_5(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) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_StateMachine_6(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 (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_StateMachine_7(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("}"); } public void print_org_sintef_thingml_StateMachine_0(org.sintef.thingml.StateMachine element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__NAME), element)); } printCountingMap.put("name", count - 1); } } public void print_org_sintef_thingml_StateMachine_1(org.sintef.thingml.StateMachine element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (CsString) out.print("keeps"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken) count = printCountingMap.get("history"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__HISTORY)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("T_HISTORY"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__HISTORY), element)); } printCountingMap.put("history", count - 1); } } public void print_org_sintef_thingml_StateMachine_2(org.sintef.thingml.StateMachine element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_StateMachine_3(org.sintef.thingml.StateMachine element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("properties"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__PROPERTIES)); 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("properties", count - 1); } } public void print_org_sintef_thingml_StateMachine_4(org.sintef.thingml.StateMachine element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("on"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("entry"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("entry"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__ENTRY)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("entry", count - 1); } } public void print_org_sintef_thingml_StateMachine_5(org.sintef.thingml.StateMachine element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("on"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("exit"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("exit"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__EXIT)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("exit", count - 1); } } public void print_org_sintef_thingml_StateMachine_6(org.sintef.thingml.StateMachine element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; int alt = -1; alt = 0; int matches = matchCount(printCountingMap, java.util.Arrays.asList( "substate" )); int tempMatchCount; tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "internal" )); if (tempMatchCount > matches) { alt = 1; matches = tempMatchCount; } switch(alt) { case 1: { // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("internal"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__INTERNAL)); 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("internal", count - 1); } } break; default: // DEFINITION PART BEGINS (CompoundDefinition) print_org_sintef_thingml_StateMachine_6_0(element, localtab, out, printCountingMap); } } public void print_org_sintef_thingml_StateMachine_6_0(org.sintef.thingml.StateMachine element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("substate"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__SUBSTATE)); 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("substate", count - 1); } } public void print_org_sintef_thingml_StateMachine_7(org.sintef.thingml.StateMachine element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("region"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE_MACHINE__REGION)); 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("region", count - 1); } } public void print_org_sintef_thingml_State(org.sintef.thingml.State element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(8); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE__OUTGOING)); printCountingMap.put("outgoing", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE__INCOMING)); printCountingMap.put("incoming", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE__ENTRY)); printCountingMap.put("entry", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE__EXIT)); printCountingMap.put("exit", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE__PROPERTIES)); printCountingMap.put("properties", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE__INTERNAL)); printCountingMap.put("internal", 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<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("state"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE__NAME), element)); } printCountingMap.put("name", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_State_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 (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("{"); // DEFINITION PART BEGINS (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_State_1(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 (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_State_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 (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_State_3(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) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_State_4(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("}"); } public void print_org_sintef_thingml_State_0(org.sintef.thingml.State element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_State_1(org.sintef.thingml.State element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("properties"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE__PROPERTIES)); 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("properties", count - 1); } } public void print_org_sintef_thingml_State_2(org.sintef.thingml.State element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("on"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("entry"); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("entry"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE__ENTRY)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("entry", count - 1); } } public void print_org_sintef_thingml_State_3(org.sintef.thingml.State element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("on"); // DEFINITION PART BEGINS (CsString) out.print("exit"); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("exit"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE__EXIT)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("exit", count - 1); } } public void print_org_sintef_thingml_State_4(org.sintef.thingml.State element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; int alt = -1; alt = 0; int matches = matchCount(printCountingMap, java.util.Arrays.asList( "outgoing" )); int tempMatchCount; tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "internal" )); if (tempMatchCount > matches) { alt = 1; matches = tempMatchCount; } switch(alt) { case 1: { // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("internal"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE__INTERNAL)); 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("internal", count - 1); } } break; default: // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("outgoing"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STATE__OUTGOING)); 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("outgoing", count - 1); } } } public void print_org_sintef_thingml_FinalState(org.sintef.thingml.FinalState element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(8); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FINAL_STATE__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FINAL_STATE__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FINAL_STATE__OUTGOING)); printCountingMap.put("outgoing", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FINAL_STATE__INCOMING)); printCountingMap.put("incoming", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FINAL_STATE__ENTRY)); printCountingMap.put("entry", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FINAL_STATE__EXIT)); printCountingMap.put("exit", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FINAL_STATE__PROPERTIES)); printCountingMap.put("properties", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FINAL_STATE__INTERNAL)); printCountingMap.put("internal", 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<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("final state"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FINAL_STATE__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FINAL_STATE__NAME), element)); } printCountingMap.put("name", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_FinalState_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 (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("{"); // DEFINITION PART BEGINS (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_FinalState_1(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 (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_FinalState_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 (LineBreak) out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("}"); } public void print_org_sintef_thingml_FinalState_0(org.sintef.thingml.FinalState element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FINAL_STATE__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_FinalState_1(org.sintef.thingml.FinalState element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("properties"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FINAL_STATE__PROPERTIES)); 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("properties", count - 1); } } public void print_org_sintef_thingml_FinalState_2(org.sintef.thingml.FinalState element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("on"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("entry"); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("entry"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FINAL_STATE__ENTRY)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("entry", count - 1); } } public void print_org_sintef_thingml_CompositeState(org.sintef.thingml.CompositeState element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(12); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__OUTGOING)); printCountingMap.put("outgoing", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__INCOMING)); printCountingMap.put("incoming", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__ENTRY)); printCountingMap.put("entry", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__EXIT)); printCountingMap.put("exit", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__PROPERTIES)); printCountingMap.put("properties", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__INTERNAL)); printCountingMap.put("internal", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__SUBSTATE)); printCountingMap.put("substate", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__INITIAL)); printCountingMap.put("initial", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__HISTORY)); printCountingMap.put("history", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__REGION)); printCountingMap.put("region", 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<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("composite"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("state"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__NAME), element)); } printCountingMap.put("name", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("init"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("initial"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__INITIAL)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getRegionInitialReferenceResolver().deResolve((org.sintef.thingml.State) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__INITIAL)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__INITIAL), element)); } printCountingMap.put("initial", count - 1); } // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_CompositeState_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) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_CompositeState_1(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 (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("{"); // DEFINITION PART BEGINS (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_CompositeState_2(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 (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_CompositeState_3(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<String, Integer>(printCountingMap); print_org_sintef_thingml_CompositeState_4(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) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_CompositeState_5(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 (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_CompositeState_6(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("}"); } public void print_org_sintef_thingml_CompositeState_0(org.sintef.thingml.CompositeState element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (CsString) out.print("keeps"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken) count = printCountingMap.get("history"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__HISTORY)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("T_HISTORY"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__HISTORY), element)); } printCountingMap.put("history", count - 1); } } public void print_org_sintef_thingml_CompositeState_1(org.sintef.thingml.CompositeState element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_CompositeState_2(org.sintef.thingml.CompositeState element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("properties"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__PROPERTIES)); 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("properties", count - 1); } } public void print_org_sintef_thingml_CompositeState_3(org.sintef.thingml.CompositeState element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("on"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("entry"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("entry"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__ENTRY)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("entry", count - 1); } } public void print_org_sintef_thingml_CompositeState_4(org.sintef.thingml.CompositeState element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("on"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("exit"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("exit"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__EXIT)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("exit", count - 1); } } public void print_org_sintef_thingml_CompositeState_5(org.sintef.thingml.CompositeState element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; int alt = -1; alt = 0; int matches = matchCount(printCountingMap, java.util.Arrays.asList( "outgoing" )); int tempMatchCount; tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "internal" )); if (tempMatchCount > matches) { alt = 1; matches = tempMatchCount; } tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "substate" )); if (tempMatchCount > matches) { alt = 2; matches = tempMatchCount; } switch(alt) { case 1: { // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("internal"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__INTERNAL)); 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("internal", count - 1); } } break; case 2: { // DEFINITION PART BEGINS (CompoundDefinition) print_org_sintef_thingml_CompositeState_5_0(element, localtab, out, printCountingMap); } break; default: // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("outgoing"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__OUTGOING)); 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("outgoing", count - 1); } } } public void print_org_sintef_thingml_CompositeState_5_0(org.sintef.thingml.CompositeState element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("substate"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__SUBSTATE)); 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("substate", count - 1); } } public void print_org_sintef_thingml_CompositeState_6(org.sintef.thingml.CompositeState element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("region"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.COMPOSITE_STATE__REGION)); 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("region", count - 1); } } public void print_org_sintef_thingml_ParallelRegion(org.sintef.thingml.ParallelRegion element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(5); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARALLEL_REGION__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARALLEL_REGION__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARALLEL_REGION__SUBSTATE)); printCountingMap.put("substate", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARALLEL_REGION__INITIAL)); printCountingMap.put("initial", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARALLEL_REGION__HISTORY)); printCountingMap.put("history", temp == null ? 0 : 1); // print collected hidden tokens int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("region"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARALLEL_REGION__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARALLEL_REGION__NAME), element)); } printCountingMap.put("name", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("init"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("initial"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARALLEL_REGION__INITIAL)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getRegionInitialReferenceResolver().deResolve((org.sintef.thingml.State) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARALLEL_REGION__INITIAL)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARALLEL_REGION__INITIAL), element)); } printCountingMap.put("initial", count - 1); } // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_ParallelRegion_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) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_ParallelRegion_1(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 (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("{"); // DEFINITION PART BEGINS (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_ParallelRegion_2(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("}"); } public void print_org_sintef_thingml_ParallelRegion_0(org.sintef.thingml.ParallelRegion element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (CsString) out.print("keeps"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken) count = printCountingMap.get("history"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARALLEL_REGION__HISTORY)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("T_HISTORY"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARALLEL_REGION__HISTORY), element)); } printCountingMap.put("history", count - 1); } } public void print_org_sintef_thingml_ParallelRegion_1(org.sintef.thingml.ParallelRegion element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARALLEL_REGION__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_ParallelRegion_2(org.sintef.thingml.ParallelRegion element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("substate"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PARALLEL_REGION__SUBSTATE)); 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("substate", count - 1); } } public void print_org_sintef_thingml_Session(org.sintef.thingml.Session element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(13); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__OUTGOING)); printCountingMap.put("outgoing", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__INCOMING)); printCountingMap.put("incoming", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__ENTRY)); printCountingMap.put("entry", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__EXIT)); printCountingMap.put("exit", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__PROPERTIES)); printCountingMap.put("properties", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__INTERNAL)); printCountingMap.put("internal", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__SUBSTATE)); printCountingMap.put("substate", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__INITIAL)); printCountingMap.put("initial", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__HISTORY)); printCountingMap.put("history", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__REGION)); printCountingMap.put("region", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__MAX_INSTANCES)); printCountingMap.put("maxInstances", temp == null ? 0 : 1); // print collected hidden tokens int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("session"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__NAME), element)); } printCountingMap.put("name", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Session_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("init"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("initial"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__INITIAL)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getRegionInitialReferenceResolver().deResolve((org.sintef.thingml.State) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__INITIAL)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__INITIAL), element)); } printCountingMap.put("initial", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_Session_1(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 (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("{"); // DEFINITION PART BEGINS (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Session_2(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 (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Session_3(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) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Session_4(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 (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Session_5(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("}"); } public void print_org_sintef_thingml_Session_0(org.sintef.thingml.Session element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (CsString) out.print("<"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("maxInstances"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__MAX_INSTANCES)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("maxInstances", count - 1); } // DEFINITION PART BEGINS (CsString) out.print(">"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); } public void print_org_sintef_thingml_Session_1(org.sintef.thingml.Session element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_Session_2(org.sintef.thingml.Session element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("properties"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__PROPERTIES)); 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("properties", count - 1); } } public void print_org_sintef_thingml_Session_3(org.sintef.thingml.Session element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("on"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("entry"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("entry"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__ENTRY)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("entry", count - 1); } } public void print_org_sintef_thingml_Session_4(org.sintef.thingml.Session element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; int alt = -1; alt = 0; int matches = matchCount(printCountingMap, java.util.Arrays.asList( "internal" )); int tempMatchCount; tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "substate" )); if (tempMatchCount > matches) { alt = 1; matches = tempMatchCount; } switch(alt) { case 1: { // DEFINITION PART BEGINS (CompoundDefinition) print_org_sintef_thingml_Session_4_0(element, localtab, out, printCountingMap); } break; default: // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("internal"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__INTERNAL)); 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("internal", count - 1); } } } public void print_org_sintef_thingml_Session_4_0(org.sintef.thingml.Session element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("substate"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__SUBSTATE)); 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("substate", count - 1); } } public void print_org_sintef_thingml_Session_5(org.sintef.thingml.Session element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("region"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SESSION__REGION)); 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("region", count - 1); } } public void print_org_sintef_thingml_Transition(org.sintef.thingml.Transition element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(7); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TRANSITION__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TRANSITION__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TRANSITION__EVENT)); printCountingMap.put("event", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TRANSITION__GUARD)); printCountingMap.put("guard", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TRANSITION__ACTION)); printCountingMap.put("action", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TRANSITION__TARGET)); printCountingMap.put("target", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TRANSITION__SOURCE)); printCountingMap.put("source", temp == null ? 0 : 1); // print collected hidden tokens int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("transition"); // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Transition_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) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("->"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("target"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TRANSITION__TARGET)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getTransitionTargetReferenceResolver().deResolve((org.sintef.thingml.State) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TRANSITION__TARGET)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TRANSITION__TARGET), element)); } printCountingMap.put("target", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_Transition_1(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 (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Transition_2(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 (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Transition_3(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<String, Integer>(printCountingMap); print_org_sintef_thingml_Transition_4(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_sintef_thingml_Transition_0(org.sintef.thingml.Transition element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TRANSITION__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TRANSITION__NAME), element)); } printCountingMap.put("name", count - 1); } } public void print_org_sintef_thingml_Transition_1(org.sintef.thingml.Transition element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TRANSITION__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_Transition_2(org.sintef.thingml.Transition element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("event"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("event"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TRANSITION__EVENT)); 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("event", count - 1); } } public void print_org_sintef_thingml_Transition_3(org.sintef.thingml.Transition element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("guard"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("guard"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TRANSITION__GUARD)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("guard", count - 1); } } public void print_org_sintef_thingml_Transition_4(org.sintef.thingml.Transition element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("action"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("action"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TRANSITION__ACTION)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("action", count - 1); } } public void print_org_sintef_thingml_InternalTransition(org.sintef.thingml.InternalTransition element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(5); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_TRANSITION__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_TRANSITION__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_TRANSITION__EVENT)); printCountingMap.put("event", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_TRANSITION__GUARD)); printCountingMap.put("guard", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_TRANSITION__ACTION)); printCountingMap.put("action", temp == null ? 0 : 1); // print collected hidden tokens boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("internal"); // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_InternalTransition_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) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_InternalTransition_1(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 (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_InternalTransition_2(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 (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_InternalTransition_3(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<String, Integer>(printCountingMap); print_org_sintef_thingml_InternalTransition_4(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_sintef_thingml_InternalTransition_0(org.sintef.thingml.InternalTransition element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_TRANSITION__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_TRANSITION__NAME), element)); } printCountingMap.put("name", count - 1); } } public void print_org_sintef_thingml_InternalTransition_1(org.sintef.thingml.InternalTransition element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_TRANSITION__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_InternalTransition_2(org.sintef.thingml.InternalTransition element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("event"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("event"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_TRANSITION__EVENT)); 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("event", count - 1); } } public void print_org_sintef_thingml_InternalTransition_3(org.sintef.thingml.InternalTransition element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("guard"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("guard"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_TRANSITION__GUARD)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("guard", count - 1); } } public void print_org_sintef_thingml_InternalTransition_4(org.sintef.thingml.InternalTransition element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("action"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("action"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTERNAL_TRANSITION__ACTION)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("action", count - 1); } } public void print_org_sintef_thingml_ReceiveMessage(org.sintef.thingml.ReceiveMessage element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(3); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.RECEIVE_MESSAGE__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.RECEIVE_MESSAGE__MESSAGE)); printCountingMap.put("message", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.RECEIVE_MESSAGE__PORT)); printCountingMap.put("port", temp == null ? 0 : 1); // print collected hidden tokens int count; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_ReceiveMessage_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 (PlaceholderUsingDefaultToken) count = printCountingMap.get("port"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.RECEIVE_MESSAGE__PORT)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getReceiveMessagePortReferenceResolver().deResolve((org.sintef.thingml.Port) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.RECEIVE_MESSAGE__PORT)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.RECEIVE_MESSAGE__PORT), element)); } printCountingMap.put("port", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("?"); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("message"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.RECEIVE_MESSAGE__MESSAGE)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getReceiveMessageMessageReferenceResolver().deResolve((org.sintef.thingml.Message) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.RECEIVE_MESSAGE__MESSAGE)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.RECEIVE_MESSAGE__MESSAGE), element)); } printCountingMap.put("message", count - 1); } } public void print_org_sintef_thingml_ReceiveMessage_0(org.sintef.thingml.ReceiveMessage element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.RECEIVE_MESSAGE__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.RECEIVE_MESSAGE__NAME), element)); } printCountingMap.put("name", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print(":"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); } public void print_org_sintef_thingml_PropertyAssign(org.sintef.thingml.PropertyAssign element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(5); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY_ASSIGN__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY_ASSIGN__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY_ASSIGN__INIT)); printCountingMap.put("init", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY_ASSIGN__PROPERTY)); printCountingMap.put("property", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY_ASSIGN__INDEX)); printCountingMap.put("index", 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<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("set"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("property"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY_ASSIGN__PROPERTY)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getPropertyAssignPropertyReferenceResolver().deResolve((org.sintef.thingml.Property) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY_ASSIGN__PROPERTY)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY_ASSIGN__PROPERTY), element)); } printCountingMap.put("property", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_PropertyAssign_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 (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("="); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("init"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY_ASSIGN__INIT)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("init", count - 1); } } public void print_org_sintef_thingml_PropertyAssign_0(org.sintef.thingml.PropertyAssign element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (CsString) out.print("["); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("index"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY_ASSIGN__INDEX)); 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("index", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("]"); } public void print_org_sintef_thingml_Increment(org.sintef.thingml.Increment element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(1); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INCREMENT__VAR)); printCountingMap.put("var", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("var"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INCREMENT__VAR)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("var", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("++"); } public void print_org_sintef_thingml_Decrement(org.sintef.thingml.Decrement element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(1); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.DECREMENT__VAR)); printCountingMap.put("var", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("var"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.DECREMENT__VAR)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("var", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("--"); } public void print_org_sintef_thingml_Configuration(org.sintef.thingml.Configuration element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(5); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIGURATION__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIGURATION__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIGURATION__INSTANCES)); printCountingMap.put("instances", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIGURATION__CONNECTORS)); printCountingMap.put("connectors", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIGURATION__PROPASSIGNS)); printCountingMap.put("propassigns", 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<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("configuration"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIGURATION__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIGURATION__NAME), element)); } printCountingMap.put("name", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_Configuration_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("{"); // DEFINITION PART BEGINS (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Configuration_1(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("}"); } public void print_org_sintef_thingml_Configuration_0(org.sintef.thingml.Configuration element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIGURATION__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_Configuration_1(org.sintef.thingml.Configuration element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; int alt = -1; alt = 0; int matches = matchCount(printCountingMap, java.util.Arrays.asList( "instances" )); int tempMatchCount; tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "connectors" )); if (tempMatchCount > matches) { alt = 1; matches = tempMatchCount; } tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "propassigns" )); if (tempMatchCount > matches) { alt = 2; matches = tempMatchCount; } switch(alt) { case 1: { // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("connectors"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIGURATION__CONNECTORS)); 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("connectors", count - 1); } } break; case 2: { // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("propassigns"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIGURATION__PROPASSIGNS)); 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("propassigns", count - 1); } } break; default: // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("instances"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIGURATION__INSTANCES)); 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("instances", count - 1); } } } public void print_org_sintef_thingml_Instance(org.sintef.thingml.Instance element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(3); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INSTANCE__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INSTANCE__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INSTANCE__TYPE)); printCountingMap.put("type", temp == null ? 0 : 1); // print collected hidden tokens int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("instance"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INSTANCE__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INSTANCE__NAME), element)); } printCountingMap.put("name", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print(":"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("type"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INSTANCE__TYPE)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getInstanceTypeReferenceResolver().deResolve((org.sintef.thingml.Thing) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INSTANCE__TYPE)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INSTANCE__TYPE), element)); } printCountingMap.put("type", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_Instance_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_sintef_thingml_Instance_0(org.sintef.thingml.Instance element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INSTANCE__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_Connector(org.sintef.thingml.Connector element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(6); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONNECTOR__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONNECTOR__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONNECTOR__SRV)); printCountingMap.put("srv", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONNECTOR__CLI)); printCountingMap.put("cli", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONNECTOR__REQUIRED)); printCountingMap.put("required", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONNECTOR__PROVIDED)); printCountingMap.put("provided", temp == null ? 0 : 1); // print collected hidden tokens int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("connector"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Connector_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("cli"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONNECTOR__CLI)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("cli", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("."); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("required"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONNECTOR__REQUIRED)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getConnectorRequiredReferenceResolver().deResolve((org.sintef.thingml.RequiredPort) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONNECTOR__REQUIRED)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONNECTOR__REQUIRED), element)); } printCountingMap.put("required", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("=>"); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("srv"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONNECTOR__SRV)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("srv", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("."); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("provided"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONNECTOR__PROVIDED)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getConnectorProvidedReferenceResolver().deResolve((org.sintef.thingml.ProvidedPort) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONNECTOR__PROVIDED)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONNECTOR__PROVIDED), element)); } printCountingMap.put("provided", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_Connector_1(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_sintef_thingml_Connector_0(org.sintef.thingml.Connector element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONNECTOR__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONNECTOR__NAME), element)); } printCountingMap.put("name", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); } public void print_org_sintef_thingml_Connector_1(org.sintef.thingml.Connector element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) out.println(); out.print(localtab); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONNECTOR__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_ExternalConnector(org.sintef.thingml.ExternalConnector element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(5); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERNAL_CONNECTOR__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERNAL_CONNECTOR__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERNAL_CONNECTOR__INST)); printCountingMap.put("inst", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERNAL_CONNECTOR__PORT)); printCountingMap.put("port", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERNAL_CONNECTOR__PROTOCOL)); printCountingMap.put("protocol", temp == null ? 0 : 1); // print collected hidden tokens int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("connector"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_ExternalConnector_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("inst"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERNAL_CONNECTOR__INST)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("inst", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("."); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("port"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERNAL_CONNECTOR__PORT)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getExternalConnectorPortReferenceResolver().deResolve((org.sintef.thingml.Port) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERNAL_CONNECTOR__PORT)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERNAL_CONNECTOR__PORT), element)); } printCountingMap.put("port", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("over"); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("protocol"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERNAL_CONNECTOR__PROTOCOL)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getExternalConnectorProtocolReferenceResolver().deResolve((org.sintef.thingml.Protocol) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERNAL_CONNECTOR__PROTOCOL)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERNAL_CONNECTOR__PROTOCOL), element)); } printCountingMap.put("protocol", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_ExternalConnector_1(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_sintef_thingml_ExternalConnector_0(org.sintef.thingml.ExternalConnector element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERNAL_CONNECTOR__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERNAL_CONNECTOR__NAME), element)); } printCountingMap.put("name", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); } public void print_org_sintef_thingml_ExternalConnector_1(org.sintef.thingml.ExternalConnector element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) out.println(); out.print(localtab); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERNAL_CONNECTOR__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_ConfigPropertyAssign(org.sintef.thingml.ConfigPropertyAssign element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(6); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIG_PROPERTY_ASSIGN__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIG_PROPERTY_ASSIGN__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIG_PROPERTY_ASSIGN__INIT)); printCountingMap.put("init", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIG_PROPERTY_ASSIGN__PROPERTY)); printCountingMap.put("property", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIG_PROPERTY_ASSIGN__INSTANCE)); printCountingMap.put("instance", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIG_PROPERTY_ASSIGN__INDEX)); printCountingMap.put("index", 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<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("set"); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("instance"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIG_PROPERTY_ASSIGN__INSTANCE)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("instance", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("."); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("property"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIG_PROPERTY_ASSIGN__PROPERTY)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getConfigPropertyAssignPropertyReferenceResolver().deResolve((org.sintef.thingml.Property) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIG_PROPERTY_ASSIGN__PROPERTY)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIG_PROPERTY_ASSIGN__PROPERTY), element)); } printCountingMap.put("property", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_ConfigPropertyAssign_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 (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("="); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("init"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIG_PROPERTY_ASSIGN__INIT)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("init", count - 1); } } public void print_org_sintef_thingml_ConfigPropertyAssign_0(org.sintef.thingml.ConfigPropertyAssign element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (CsString) out.print("["); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("index"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONFIG_PROPERTY_ASSIGN__INDEX)); 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("index", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("]"); } public void print_org_sintef_thingml_InstanceRef(org.sintef.thingml.InstanceRef element, 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<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(1); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INSTANCE_REF__INSTANCE)); printCountingMap.put("instance", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("instance"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INSTANCE_REF__INSTANCE)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getInstanceRefInstanceReferenceResolver().deResolve((org.sintef.thingml.Instance) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INSTANCE_REF__INSTANCE)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INSTANCE_REF__INSTANCE), element)); } printCountingMap.put("instance", count - 1); } } public void print_org_sintef_thingml_SendAction(org.sintef.thingml.SendAction element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(3); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SEND_ACTION__PARAMETERS)); printCountingMap.put("parameters", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SEND_ACTION__MESSAGE)); printCountingMap.put("message", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SEND_ACTION__PORT)); printCountingMap.put("port", temp == null ? 0 : 1); // print collected hidden tokens int count; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("port"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SEND_ACTION__PORT)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getSendActionPortReferenceResolver().deResolve((org.sintef.thingml.Port) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SEND_ACTION__PORT)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SEND_ACTION__PORT), element)); } printCountingMap.put("port", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("!"); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("message"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SEND_ACTION__MESSAGE)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getSendActionMessageReferenceResolver().deResolve((org.sintef.thingml.Message) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SEND_ACTION__MESSAGE)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SEND_ACTION__MESSAGE), element)); } printCountingMap.put("message", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("("); // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_SendAction_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(")"); } public void print_org_sintef_thingml_SendAction_0(org.sintef.thingml.SendAction element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("parameters"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SEND_ACTION__PARAMETERS)); 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("parameters", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_SendAction_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_sintef_thingml_SendAction_0_0(org.sintef.thingml.SendAction element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (CsString) out.print(","); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("parameters"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SEND_ACTION__PARAMETERS)); 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("parameters", count - 1); } } public void print_org_sintef_thingml_StartSession(org.sintef.thingml.StartSession element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.START_SESSION__SESSION)); printCountingMap.put("session", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.START_SESSION__CONSTRUCTOR)); printCountingMap.put("constructor", 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<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("fork"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("session"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.START_SESSION__SESSION)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getStartSessionSessionReferenceResolver().deResolve((org.sintef.thingml.Session) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.START_SESSION__SESSION)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.START_SESSION__SESSION), element)); } printCountingMap.put("session", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_StartSession_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_sintef_thingml_StartSession_0(org.sintef.thingml.StartSession element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("constructor"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.START_SESSION__CONSTRUCTOR)); 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("constructor", count - 1); } } public void print_org_sintef_thingml_StartStream(org.sintef.thingml.StartStream element, 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<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(1); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.START_STREAM__STREAM)); printCountingMap.put("stream", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (CsString) out.print("start"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("stream"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.START_STREAM__STREAM)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getStartStreamStreamReferenceResolver().deResolve((org.sintef.thingml.Stream) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.START_STREAM__STREAM)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.START_STREAM__STREAM), element)); } printCountingMap.put("stream", count - 1); } } public void print_org_sintef_thingml_StopStream(org.sintef.thingml.StopStream element, 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<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(1); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STOP_STREAM__STREAM)); printCountingMap.put("stream", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (CsString) out.print("stop"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("stream"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STOP_STREAM__STREAM)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getStopStreamStreamReferenceResolver().deResolve((org.sintef.thingml.Stream) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STOP_STREAM__STREAM)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STOP_STREAM__STREAM), element)); } printCountingMap.put("stream", count - 1); } } public void print_org_sintef_thingml_VariableAssignment(org.sintef.thingml.VariableAssignment element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(3); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.VARIABLE_ASSIGNMENT__PROPERTY)); printCountingMap.put("property", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.VARIABLE_ASSIGNMENT__EXPRESSION)); printCountingMap.put("expression", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.VARIABLE_ASSIGNMENT__INDEX)); printCountingMap.put("index", 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<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("property"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.VARIABLE_ASSIGNMENT__PROPERTY)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getVariableAssignmentPropertyReferenceResolver().deResolve((org.sintef.thingml.Variable) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.VARIABLE_ASSIGNMENT__PROPERTY)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.VARIABLE_ASSIGNMENT__PROPERTY), element)); } printCountingMap.put("property", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_VariableAssignment_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("="); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("expression"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.VARIABLE_ASSIGNMENT__EXPRESSION)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("expression", count - 1); } } public void print_org_sintef_thingml_VariableAssignment_0(org.sintef.thingml.VariableAssignment element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (CsString) out.print("["); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("index"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.VARIABLE_ASSIGNMENT__INDEX)); 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("index", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("]"); } public void print_org_sintef_thingml_ActionBlock(org.sintef.thingml.ActionBlock element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(1); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ACTION_BLOCK__ACTIONS)); printCountingMap.put("actions", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); // print collected hidden tokens boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("do"); // DEFINITION PART BEGINS (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_ActionBlock_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("end"); } public void print_org_sintef_thingml_ActionBlock_0(org.sintef.thingml.ActionBlock element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("actions"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ACTION_BLOCK__ACTIONS)); 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("actions", count - 1); } } public void print_org_sintef_thingml_LocalVariable(org.sintef.thingml.LocalVariable element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(7); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOCAL_VARIABLE__TYPE)); printCountingMap.put("type", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOCAL_VARIABLE__CARDINALITY)); printCountingMap.put("cardinality", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOCAL_VARIABLE__IS_ARRAY)); printCountingMap.put("isArray", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOCAL_VARIABLE__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOCAL_VARIABLE__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOCAL_VARIABLE__INIT)); printCountingMap.put("init", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOCAL_VARIABLE__CHANGEABLE)); printCountingMap.put("changeable", temp == null ? 0 : 1); // print collected hidden tokens int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (LineBreak) localtab += " "; 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<String, Integer>(printCountingMap); print_org_sintef_thingml_LocalVariable_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("var"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOCAL_VARIABLE__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOCAL_VARIABLE__NAME), element)); } printCountingMap.put("name", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print(":"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("type"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOCAL_VARIABLE__TYPE)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getTypedElementTypeReferenceResolver().deResolve((org.sintef.thingml.Type) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOCAL_VARIABLE__TYPE)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOCAL_VARIABLE__TYPE), element)); } 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<String, Integer>(printCountingMap); print_org_sintef_thingml_LocalVariable_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 (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_LocalVariable_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 (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_LocalVariable_3(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_sintef_thingml_LocalVariable_0(org.sintef.thingml.LocalVariable element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken) count = printCountingMap.get("changeable"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOCAL_VARIABLE__CHANGEABLE)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("T_READONLY"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOCAL_VARIABLE__CHANGEABLE), element)); } printCountingMap.put("changeable", count - 1); } } public void print_org_sintef_thingml_LocalVariable_1(org.sintef.thingml.LocalVariable element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int alt = -1; alt = 0; int matches = matchCount(printCountingMap, java.util.Arrays.asList( "isArray" , "cardinality" )); int tempMatchCount; tempMatchCount = matchCount(printCountingMap, java.util.Arrays.asList( "isArray" )); if (tempMatchCount > matches) { alt = 1; matches = tempMatchCount; } switch(alt) { case 1: { // DEFINITION PART BEGINS (CompoundDefinition) print_org_sintef_thingml_LocalVariable_1_1(element, localtab, out, printCountingMap); } break; default: // DEFINITION PART BEGINS (CompoundDefinition) print_org_sintef_thingml_LocalVariable_1_0(element, localtab, out, printCountingMap); } } public void print_org_sintef_thingml_LocalVariable_1_0(org.sintef.thingml.LocalVariable element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken) count = printCountingMap.get("isArray"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOCAL_VARIABLE__IS_ARRAY)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("T_ARRAY"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOCAL_VARIABLE__IS_ARRAY), element)); } printCountingMap.put("isArray", count - 1); } // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("cardinality"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOCAL_VARIABLE__CARDINALITY)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("cardinality", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("]"); } public void print_org_sintef_thingml_LocalVariable_1_1(org.sintef.thingml.LocalVariable element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (BooleanTerminal) count = printCountingMap.get("isArray"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOCAL_VARIABLE__IS_ARRAY)); if (o != null) { } printCountingMap.put("isArray", count - 1); } } public void print_org_sintef_thingml_LocalVariable_2(org.sintef.thingml.LocalVariable element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("="); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("init"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOCAL_VARIABLE__INIT)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("init", count - 1); } } public void print_org_sintef_thingml_LocalVariable_3(org.sintef.thingml.LocalVariable element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOCAL_VARIABLE__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_ExternStatement(org.sintef.thingml.ExternStatement element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERN_STATEMENT__STATEMENT)); printCountingMap.put("statement", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERN_STATEMENT__SEGMENTS)); printCountingMap.put("segments", 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<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken) count = printCountingMap.get("statement"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERN_STATEMENT__STATEMENT)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("STRING_EXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERN_STATEMENT__STATEMENT), element)); } printCountingMap.put("statement", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_ExternStatement_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_sintef_thingml_ExternStatement_0(org.sintef.thingml.ExternStatement element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (CsString) out.print("&"); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("segments"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERN_STATEMENT__SEGMENTS)); 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("segments", count - 1); } } public void print_org_sintef_thingml_ConditionalAction(org.sintef.thingml.ConditionalAction element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(3); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONDITIONAL_ACTION__ACTION)); printCountingMap.put("action", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONDITIONAL_ACTION__CONDITION)); printCountingMap.put("condition", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONDITIONAL_ACTION__ELSE_ACTION)); printCountingMap.put("elseAction", temp == null ? 0 : 1); // print collected hidden tokens int count; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("if"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("("); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("condition"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONDITIONAL_ACTION__CONDITION)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("condition", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print(")"); // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("action"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONDITIONAL_ACTION__ACTION)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("action", count - 1); } // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_ConditionalAction_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_sintef_thingml_ConditionalAction_0(org.sintef.thingml.ConditionalAction element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("else"); // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("elseAction"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.CONDITIONAL_ACTION__ELSE_ACTION)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("elseAction", count - 1); } } public void print_org_sintef_thingml_LoopAction(org.sintef.thingml.LoopAction element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOOP_ACTION__ACTION)); printCountingMap.put("action", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOOP_ACTION__CONDITION)); printCountingMap.put("condition", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (CsString) out.print("while"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("("); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("condition"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOOP_ACTION__CONDITION)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("condition", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print(")"); // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("action"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOOP_ACTION__ACTION)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("action", count - 1); } } public void print_org_sintef_thingml_PrintAction(org.sintef.thingml.PrintAction element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(1); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PRINT_ACTION__MSG)); printCountingMap.put("msg", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (CsString) out.print("print"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("msg"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PRINT_ACTION__MSG)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("msg", count - 1); } } public void print_org_sintef_thingml_ErrorAction(org.sintef.thingml.ErrorAction element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(1); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ERROR_ACTION__MSG)); printCountingMap.put("msg", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (CsString) out.print("error"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("msg"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ERROR_ACTION__MSG)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("msg", count - 1); } } public void print_org_sintef_thingml_ReturnAction(org.sintef.thingml.ReturnAction element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(1); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.RETURN_ACTION__EXP)); printCountingMap.put("exp", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (CsString) out.print("return"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("exp"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.RETURN_ACTION__EXP)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("exp", count - 1); } } public void print_org_sintef_thingml_FunctionCallStatement(org.sintef.thingml.FunctionCallStatement element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION_CALL_STATEMENT__PARAMETERS)); printCountingMap.put("parameters", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION_CALL_STATEMENT__FUNCTION)); printCountingMap.put("function", temp == null ? 0 : 1); // print collected hidden tokens int count; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("function"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION_CALL_STATEMENT__FUNCTION)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getFunctionCallFunctionReferenceResolver().deResolve((org.sintef.thingml.Function) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION_CALL_STATEMENT__FUNCTION)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION_CALL_STATEMENT__FUNCTION), element)); } printCountingMap.put("function", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("("); // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_FunctionCallStatement_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(")"); } public void print_org_sintef_thingml_FunctionCallStatement_0(org.sintef.thingml.FunctionCallStatement element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("parameters"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION_CALL_STATEMENT__PARAMETERS)); 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("parameters", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_FunctionCallStatement_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_sintef_thingml_FunctionCallStatement_0_0(org.sintef.thingml.FunctionCallStatement element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (CsString) out.print(","); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("parameters"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION_CALL_STATEMENT__PARAMETERS)); 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("parameters", count - 1); } } public void print_org_sintef_thingml_MessageParameter(org.sintef.thingml.MessageParameter element, 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<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MESSAGE_PARAMETER__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MESSAGE_PARAMETER__MSG_REF)); printCountingMap.put("msgRef", 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.sintef.thingml.ThingmlPackage.MESSAGE_PARAMETER__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MESSAGE_PARAMETER__NAME), element)); } printCountingMap.put("name", count - 1); } // DEFINITION PART BEGINS (CsString) out.print(":"); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("msgRef"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MESSAGE_PARAMETER__MSG_REF)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getMessageParameterMsgRefReferenceResolver().deResolve((org.sintef.thingml.Message) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MESSAGE_PARAMETER__MSG_REF)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MESSAGE_PARAMETER__MSG_REF), element)); } printCountingMap.put("msgRef", count - 1); } } public void print_org_sintef_thingml_Filter(org.sintef.thingml.Filter element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(1); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FILTER__GUARD)); printCountingMap.put("guard", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (CsString) out.print("keep if"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("guard"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FILTER__GUARD)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("guard", count - 1); } } public void print_org_sintef_thingml_LengthWindow(org.sintef.thingml.LengthWindow element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LENGTH_WINDOW__SIZE)); printCountingMap.put("size", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LENGTH_WINDOW__STEP)); printCountingMap.put("step", temp == null ? 0 : 1); // print collected hidden tokens int count; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("buffer"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("size"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LENGTH_WINDOW__SIZE)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("size", count - 1); } // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_LengthWindow_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_sintef_thingml_LengthWindow_0(org.sintef.thingml.LengthWindow element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("by"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("step"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LENGTH_WINDOW__STEP)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("step", count - 1); } } public void print_org_sintef_thingml_TimeWindow(org.sintef.thingml.TimeWindow element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TIME_WINDOW__DURATION)); printCountingMap.put("duration", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TIME_WINDOW__STEP)); printCountingMap.put("step", temp == null ? 0 : 1); // print collected hidden tokens int count; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CsString) out.print("during"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("duration"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TIME_WINDOW__DURATION)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("duration", count - 1); } // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_TimeWindow_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_sintef_thingml_TimeWindow_0(org.sintef.thingml.TimeWindow element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("by"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("step"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TIME_WINDOW__STEP)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("step", count - 1); } } public void print_org_sintef_thingml_SimpleSource(org.sintef.thingml.SimpleSource element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(3); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SIMPLE_SOURCE__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SIMPLE_SOURCE__OPERATORS)); printCountingMap.put("operators", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SIMPLE_SOURCE__MESSAGE)); printCountingMap.put("message", temp == null ? 0 : 1); // print collected hidden tokens int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SIMPLE_SOURCE__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SIMPLE_SOURCE__NAME), element)); } printCountingMap.put("name", count - 1); } // DEFINITION PART BEGINS (CsString) out.print(":"); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("message"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SIMPLE_SOURCE__MESSAGE)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("message", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_SimpleSource_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_sintef_thingml_SimpleSource_0(org.sintef.thingml.SimpleSource element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (CsString) out.print("::"); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("operators"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SIMPLE_SOURCE__OPERATORS)); 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("operators", count - 1); } } public void print_org_sintef_thingml_JoinSources(org.sintef.thingml.JoinSources element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(5); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.JOIN_SOURCES__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.JOIN_SOURCES__OPERATORS)); printCountingMap.put("operators", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.JOIN_SOURCES__SOURCES)); printCountingMap.put("sources", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.JOIN_SOURCES__RESULT_MESSAGE)); printCountingMap.put("resultMessage", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.JOIN_SOURCES__RULES)); printCountingMap.put("rules", 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<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.JOIN_SOURCES__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.JOIN_SOURCES__NAME), element)); } printCountingMap.put("name", count - 1); } // DEFINITION PART BEGINS (CsString) out.print(":"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("["); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("sources"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.JOIN_SOURCES__SOURCES)); 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("sources", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CompoundDefinition) print_org_sintef_thingml_JoinSources_0(element, localtab, out, printCountingMap); iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_JoinSources_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 (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("->"); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("resultMessage"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.JOIN_SOURCES__RESULT_MESSAGE)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getSourceCompositionResultMessageReferenceResolver().deResolve((org.sintef.thingml.Message) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.JOIN_SOURCES__RESULT_MESSAGE)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.JOIN_SOURCES__RESULT_MESSAGE), element)); } printCountingMap.put("resultMessage", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("("); // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_JoinSources_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(")"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("]"); // DEFINITION PART BEGINS (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_JoinSources_2(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_sintef_thingml_JoinSources_0(org.sintef.thingml.JoinSources element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (CsString) out.print("&"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("sources"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.JOIN_SOURCES__SOURCES)); 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("sources", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); } public void print_org_sintef_thingml_JoinSources_1(org.sintef.thingml.JoinSources element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("rules"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.JOIN_SOURCES__RULES)); 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("rules", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_JoinSources_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_sintef_thingml_JoinSources_1_0(org.sintef.thingml.JoinSources element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (CsString) out.print(","); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("rules"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.JOIN_SOURCES__RULES)); 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("rules", count - 1); } } public void print_org_sintef_thingml_JoinSources_2(org.sintef.thingml.JoinSources element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (CsString) out.print("::"); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("operators"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.JOIN_SOURCES__OPERATORS)); 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("operators", count - 1); } } public void print_org_sintef_thingml_MergeSources(org.sintef.thingml.MergeSources element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(4); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MERGE_SOURCES__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MERGE_SOURCES__OPERATORS)); printCountingMap.put("operators", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MERGE_SOURCES__SOURCES)); printCountingMap.put("sources", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MERGE_SOURCES__RESULT_MESSAGE)); printCountingMap.put("resultMessage", temp == null ? 0 : 1); // print collected hidden tokens int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MERGE_SOURCES__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MERGE_SOURCES__NAME), element)); } printCountingMap.put("name", count - 1); } // DEFINITION PART BEGINS (CsString) out.print(":"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("["); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("sources"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MERGE_SOURCES__SOURCES)); 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("sources", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CompoundDefinition) print_org_sintef_thingml_MergeSources_0(element, localtab, out, printCountingMap); iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_MergeSources_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 (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("->"); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("resultMessage"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MERGE_SOURCES__RESULT_MESSAGE)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getSourceCompositionResultMessageReferenceResolver().deResolve((org.sintef.thingml.Message) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MERGE_SOURCES__RESULT_MESSAGE)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MERGE_SOURCES__RESULT_MESSAGE), element)); } printCountingMap.put("resultMessage", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("]"); // DEFINITION PART BEGINS (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_MergeSources_1(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_sintef_thingml_MergeSources_0(org.sintef.thingml.MergeSources element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (CsString) out.print("|"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("sources"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MERGE_SOURCES__SOURCES)); 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("sources", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); } public void print_org_sintef_thingml_MergeSources_1(org.sintef.thingml.MergeSources element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (CsString) out.print("::"); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("operators"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MERGE_SOURCES__OPERATORS)); 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("operators", count - 1); } } public void print_org_sintef_thingml_Stream(org.sintef.thingml.Stream element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(6); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STREAM__NAME)); printCountingMap.put("name", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STREAM__ANNOTATIONS)); printCountingMap.put("annotations", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STREAM__SELECTION)); printCountingMap.put("selection", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STREAM__OUTPUT)); printCountingMap.put("output", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STREAM__INPUT)); printCountingMap.put("input", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STREAM__DYNAMIC)); printCountingMap.put("dynamic", temp == null ? 0 : 1); // print collected hidden tokens int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Stream_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("stream"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("name"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STREAM__NAME)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STREAM__NAME), element)); } printCountingMap.put("name", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CompoundDefinition) iterate = true; while (iterate) { sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Stream_1(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) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("from"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("input"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STREAM__INPUT)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("input", count - 1); } // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_Stream_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 (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("produce"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("output"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STREAM__OUTPUT)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("output", count - 1); } } public void print_org_sintef_thingml_Stream_0(org.sintef.thingml.Stream element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { int count; // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken) count = printCountingMap.get("dynamic"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STREAM__DYNAMIC)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("T_DYNAMIC"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STREAM__DYNAMIC), element)); } printCountingMap.put("dynamic", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); } public void print_org_sintef_thingml_Stream_1(org.sintef.thingml.Stream element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("annotations"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STREAM__ANNOTATIONS)); 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("annotations", count - 1); } } public void print_org_sintef_thingml_Stream_2(org.sintef.thingml.Stream element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (LineBreak) localtab += " "; out.println(); out.print(localtab); // DEFINITION PART BEGINS (CsString) out.print("select"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("selection"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STREAM__SELECTION)); 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("selection", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_Stream_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_sintef_thingml_Stream_2_0(org.sintef.thingml.Stream element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (CsString) out.print(","); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("selection"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STREAM__SELECTION)); 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("selection", count - 1); } } public void print_org_sintef_thingml_SimpleParamRef(org.sintef.thingml.SimpleParamRef element, 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<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(1); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SIMPLE_PARAM_REF__PARAMETER_REF)); printCountingMap.put("parameterRef", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("parameterRef"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SIMPLE_PARAM_REF__PARAMETER_REF)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getParamReferenceParameterRefReferenceResolver().deResolve((org.sintef.thingml.Parameter) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SIMPLE_PARAM_REF__PARAMETER_REF)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.SIMPLE_PARAM_REF__PARAMETER_REF), element)); } printCountingMap.put("parameterRef", count - 1); } } public void print_org_sintef_thingml_ArrayParamRef(org.sintef.thingml.ArrayParamRef element, 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<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(1); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ARRAY_PARAM_REF__PARAMETER_REF)); printCountingMap.put("parameterRef", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("parameterRef"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ARRAY_PARAM_REF__PARAMETER_REF)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getParamReferenceParameterRefReferenceResolver().deResolve((org.sintef.thingml.Parameter) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ARRAY_PARAM_REF__PARAMETER_REF)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ARRAY_PARAM_REF__PARAMETER_REF), element)); } printCountingMap.put("parameterRef", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("[]"); } public void print_org_sintef_thingml_LengthArray(org.sintef.thingml.LengthArray element, 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("length"); } public void print_org_sintef_thingml_OrExpression(org.sintef.thingml.OrExpression element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.OR_EXPRESSION__LHS)); printCountingMap.put("lhs", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.OR_EXPRESSION__RHS)); printCountingMap.put("rhs", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("lhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.OR_EXPRESSION__LHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("lhs", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("or"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("rhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.OR_EXPRESSION__RHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("rhs", count - 1); } } public void print_org_sintef_thingml_AndExpression(org.sintef.thingml.AndExpression element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.AND_EXPRESSION__LHS)); printCountingMap.put("lhs", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.AND_EXPRESSION__RHS)); printCountingMap.put("rhs", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("lhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.AND_EXPRESSION__LHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("lhs", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("and"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("rhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.AND_EXPRESSION__RHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("rhs", count - 1); } } public void print_org_sintef_thingml_LowerExpression(org.sintef.thingml.LowerExpression element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOWER_EXPRESSION__LHS)); printCountingMap.put("lhs", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOWER_EXPRESSION__RHS)); printCountingMap.put("rhs", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("lhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOWER_EXPRESSION__LHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("lhs", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("<"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("rhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOWER_EXPRESSION__RHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("rhs", count - 1); } } public void print_org_sintef_thingml_GreaterExpression(org.sintef.thingml.GreaterExpression element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.GREATER_EXPRESSION__LHS)); printCountingMap.put("lhs", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.GREATER_EXPRESSION__RHS)); printCountingMap.put("rhs", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("lhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.GREATER_EXPRESSION__LHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("lhs", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print(">"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("rhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.GREATER_EXPRESSION__RHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("rhs", count - 1); } } public void print_org_sintef_thingml_LowerOrEqualExpression(org.sintef.thingml.LowerOrEqualExpression element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOWER_OR_EQUAL_EXPRESSION__LHS)); printCountingMap.put("lhs", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOWER_OR_EQUAL_EXPRESSION__RHS)); printCountingMap.put("rhs", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("lhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOWER_OR_EQUAL_EXPRESSION__LHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("lhs", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("<="); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("rhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.LOWER_OR_EQUAL_EXPRESSION__RHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("rhs", count - 1); } } public void print_org_sintef_thingml_GreaterOrEqualExpression(org.sintef.thingml.GreaterOrEqualExpression element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.GREATER_OR_EQUAL_EXPRESSION__LHS)); printCountingMap.put("lhs", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.GREATER_OR_EQUAL_EXPRESSION__RHS)); printCountingMap.put("rhs", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("lhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.GREATER_OR_EQUAL_EXPRESSION__LHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("lhs", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print(">="); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("rhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.GREATER_OR_EQUAL_EXPRESSION__RHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("rhs", count - 1); } } public void print_org_sintef_thingml_EqualsExpression(org.sintef.thingml.EqualsExpression element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EQUALS_EXPRESSION__LHS)); printCountingMap.put("lhs", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EQUALS_EXPRESSION__RHS)); printCountingMap.put("rhs", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("lhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EQUALS_EXPRESSION__LHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("lhs", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("=="); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("rhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EQUALS_EXPRESSION__RHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("rhs", count - 1); } } public void print_org_sintef_thingml_NotEqualsExpression(org.sintef.thingml.NotEqualsExpression element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.NOT_EQUALS_EXPRESSION__LHS)); printCountingMap.put("lhs", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.NOT_EQUALS_EXPRESSION__RHS)); printCountingMap.put("rhs", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("lhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.NOT_EQUALS_EXPRESSION__LHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("lhs", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("!="); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("rhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.NOT_EQUALS_EXPRESSION__RHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("rhs", count - 1); } } public void print_org_sintef_thingml_PlusExpression(org.sintef.thingml.PlusExpression element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PLUS_EXPRESSION__LHS)); printCountingMap.put("lhs", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PLUS_EXPRESSION__RHS)); printCountingMap.put("rhs", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("lhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PLUS_EXPRESSION__LHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("lhs", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("+"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("rhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PLUS_EXPRESSION__RHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("rhs", count - 1); } } public void print_org_sintef_thingml_MinusExpression(org.sintef.thingml.MinusExpression element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MINUS_EXPRESSION__LHS)); printCountingMap.put("lhs", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MINUS_EXPRESSION__RHS)); printCountingMap.put("rhs", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("lhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MINUS_EXPRESSION__LHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("lhs", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("-"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("rhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MINUS_EXPRESSION__RHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("rhs", count - 1); } } public void print_org_sintef_thingml_TimesExpression(org.sintef.thingml.TimesExpression element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TIMES_EXPRESSION__LHS)); printCountingMap.put("lhs", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TIMES_EXPRESSION__RHS)); printCountingMap.put("rhs", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("lhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TIMES_EXPRESSION__LHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("lhs", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("*"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("rhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.TIMES_EXPRESSION__RHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("rhs", count - 1); } } public void print_org_sintef_thingml_DivExpression(org.sintef.thingml.DivExpression element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.DIV_EXPRESSION__LHS)); printCountingMap.put("lhs", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.DIV_EXPRESSION__RHS)); printCountingMap.put("rhs", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("lhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.DIV_EXPRESSION__LHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("lhs", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("/"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("rhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.DIV_EXPRESSION__RHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("rhs", count - 1); } } public void print_org_sintef_thingml_ModExpression(org.sintef.thingml.ModExpression element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MOD_EXPRESSION__LHS)); printCountingMap.put("lhs", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MOD_EXPRESSION__RHS)); printCountingMap.put("rhs", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("lhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MOD_EXPRESSION__LHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("lhs", count - 1); } // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (CsString) out.print("%"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("rhs"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.MOD_EXPRESSION__RHS)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("rhs", count - 1); } } public void print_org_sintef_thingml_UnaryMinus(org.sintef.thingml.UnaryMinus element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(1); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.UNARY_MINUS__TERM)); printCountingMap.put("term", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (CsString) out.print("-"); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("term"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.UNARY_MINUS__TERM)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("term", count - 1); } } public void print_org_sintef_thingml_NotExpression(org.sintef.thingml.NotExpression element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(1); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.NOT_EXPRESSION__TERM)); printCountingMap.put("term", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (CsString) out.print("not"); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("term"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.NOT_EXPRESSION__TERM)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("term", count - 1); } } public void print_org_sintef_thingml_Reference(org.sintef.thingml.Reference element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REFERENCE__REFERENCE)); printCountingMap.put("reference", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REFERENCE__PARAMETER)); printCountingMap.put("parameter", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("reference"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REFERENCE__REFERENCE)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getReferenceReferenceReferenceResolver().deResolve((org.sintef.thingml.ReferencedElmt) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REFERENCE__REFERENCE)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REFERENCE__REFERENCE), element)); } printCountingMap.put("reference", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("."); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("parameter"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.REFERENCE__PARAMETER)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("parameter", count - 1); } } public void print_org_sintef_thingml_ExpressionGroup(org.sintef.thingml.ExpressionGroup element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(1); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXPRESSION_GROUP__EXP)); printCountingMap.put("exp", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (CsString) out.print("("); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("exp"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXPRESSION_GROUP__EXP)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("exp", count - 1); } // DEFINITION PART BEGINS (CsString) out.print(")"); } public void print_org_sintef_thingml_PropertyReference(org.sintef.thingml.PropertyReference element, 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<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(1); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY_REFERENCE__PROPERTY)); printCountingMap.put("property", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("property"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY_REFERENCE__PROPERTY)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getPropertyReferencePropertyReferenceResolver().deResolve((org.sintef.thingml.Variable) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY_REFERENCE__PROPERTY)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.PROPERTY_REFERENCE__PROPERTY), element)); } printCountingMap.put("property", count - 1); } } public void print_org_sintef_thingml_IntegerLiteral(org.sintef.thingml.IntegerLiteral element, 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<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(1); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTEGER_LITERAL__INT_VALUE)); printCountingMap.put("intValue", 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.sintef.thingml.ThingmlPackage.INTEGER_LITERAL__INT_VALUE)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("INTEGER_LITERAL"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.INTEGER_LITERAL__INT_VALUE), element)); } printCountingMap.put("intValue", count - 1); } } public void print_org_sintef_thingml_DoubleLiteral(org.sintef.thingml.DoubleLiteral element, 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<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(1); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.DOUBLE_LITERAL__DOUBLE_VALUE)); printCountingMap.put("doubleValue", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken) count = printCountingMap.get("doubleValue"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.DOUBLE_LITERAL__DOUBLE_VALUE)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("REAL_LITERAL"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.DOUBLE_LITERAL__DOUBLE_VALUE), element)); } printCountingMap.put("doubleValue", count - 1); } } public void print_org_sintef_thingml_StringLiteral(org.sintef.thingml.StringLiteral element, 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<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(1); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STRING_LITERAL__STRING_VALUE)); printCountingMap.put("stringValue", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken) count = printCountingMap.get("stringValue"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STRING_LITERAL__STRING_VALUE)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("STRING_LITERAL"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.STRING_LITERAL__STRING_VALUE), element)); } printCountingMap.put("stringValue", count - 1); } } public void print_org_sintef_thingml_BooleanLiteral(org.sintef.thingml.BooleanLiteral element, 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<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(1); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.BOOLEAN_LITERAL__BOOL_VALUE)); printCountingMap.put("boolValue", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken) count = printCountingMap.get("boolValue"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.BOOLEAN_LITERAL__BOOL_VALUE)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("BOOLEAN_LITERAL"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.BOOLEAN_LITERAL__BOOL_VALUE), element)); } printCountingMap.put("boolValue", count - 1); } } public void print_org_sintef_thingml_EnumLiteralRef(org.sintef.thingml.EnumLiteralRef element, 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<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ENUM_LITERAL_REF__ENUM)); printCountingMap.put("enum", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ENUM_LITERAL_REF__LITERAL)); printCountingMap.put("literal", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("enum"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ENUM_LITERAL_REF__ENUM)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getEnumLiteralRefEnumReferenceResolver().deResolve((org.sintef.thingml.Enumeration) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ENUM_LITERAL_REF__ENUM)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ENUM_LITERAL_REF__ENUM), element)); } printCountingMap.put("enum", count - 1); } // DEFINITION PART BEGINS (CsString) out.print(":"); // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("literal"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ENUM_LITERAL_REF__LITERAL)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getEnumLiteralRefLiteralReferenceResolver().deResolve((org.sintef.thingml.EnumerationLiteral) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ENUM_LITERAL_REF__LITERAL)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ENUM_LITERAL_REF__LITERAL), element)); } printCountingMap.put("literal", count - 1); } } public void print_org_sintef_thingml_ArrayIndex(org.sintef.thingml.ArrayIndex element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ARRAY_INDEX__ARRAY)); printCountingMap.put("array", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ARRAY_INDEX__INDEX)); printCountingMap.put("index", temp == null ? 0 : 1); // print collected hidden tokens int count; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("array"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ARRAY_INDEX__ARRAY)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("array", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("["); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("index"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.ARRAY_INDEX__INDEX)); if (o != null) { doPrint((org.eclipse.emf.ecore.EObject) o, out, localtab); } printCountingMap.put("index", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("]"); } public void print_org_sintef_thingml_FunctionCallExpression(org.sintef.thingml.FunctionCallExpression element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION_CALL_EXPRESSION__PARAMETERS)); printCountingMap.put("parameters", temp == null ? 0 : ((java.util.Collection<?>) temp).size()); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION_CALL_EXPRESSION__FUNCTION)); printCountingMap.put("function", temp == null ? 0 : 1); // print collected hidden tokens int count; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (PlaceholderUsingDefaultToken) count = printCountingMap.get("function"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION_CALL_EXPRESSION__FUNCTION)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("TEXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve(getReferenceResolverSwitch() == null ? null : getReferenceResolverSwitch().getFunctionCallFunctionReferenceResolver().deResolve((org.sintef.thingml.Function) o, element, (org.eclipse.emf.ecore.EReference) element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION_CALL_EXPRESSION__FUNCTION)), element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION_CALL_EXPRESSION__FUNCTION), element)); } printCountingMap.put("function", count - 1); } // DEFINITION PART BEGINS (CsString) out.print("("); // DEFINITION PART BEGINS (CompoundDefinition) sWriter = new java.io.StringWriter(); out1 = new java.io.PrintWriter(sWriter); printCountingMap1 = new java.util.LinkedHashMap<String, Integer>(printCountingMap); print_org_sintef_thingml_FunctionCallExpression_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(")"); } public void print_org_sintef_thingml_FunctionCallExpression_0(org.sintef.thingml.FunctionCallExpression element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; boolean iterate = true; java.io.StringWriter sWriter = null; java.io.PrintWriter out1 = null; java.util.Map<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("parameters"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION_CALL_EXPRESSION__PARAMETERS)); 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("parameters", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_FunctionCallExpression_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_sintef_thingml_FunctionCallExpression_0_0(org.sintef.thingml.FunctionCallExpression element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (CsString) out.print(","); // DEFINITION PART BEGINS (WhiteSpaces) out.print(" "); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("parameters"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.FUNCTION_CALL_EXPRESSION__PARAMETERS)); 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("parameters", count - 1); } } public void print_org_sintef_thingml_ExternExpression(org.sintef.thingml.ExternExpression element, String outertab, java.io.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). java.util.Map<String, Integer> printCountingMap = new java.util.LinkedHashMap<String, Integer>(2); Object temp; temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERN_EXPRESSION__EXPRESSION)); printCountingMap.put("expression", temp == null ? 0 : 1); temp = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERN_EXPRESSION__SEGMENTS)); printCountingMap.put("segments", 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<String, Integer> printCountingMap1 = null; // DEFINITION PART BEGINS (PlaceholderUsingSpecifiedToken) count = printCountingMap.get("expression"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERN_EXPRESSION__EXPRESSION)); if (o != null) { org.sintef.thingml.resource.thingml.IThingmlTokenResolver resolver = tokenResolverFactory.createTokenResolver("STRING_EXT"); resolver.setOptions(getOptions()); out.print(resolver.deResolve((Object) o, element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERN_EXPRESSION__EXPRESSION), element)); } printCountingMap.put("expression", 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<String, Integer>(printCountingMap); print_org_sintef_thingml_ExternExpression_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_sintef_thingml_ExternExpression_0(org.sintef.thingml.ExternExpression element, String outertab, java.io.PrintWriter out, java.util.Map<String, Integer> printCountingMap) { String localtab = outertab; int count; // DEFINITION PART BEGINS (CsString) out.print("&"); // DEFINITION PART BEGINS (Containment) count = printCountingMap.get("segments"); if (count > 0) { Object o = element.eGet(element.eClass().getEStructuralFeature(org.sintef.thingml.ThingmlPackage.EXTERN_EXPRESSION__SEGMENTS)); 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("segments", count - 1); } } }