simTL4J
annotations
Annotable
annotations
AnnotationInstance
annotation
parameter
AnnotationParameter
SingleAnnotationParameter
value
AnnotationParameterList
settings
AnnotationAttributeSetting
attribute
value
AnnotationValue
AnnotationAttribute
defaultValue
arrays
ArrayTypeable
getArrayDimension
arrayDimensionsBefore
arrayDimensionsAfter
ArrayDimension
ArrayInitializer
initialValues
ArrayInitializationValue
ArrayInstantiationBySize
sizes
ArrayInstantiationByValues
arrayInitializer
ArraySelector
position
classifiers
Classifier
getAllSuperClassifiers
ConcreteClassifier
getInnerClassifiers
getAllInnerClassifiers
getSuperTypeReferences
getAllMembers
context
fullName
Implementor
implements
Class
getAllSuperClassifiers
getSuperClass
unWrapPrimitiveType
extends
defaultExtends
Interface
getAllSuperClassifiers
extends
defaultExtends
Enumeration
getAllSuperClassifiers
constants
Annotation
getAllSuperClassifiers
AnonymousClass
getAllSuperClassifiers
getSuperClassifier
getAllMembers
context
commons
Commentable
getConcreteClassifier
name
getConcreteClassifiers
packageName
classifierQuery
getLibClass
name
getLibInterface
name
getClassClass
getObjectClass
getStringClass
getAnnotationInterface
getContainingAnnotationInstance
getContainingAnonymousClass
getContainingConcreteClassifier
getContainingCompilationUnit
getContainingPackageName
getParentConcreteClassifier
comments
NamedElement
name
name_PH
NamespaceAwareElement
getNamespacesAsString
getClassifierAtNamespaces
namespaces
containers
JavaRoot
getClassifiersInSamePackage
CompilationUnit
getContainedClassifier
name
getClassifiersInSamePackage
classifiers
Package
compilationUnits
subpackages
EmptyModel
expressions
ExpressionList
expressions
Expression
getType
getAlternativeType
getOneType
alternative
getArrayDimension
AssignmentExpression
child
assignmentOperator
value
AssignmentExpressionChild
ConditionalExpression
child
expressionIf
expressionElse
ConditionalExpressionChild
ConditionalOrExpression
children
ConditionalOrExpressionChild
ConditionalAndExpression
children
ConditionalAndExpressionChild
InclusiveOrExpression
children
InclusiveOrExpressionChild
ExclusiveOrExpression
children
ExclusiveOrExpressionChild
AndExpression
children
AndExpressionChild
EqualityExpression
equalityOperators
children
EqualityExpressionChild
InstanceOfExpression
child
InstanceOfExpressionChild
RelationExpression
children
relationOperators
RelationExpressionChild
ShiftExpression
children
shiftOperators
ShiftExpressionChild
AdditiveExpression
children
additiveOperators
AdditiveExpressionChild
MultiplicativeExpression
children
multiplicativeOperators
MultiplicativeExpressionChild
UnaryExpression
operators
child
UnaryExpressionChild
UnaryModificationExpression
child
operator
PrefixUnaryModificationExpression
SuffixUnaryModificationExpression
UnaryModificationExpressionChild
CastExpression
child
PrimaryExpression
NestedExpression
expression
generics
TypeArgument
TypeArgumentable
typeArguments
CallTypeArgumentable
callTypeArguments
TypeParametrizable
typeParameters
ExtendsTypeArgument
extendTypes
QualifiedTypeArgument
SuperTypeArgument
superType
TypeParameter
getAllSuperClassifiers
getAllMembers
context
getBoundType
typeReference
reference
extendTypes
UnknownTypeArgument
imports
Import
getImportedClassifier
name
getImportedClassifiers
getImportedMembers
ImportingElement
getDefaultImports
imports
StaticImport
static
ClassifierImport
classifier
PackageImport
StaticClassifierImport
StaticMemberImport
staticMembers
instantiations
Initializable
initialValue
Instantiation
NewConstructorCall
anonymousClass
ExplicitConstructorCall
callTarget
literals
Literal
getOneType
alternative
Self
BooleanLiteral
value
CharacterLiteral
value
FloatLiteral
DecimalFloatLiteral
decimalValue
HexFloatLiteral
hexValue
DoubleLiteral
DecimalDoubleLiteral
decimalValue
HexDoubleLiteral
hexValue
IntegerLiteral
DecimalIntegerLiteral
decimalValue
HexIntegerLiteral
hexValue
OctalIntegerLiteral
octalValue
LongLiteral
DecimalLongLiteral
decimalValue
HexLongLiteral
hexValue
OctalLongLiteral
octalValue
NullLiteral
Super
This
members
ExceptionThrower
exceptions
Member
MemberContainer
getContainedClassifier
name
getContainedField
name
getContainedMethod
name
members
defaultMembers
AdditionalField
getArrayDimension
Constructor
EmptyMember
Field
additionalFields
Method
isMethodForCall
methodCall
needsPerfectMatch
isSomeMethodForCall
methodCall
isBetterMethodForCall
otherMethod
methodCall
getArrayDimension
InterfaceMethod
ClassMethod
EnumConstant
anonymousClass
modifiers
Modifier
AnnotationInstanceOrModifier
AnnotableAndModifiable
isHidden
context
isStatic
annotationsAndModifiers
Modifiable
modifiers
Abstract
Final
Native
Protected
Public
Private
Static
Strictfp
Synchronized
Transient
Volatile
operators
Operator
AdditiveOperator
AssignmentOperator
EqualityOperator
MultiplicativeOperator
RelationOperator
ShiftOperator
UnaryOperator
UnaryModificationOperator
Assignment
AssignmentAnd
AssignmentDivision
AssignmentExclusiveOr
AssignmentMinus
AssignmentModulo
AssignmentMultiplication
AssignmentLeftShift
AssignmentOr
AssignmentPlus
AssignmentRightShift
AssignmentUnsignedRightShift
Equal
NotEqual
GreaterThan
GreaterThanOrEqual
LessThan
LessThanOrEqual
Addition
Subtraction
Division
Multiplication
Remainder
Complement
MinusMinus
Negate
PlusPlus
LeftShift
RightShift
UnsignedRightShift
parameters
Parameter
Parametrizable
parameters
OrdinaryParameter
VariableLengthParameter
references
Reference
getReferencedType
getPrevious
next
arraySelectors
Argumentable
getArgumentTypes
arguments
ReferenceableElement
ElementReference
target
IdentifierReference
MethodCall
ReflectiveClassReference
PrimitiveTypeReference
primitiveType
StringReference
value
SelfReference
self
statements
StatementContainer
statement
StatementListContainer
statements
Conditional
condition
ForLoopInitializer
Statement
SwitchCase
Assert
errorMessage
Break
Block
CatchBlock
parameter
Condition
elseStatement
Continue
DefaultSwitchCase
DoWhileLoop
EmptyStatement
ExpressionStatement
expression
ForLoop
init
updates
ForEachLoop
next
collection
Jump
target
JumpLabel
LocalVariableStatement
variable
NormalSwitchCase
Return
returnValue
Switch
cases
variable
SynchronizedBlock
lockProvider
Throw
throwable
TryBlock
catcheBlocks
finallyBlock
WhileLoop
condition
types
Type
equalsType
arrayDimension
otherType
otherArrayDimension
isSuperType
arrayDimension
otherType
otherArrayType
getAllMembers
context
TypedElement
typeReference
TypeReference
getTarget
getBoundTarget
reference
getPureClassifierReference
ClassifierReference
target
NamespaceClassifierReference
classifierReferences
PrimitiveType
getAllMembers
context
wrapPrimitiveType
Boolean
Byte
Char
Double
Float
Int
Long
Short
Void
variables
Variable
getArrayDimension
LocalVariable
additionalLocalVariables
AdditionalLocalVariable
getArrayDimension
simTL
TIf
condition
TFor
count
TForVariable
name
setToBeIterated
Template
templateHeader
class
TemplateHeader
modelImports
TModelImport
name
uri

TMethodCall
methodName
params
TAbstractMethodStatement
TFor_MemberContainer
TFor_StatementListContainer
TIf_MemberContainer
TIf_StatementListContainer
TPlaceholder
methodStatement
TPlaceholder_PrimaryExpression
TUnaryOperator
methodStatement
TUnaryOperatorNOT
TMethodStatementImpl
caller
callee
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0"
    xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="simTL4J"
    nsURI="http://www.emftext.org/simTL4J" nsPrefix="simTL4J">
  <eSubpackages name="annotations" nsURI="http://www.emftext.org/simTL4J/annotations"
      nsPrefix="annotations">
    <eClassifiers xsi:type="ecore:EClass" name="Annotable" abstract="true" eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1"
          eType="#//annotations/AnnotationInstance" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="AnnotationInstance" eSuperTypes="#//references/Reference #//modifiers/AnnotationInstanceOrModifier #//commons/NamespaceAwareElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="annotation" lowerBound="1"
          eType="#//classifiers/Classifier"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" eType="#//annotations/AnnotationParameter"
          containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="AnnotationParameter" abstract="true"
        eSuperTypes="#//commons/Commentable"/>
    <eClassifiers xsi:type="ecore:EClass" name="SingleAnnotationParameter" eSuperTypes="#//annotations/AnnotationParameter">
      <eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1"
          eType="#//annotations/AnnotationValue" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="AnnotationParameterList" eSuperTypes="#//annotations/AnnotationParameter">
      <eStructuralFeatures xsi:type="ecore:EReference" name="settings" upperBound="-1"
          eType="#//annotations/AnnotationAttributeSetting" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="AnnotationAttributeSetting" eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="attribute" lowerBound="1"
          eType="#//members/InterfaceMethod"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1"
          eType="#//annotations/AnnotationValue" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="AnnotationValue" abstract="true" eSuperTypes="#//commons/Commentable"/>
    <eClassifiers xsi:type="ecore:EClass" name="AnnotationAttribute" eSuperTypes="#//members/InterfaceMethod">
      <eStructuralFeatures xsi:type="ecore:EReference" name="defaultValue" eType="#//expressions/Expression"
          containment="true"/>
    </eClassifiers>
  </eSubpackages>
  <eSubpackages name="arrays" nsURI="http://www.emftext.org/simTL4J/arrays" nsPrefix="arrays">
    <eClassifiers xsi:type="ecore:EClass" name="ArrayTypeable" abstract="true" eSuperTypes="#//commons/Commentable">
      <eOperations name="getArrayDimension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="arrayDimensionsBefore"
          upperBound="-1" eType="#//arrays/ArrayDimension" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="arrayDimensionsAfter"
          upperBound="-1" eType="#//arrays/ArrayDimension" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ArrayDimension" eSuperTypes="#//commons/Commentable"/>
    <eClassifiers xsi:type="ecore:EClass" name="ArrayInitializer" eSuperTypes="#//arrays/ArrayInitializationValue #//annotations/AnnotationValue">
      <eStructuralFeatures xsi:type="ecore:EReference" name="initialValues" upperBound="-1"
          eType="#//arrays/ArrayInitializationValue" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ArrayInitializationValue" abstract="true"
        eSuperTypes="#//commons/Commentable"/>
    <eClassifiers xsi:type="ecore:EClass" name="ArrayInstantiationBySize" eSuperTypes="#//expressions/Expression #//types/TypedElement #//arrays/ArrayTypeable #//references/Reference">
      <eStructuralFeatures xsi:type="ecore:EReference" name="sizes" upperBound="-1"
          eType="#//expressions/Expression" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ArrayInstantiationByValues" eSuperTypes="#//expressions/Expression #//types/TypedElement #//arrays/ArrayTypeable #//references/Reference">
      <eStructuralFeatures xsi:type="ecore:EReference" name="arrayInitializer" eType="#//arrays/ArrayInitializer"
          containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ArraySelector" eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="position" eType="#//expressions/Expression"
          containment="true"/>
    </eClassifiers>
  </eSubpackages>
  <eSubpackages name="classifiers" nsURI="http://www.emftext.org/simTL4J/classifiers"
      nsPrefix="classifiers">
    <eClassifiers xsi:type="ecore:EClass" name="Classifier" abstract="true" eSuperTypes="#//types/Type #//references/ReferenceableElement">
      <eOperations name="getAllSuperClassifiers" upperBound="-1" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="//method has to be specified in subclasses&#xA;throw new java.lang.UnsupportedOperationException ( ) ; &#xA;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ConcreteClassifier" abstract="true"
        eSuperTypes="#//classifiers/Classifier #//generics/TypeParametrizable #//members/MemberContainer #//members/Member #//statements/Statement #//modifiers/AnnotableAndModifiable">
      <eOperations name="getInnerClassifiers" upperBound="-1" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="if ( this .eIsProxy ( ) ) { &#xA;&#x9;java.lang.String uriString = ( ( org.eclipse.emf.ecore.InternalEObject ) this ) .eProxyURI ( ) .trimFragment ( ) .toString ( ) ; &#xA;&#x9;java.lang.String fullName = uriString .substring ( sg.edu.nus.comp.simTL.language.java.simTL4J.JavaUniquePathConstructor .JAVA_CLASSIFIER_PATHMAP .length ( ) , uriString .length ( ) - &quot;.java&quot; .length ( ) ) + &quot;$&quot; ; &#xA;&#x9;return getConcreteClassifiers ( fullName , &quot;*&quot; ) ; &#xA;} else { &#xA;&#x9;java.lang.String suffix = &quot;&quot; ; &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier containingClass = this ; &#xA;&#x9;while ( containingClass .eContainer ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) { &#xA;&#x9;&#x9;containingClass = ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) containingClass .eContainer ( ) ; &#xA;&#x9;&#x9;suffix = containingClass .getName ( ) + sg.edu.nus.comp.simTL.language.java.simTL4J.JavaUniquePathConstructor .CLASSIFIER_SEPARATOR + suffix ; &#xA;&#x9;} &#xA;&#x9;if ( containingClass .eContainer ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.containers.CompilationUnit ) { &#xA;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.containers.CompilationUnit compilationUnit = ( sg.edu.nus.comp.simTL.language.java.simTL4J.containers.CompilationUnit ) containingClass .eContainer ( ) ; &#xA;&#x9;&#x9;java.lang.String fullName = compilationUnit .getNamespacesAsString ( ) + suffix + getName ( ) + sg.edu.nus.comp.simTL.language.java.simTL4J.JavaUniquePathConstructor .CLASSIFIER_SEPARATOR ; &#xA;&#x9;&#x9;return getConcreteClassifiers ( fullName , &quot;*&quot; ) ; &#xA;&#x9;} &#xA;} &#xA;//for classes declared locally inside methods that are not registered in the class path&#xA;org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > result = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > ( ) ; &#xA;//can not call ClassifierUtil.getAllMembers, because it will try to call this method!&#xA;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.members.Member member : getMembers ( ) ) { &#xA;&#x9;if ( member instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) { &#xA;&#x9;&#x9;result .add ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) member ) ; &#xA;&#x9;} &#xA;} &#xA;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier superClassifier : getAllSuperClassifiers ( ) ) { &#xA;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.members.Member member : superClassifier .getMembers ( ) ) { &#xA;&#x9;&#x9;if ( member instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) { &#xA;&#x9;&#x9;&#x9;result .add ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) member ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;} &#xA;return result ; &#xA;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getAllInnerClassifiers" upperBound="-1" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > innerClassifierList = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > ( ) ; &#xA;innerClassifierList .addAll ( getInnerClassifiers ( ) ) ; &#xA;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier superClassifier : getAllSuperClassifiers ( ) ) { &#xA;&#x9;org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > superInnerList = superClassifier .getInnerClassifiers ( ) ; &#xA;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier superInner : superInnerList ) { &#xA;&#x9;&#x9;if ( superInner .eIsProxy ( ) ) { &#xA;&#x9;&#x9;&#x9;superInner = ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) org.eclipse.emf.ecore.util.EcoreUtil .resolve ( superInner , this ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;&#x9;if ( ! superInner .eIsProxy ( ) &amp;&amp; ! superInner .isHidden ( this ) ) { &#xA;&#x9;&#x9;&#x9;innerClassifierList .add ( superInner ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;} &#xA;return innerClassifierList ; &#xA;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getSuperTypeReferences" upperBound="-1" eType="#//types/ClassifierReference">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.types.ClassifierReference > typeReferenceList = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.types.ClassifierReference > ( ) ; &#xA;if ( this == null ) { &#xA;&#x9;return typeReferenceList ; &#xA;} &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class ) { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class javaClass = ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class ) this ; &#xA;&#x9;if ( javaClass .getExtends ( ) != null ) { &#xA;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.ClassifierReference classifierReference = javaClass .getExtends ( ) .getPureClassifierReference ( ) ; &#xA;&#x9;&#x9;typeReferenceList .add ( classifierReference ) ; &#xA;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier target = ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) classifierReference .getTarget ( ) ; &#xA;&#x9;&#x9;if ( ! target .equals ( getObjectClass ( ) ) ) { &#xA;&#x9;&#x9;&#x9;typeReferenceList .addAll ( target .getSuperTypeReferences ( ) ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypeReference interfaceReference : javaClass .getImplements ( ) ) { &#xA;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.ClassifierReference classifierReference = interfaceReference .getPureClassifierReference ( ) ; &#xA;&#x9;&#x9;typeReferenceList .add ( classifierReference ) ; &#xA;&#x9;&#x9;typeReferenceList .addAll ( ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) classifierReference .getTarget ( ) ) .getSuperTypeReferences ( ) ) ; &#xA;&#x9;} &#xA;} else if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Interface ) { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Interface javaInterface = ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Interface ) this ; &#xA;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypeReference interfaceReference : javaInterface .getExtends ( ) ) { &#xA;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.ClassifierReference classifierReference = interfaceReference .getPureClassifierReference ( ) ; &#xA;&#x9;&#x9;typeReferenceList .add ( classifierReference ) ; &#xA;&#x9;&#x9;typeReferenceList .addAll ( ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) classifierReference .getTarget ( ) ) .getSuperTypeReferences ( ) ) ; &#xA;&#x9;} &#xA;} &#xA;return typeReferenceList ; &#xA;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getAllMembers" upperBound="-1" eType="#//members/Member">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.members.Member > memberList = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.members.Member > ( ) ; &#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier concreteClassifier = ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) this ; &#xA;memberList .addAll ( concreteClassifier .getMembers ( ) ) ; &#xA;memberList .addAll ( concreteClassifier .getDefaultMembers ( ) ) ; &#xA;//because inner classes are found in separate class files&#xA;memberList .addAll ( concreteClassifier .getAllInnerClassifiers ( ) ) ; &#xA;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier superClassifier : getAllSuperClassifiers ( ) ) { &#xA;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.members.Member member : superClassifier .getMembers ( ) ) { &#xA;&#x9;&#x9;if ( member instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.modifiers.AnnotableAndModifiable ) { &#xA;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.modifiers.AnnotableAndModifiable modifiable = ( sg.edu.nus.comp.simTL.language.java.simTL4J.modifiers.AnnotableAndModifiable ) member ; &#xA;&#x9;&#x9;&#x9;if ( ! modifiable .isHidden ( context ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;memberList .add ( member ) ; &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;} else { &#xA;&#x9;&#x9;&#x9;memberList .add ( member ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;&#x9;memberList .addAll ( superClassifier .getDefaultMembers ( ) ) ; &#xA;} &#xA;return memberList ; &#xA;"/>
          <details key="documentation" value="&#xA; Returns all members of the given classifier including inner classes and &#xA; all members of super types (extended classes and implemented interfaces).&#xA; &#xA; @param context to check protected visibility&#xA; @return member list&#xA;"/>
        </eAnnotations>
        <eParameters name="context" eType="#//commons/Commentable"/>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="fullName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
          transient="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Implementor" abstract="true" eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="implements" upperBound="-1"
          eType="#//types/TypeReference" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Class" eSuperTypes="#//classifiers/ConcreteClassifier #//classifiers/Implementor">
      <eOperations name="getAllSuperClassifiers" upperBound="-1" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > result = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > ( ) ; &#xA;//collects all superclasses first&#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class superClass = this ; &#xA;while ( superClass != null &amp;&amp; ! superClass .eIsProxy ( ) &amp;&amp; ! superClass .equals ( getObjectClass ( ) ) ) { &#xA;&#x9;superClass = superClass .getSuperClass ( ) ; &#xA;&#x9;if ( superClass != null ) { &#xA;&#x9;&#x9;result .add ( superClass ) ; &#xA;&#x9;} &#xA;} &#xA;//collect all implemented interfaces&#xA;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypeReference typeArg : this .getImplements ( ) ) { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier superInterface = ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) typeArg .getTarget ( ) ; &#xA;&#x9;if ( superInterface != null ) { &#xA;&#x9;&#x9;result .add ( superInterface ) ; &#xA;&#x9;&#x9;if ( superInterface instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Interface ) { &#xA;&#x9;&#x9;&#x9;result .addAll ( ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Interface ) superInterface ) .getAllSuperClassifiers ( ) ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;} &#xA;//collect all implemented interfaces of super classes&#xA;superClass = this .getSuperClass ( ) ; &#xA;if ( superClass != null &amp;&amp; ! superClass .eIsProxy ( ) &amp;&amp; ! superClass .equals ( getObjectClass ( ) ) ) { &#xA;&#x9;result .addAll ( superClass .getAllSuperClassifiers ( ) ) ; &#xA;} &#xA;return result ; &#xA;"/>
          <details key="documentation" value="&#xA; Recursively collects all super types (extended classes and implemented interfaces)&#xA; of the given class.&#xA; &#xA; @param classifierList the list for the result&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getSuperClass" eType="#//classifiers/Class">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypeReference superClassReference = this .getExtends ( ) ; &#xA;if ( superClassReference == null ) { &#xA;&#x9;superClassReference = this .getDefaultExtends ( ) ; &#xA;} &#xA;if ( superClassReference == null ) { &#xA;&#x9;return null ; &#xA;} &#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type result = superClassReference .getTarget ( ) ; &#xA;if ( result instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class ) { &#xA;&#x9;return ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class ) result ; &#xA;} &#xA;return null ; &#xA;"/>
          <details key="documentation" value="&#xA; @param this&#xA; @return the direct super class&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="unWrapPrimitiveType" eType="#//types/PrimitiveType">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="if ( getLibClass ( &quot;Boolean&quot; ) .equals ( this ) ) { &#xA;&#x9;return sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypesFactory.eINSTANCE.createBoolean(); &#xA;} &#xA;if ( getLibClass ( &quot;Byte&quot; ) .equals ( this ) ) { &#xA;&#x9;return sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypesFactory.eINSTANCE.createByte(); &#xA;} &#xA;if ( getLibClass ( &quot;Character&quot; ) .equals ( this ) ) { &#xA;&#x9;return sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypesFactory.eINSTANCE.createChar(); &#xA;} &#xA;if ( getLibClass ( &quot;Float&quot; ) .equals ( this ) ) { &#xA;&#x9;return sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypesFactory.eINSTANCE.createFloat(); &#xA;} &#xA;if ( getLibClass ( &quot;Double&quot; ) .equals ( this ) ) { &#xA;&#x9;return sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypesFactory.eINSTANCE.createDouble(); &#xA;} &#xA;if ( getLibClass ( &quot;Integer&quot; ) .equals ( this ) ) { &#xA;&#x9;return sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypesFactory.eINSTANCE.createInt(); &#xA;} &#xA;if ( getLibClass ( &quot;Long&quot; ) .equals ( this ) ) { &#xA;&#x9;return sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypesFactory.eINSTANCE.createLong(); &#xA;} &#xA;if ( getLibClass ( &quot;Short&quot; ) .equals ( this ) ) { &#xA;&#x9;return sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypesFactory.eINSTANCE.createShort(); &#xA;} &#xA;if ( getLibClass ( &quot;Void&quot; ) .equals ( this ) ) { &#xA;&#x9;return sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypesFactory.eINSTANCE.createVoid(); &#xA;} &#xA;return null ; &#xA;"/>
          <details key="documentation" value="&#xA; @param this&#xA; @return primitive type, if the class can be wrapped&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EReference" name="extends" eType="#//types/TypeReference"
          containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="defaultExtends" eType="#//types/TypeReference"
          transient="true" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Interface" eSuperTypes="#//classifiers/ConcreteClassifier">
      <eOperations name="getAllSuperClassifiers" upperBound="-1" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > result = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > ( ) ; &#xA;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypeReference typeArg : this .getExtends ( ) ) { &#xA;&#x9;//use ConcreteClassifier instead of Interface because java.lang.Object can also act as implemented interface&#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier superInterface = ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) typeArg .getTarget ( ) ; &#xA;&#x9;if ( superInterface != null ) { &#xA;&#x9;&#x9;result .add ( superInterface ) ; &#xA;&#x9;&#x9;if ( superInterface instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Interface ) { &#xA;&#x9;&#x9;&#x9;result .addAll ( ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Interface ) superInterface ) .getAllSuperClassifiers ( ) ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;} &#xA;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypeReference typeArg : this .getDefaultExtends ( ) ) { &#xA;&#x9;//use ConcreteClassifier instead of Interface because java.lang.Object can also act as implemented interface&#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier superInterface = ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) typeArg .getTarget ( ) ; &#xA;&#x9;if ( superInterface != null ) { &#xA;&#x9;&#x9;result .add ( superInterface ) ; &#xA;&#x9;&#x9;if ( superInterface instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Interface ) { &#xA;&#x9;&#x9;&#x9;result .addAll ( ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Interface ) superInterface ) .getAllSuperClassifiers ( ) ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;} &#xA;return result ; &#xA;"/>
          <details key="documentation" value="&#xA; @return all interfaces extended by this interface. The type is &#xA; ConcreteClassifier, because java.lang.Object is also extended although&#xA; it is a Class.&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EReference" name="extends" upperBound="-1"
          eType="#//types/TypeReference" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="defaultExtends" upperBound="-1"
          eType="#//types/TypeReference" transient="true" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Enumeration" eSuperTypes="#//classifiers/ConcreteClassifier #//classifiers/Implementor">
      <eOperations name="getAllSuperClassifiers" upperBound="-1" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > result = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > ( ) ; &#xA;//enumerations inherit from java.lang.Enum&#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class enumClass = getLibClass ( &quot;Enum&quot; ) ; &#xA;result .add ( enumClass ) ; &#xA;result .addAll ( enumClass .getAllSuperClassifiers ( ) ) ; &#xA;//collect all implemented interfaces&#xA;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypeReference typeArg : this .getImplements ( ) ) { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier superInterface = ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) typeArg .getTarget ( ) ; &#xA;&#x9;if ( superInterface != null ) { &#xA;&#x9;&#x9;result .add ( superInterface ) ; &#xA;&#x9;&#x9;if ( superInterface instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Interface ) { &#xA;&#x9;&#x9;&#x9;result .addAll ( ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Interface ) superInterface ) .getAllSuperClassifiers ( ) ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;} &#xA;return result ; &#xA;"/>
          <details key="documentation" value="&#xA; @return all interfaces extended by this enumeration.&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EReference" name="constants" upperBound="-1"
          eType="#//members/EnumConstant" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Annotation" eSuperTypes="#//classifiers/ConcreteClassifier">
      <eOperations name="getAllSuperClassifiers" upperBound="-1" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > result = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > ( ) ; &#xA;result .add ( getAnnotationInterface ( ) ) ; &#xA;return result ; &#xA;"/>
          <details key="documentation" value="&#xA; @return &lt;code>java.lang.annotation.Annotation&lt;/code> &#xA;"/>
        </eAnnotations>
      </eOperations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="AnonymousClass" eSuperTypes="#//types/Type #//members/MemberContainer">
      <eOperations name="getAllSuperClassifiers" upperBound="-1" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > superClassifierList = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > ( ) ; &#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier superClassifier = getSuperClassifier ( ) ; &#xA;if ( superClassifier != null ) { &#xA;&#x9;superClassifierList .add ( superClassifier ) ; &#xA;&#x9;superClassifierList .addAll ( superClassifier .getAllSuperClassifiers ( ) ) ; &#xA;} else { &#xA;&#x9;superClassifierList .add ( getObjectClass ( ) ) ; &#xA;} &#xA;return superClassifierList ; &#xA;"/>
          <details key="documentation" value="&#xA; @return a view on all super classifiers&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getSuperClassifier" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="sg.edu.nus.comp.simTL.language.java.simTL4J.instantiations.NewConstructorCall ncCall = null ; &#xA;if ( this .eContainer ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.instantiations.NewConstructorCall ) { &#xA;&#x9;ncCall = ( sg.edu.nus.comp.simTL.language.java.simTL4J.instantiations.NewConstructorCall ) this .eContainer ( ) ; &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier superClassifier = ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) ncCall .getTypeReference ( ) .getTarget ( ) ; &#xA;&#x9;return superClassifier ; &#xA;} else if ( this .eContainer ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.members.EnumConstant ) { &#xA;&#x9;if ( this .eContainer ( ) .eContainer ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Enumeration ) { &#xA;&#x9;&#x9;return ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Enumeration ) this .eContainer ( ) .eContainer ( ) ; &#xA;&#x9;} &#xA;} &#xA;return null ; &#xA;"/>
          <details key="documentation" value="&#xA; @return the direct super classifier&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getAllMembers" upperBound="-1" eType="#//members/Member">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.members.Member > memberList = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.members.Member > ( ) ; &#xA;memberList .addAll ( this .getMembers ( ) ) ; &#xA;memberList .addAll ( this .getDefaultMembers ( ) ) ; &#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.instantiations.NewConstructorCall ncCall = null ; &#xA;if ( this .eContainer ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.instantiations.NewConstructorCall ) { &#xA;&#x9;ncCall = ( sg.edu.nus.comp.simTL.language.java.simTL4J.instantiations.NewConstructorCall ) this .eContainer ( ) ; &#xA;&#x9;; &#xA;} &#xA;if ( ncCall == null ) { &#xA;&#x9;return memberList ; &#xA;} else { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier classifier = ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) ncCall .getTypeReference ( ) .getTarget ( ) ; &#xA;&#x9;if ( classifier != null ) { &#xA;&#x9;&#x9;org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.members.Member > superMemberList = classifier .getAllMembers ( context ) ; &#xA;&#x9;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.members.Member superMember : superMemberList ) { &#xA;&#x9;&#x9;&#x9;//exclude private members&#xA;if ( superMember instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.modifiers.AnnotableAndModifiable ) { &#xA;&#x9;&#x9;&#x9;&#x9;if ( superMember .eIsProxy ( ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;superMember = ( sg.edu.nus.comp.simTL.language.java.simTL4J.members.Member ) org.eclipse.emf.ecore.util.EcoreUtil .resolve ( superMember , this ) ; &#xA;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.modifiers.AnnotableAndModifiable modifiable = ( sg.edu.nus.comp.simTL.language.java.simTL4J.modifiers.AnnotableAndModifiable ) superMember ; &#xA;&#x9;&#x9;&#x9;&#x9;if ( ! modifiable .isHidden ( context ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;memberList .add ( superMember ) ; &#xA;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;} else { &#xA;&#x9;&#x9;&#x9;&#x9;memberList .add ( superMember ) ; &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;&#x9;return memberList ; &#xA;} &#xA;"/>
          <details key="documentation" value="&#xA; @param context to check protected visibility&#xA; @return a view on all members including super classifiers' members&#xA;"/>
        </eAnnotations>
        <eParameters name="context" eType="#//commons/Commentable"/>
      </eOperations>
    </eClassifiers>
  </eSubpackages>
  <eSubpackages name="commons" nsURI="http://www.emftext.org/simTL4J/commons" nsPrefix="commons">
    <eClassifiers xsi:type="ecore:EClass" name="Commentable" abstract="true">
      <eOperations name="getConcreteClassifier" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="return ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) sg.edu.nus.comp.simTL.language.java.simTL4J.JavaClasspath .get ( this ) .getClassifier ( name ) ; &#xA;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
        <eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      </eOperations>
      <eOperations name="getConcreteClassifiers" upperBound="-1" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > result = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > ( ) ; &#xA;for ( org.eclipse.emf.ecore.EObject classifier : sg.edu.nus.comp.simTL.language.java.simTL4J.JavaClasspath .get ( this ) .getClassifiers ( packageName , classifierQuery ) ) { &#xA;&#x9;result .add ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) classifier ) ; &#xA;} &#xA;return result ; &#xA;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
        <eParameters name="packageName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
        <eParameters name="classifierQuery" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      </eOperations>
      <eOperations name="getLibClass" eType="#//classifiers/Class">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="if ( this .eResource ( ) == null ) { &#xA;&#x9;throw new java.lang.IllegalArgumentException ( &quot;object context element must have a resource&quot; ) ; &#xA;} &#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class classClass = ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class ) getConcreteClassifier ( &quot;java.lang.&quot; + name ) ; &#xA;classClass = ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class ) org.eclipse.emf.ecore.util.EcoreUtil .resolve ( classClass , this ) ; &#xA;return classClass ; &#xA;"/>
          <details key="documentation" value="&#xA; Finds the &lt;code>sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class&lt;/code>&#xA; representing the class with the given name located in &lt;code>java.lang&lt;/code>.&#xA; &#xA; @param name name of the Class&#xA; @return the Class&#xA;"/>
        </eAnnotations>
        <eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      </eOperations>
      <eOperations name="getLibInterface" eType="#//classifiers/Interface">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="if ( this .eResource ( ) == null ) { &#xA;&#x9;throw new java.lang.IllegalArgumentException ( &quot;object context element  must have a resource&quot; ) ; &#xA;} &#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier classClass = getConcreteClassifier ( &quot;java.lang.&quot; + name ) ; &#xA;return ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Interface ) org.eclipse.emf.ecore.util.EcoreUtil .resolve ( classClass , this ) ; &#xA;"/>
          <details key="documentation" value="&#xA; Finds the &lt;code>sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Interface&lt;/code>&#xA; representing the interface with the given name located in &lt;code>java.lang&lt;/code>.&#xA; &#xA; @param name name of the Interface&#xA; @return the Class&#xA;"/>
        </eAnnotations>
        <eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      </eOperations>
      <eOperations name="getClassClass" eType="#//classifiers/Class">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="return getLibClass ( &quot;Class&quot; ) ; &#xA;"/>
          <details key="documentation" value="&#xA; Finds the &lt;code>sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class&lt;/code>&#xA; representing &lt;code>java.lang.Class&lt;/code>.&#xA; &#xA; @return the Class&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getObjectClass" eType="#//classifiers/Class">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="return getLibClass ( &quot;Object&quot; ) ; &#xA;"/>
          <details key="documentation" value="&#xA; Finds the &lt;code>sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class&lt;/code>&#xA; representing &lt;code>java.lang.Object&lt;/code>.&#xA; &#xA; @return the Class&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getStringClass" eType="#//classifiers/Class">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="return getLibClass ( &quot;String&quot; ) ; &#xA;"/>
          <details key="documentation" value="&#xA; Finds the &lt;code>sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class&lt;/code>&#xA; representing &lt;code>java.lang.String&lt;/code>.&#xA; &#xA; @return the Class&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getAnnotationInterface" eType="#//classifiers/Interface">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="if ( this .eResource ( ) == null ) { &#xA;&#x9;throw new java.lang.IllegalArgumentException ( &quot;object context element must have a resource&quot; ) ; &#xA;} &#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Interface annotationClass = ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Interface ) org.eclipse.emf.ecore.util.EcoreUtil .resolve ( getConcreteClassifier ( &quot;java.lang.annotation.Annotation&quot; ) , this ) ; &#xA;return annotationClass ; &#xA;"/>
          <details key="documentation" value="&#xA; Finds the &lt;code>sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Interface&lt;/code>&#xA; representing &lt;code>java.lang.annotation.Annotation&lt;/code>.&#xA; &#xA; @return the Class&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getContainingAnnotationInstance" eType="#//annotations/AnnotationInstance">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.ecore.EObject value = this ; &#xA;while ( ! ( value instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.annotations.AnnotationInstance ) &amp;&amp; value != null ) { &#xA;&#x9;value = value .eContainer ( ) ; &#xA;} &#xA;return ( sg.edu.nus.comp.simTL.language.java.simTL4J.annotations.AnnotationInstance ) value ; &#xA;"/>
          <details key="documentation" value="&#xA; Finds the containing annotation instance for the given element.&#xA; &#xA; @param value&#xA; @return containing annotation instance&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getContainingAnonymousClass" eType="#//classifiers/AnonymousClass">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.ecore.EObject value = this ; &#xA;while ( //do not jump over other classifiers &#xA;! ( value instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.AnonymousClass ) &amp;&amp; ! ( value instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) &amp;&amp; value != null ) { &#xA;&#x9;value = value .eContainer ( ) ; &#xA;} &#xA;if ( ! ( value instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.AnonymousClass ) ) { &#xA;&#x9;return null ; &#xA;} &#xA;return ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.AnonymousClass ) value ; &#xA;"/>
          <details key="documentation" value="&#xA; Finds the containing anonymous class for the given element.&#xA; &#xA; @param value&#xA; @return containing anonymous class &#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getContainingConcreteClassifier" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.ecore.EObject value = this ; &#xA;while ( ! ( value instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) &amp;&amp; value != null ) { &#xA;&#x9;value = value .eContainer ( ) ; &#xA;} &#xA;return ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) value ; &#xA;"/>
          <details key="documentation" value="&#xA; Finds the containing classifier for the given element.&#xA; &#xA; @param value&#xA; @return containing classifier&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getContainingCompilationUnit" eType="#//containers/CompilationUnit">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.ecore.EObject value = this ; &#xA;while ( ! ( value instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.containers.CompilationUnit ) &amp;&amp; value != null ) { &#xA;&#x9;value = value .eContainer ( ) ; &#xA;} &#xA;return ( sg.edu.nus.comp.simTL.language.java.simTL4J.containers.CompilationUnit ) value ; &#xA;"/>
          <details key="documentation" value="&#xA; Finds the containing compilation unit for the given element.&#xA; &#xA; @param value&#xA; @return containing compilation unit&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getContainingPackageName" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="sg.edu.nus.comp.simTL.language.java.simTL4J.containers.CompilationUnit cu = getContainingCompilationUnit ( ) ; &#xA;if ( cu == null ) { &#xA;&#x9;return null ; &#xA;} &#xA;int idx = cu .getNamespaces ( ) .size ( ) ; &#xA;if ( cu .getName ( ) != null ) { &#xA;&#x9;char [] fullName = cu .getName ( ) .toCharArray ( ) ; &#xA;&#x9;for ( int i = 0 ; i &lt; fullName .length ; i ++ ) { &#xA;&#x9;&#x9;if ( fullName [ i ] == '$' ) { &#xA;&#x9;&#x9;&#x9;idx -- ; &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;} &#xA;return new org.eclipse.emf.common.util.BasicEList &lt; java.lang.String > ( cu .getNamespaces ( ) .subList ( 0 , idx ) ) ; &#xA;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getParentConcreteClassifier" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier classifier = getContainingConcreteClassifier ( ) ; &#xA;if ( classifier == null ) { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.containers.CompilationUnit cu = getContainingCompilationUnit ( ) ; &#xA;&#x9;//maybe the outer classifier is in an extra cu&#xA;classifier = ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) org.eclipse.emf.ecore.util.EcoreUtil .resolve ( getConcreteClassifier ( cu .getNamespacesAsString ( ) ) , this ) ; &#xA;&#x9;if ( classifier .eIsProxy ( ) ) { &#xA;&#x9;&#x9;classifier = null ; &#xA;&#x9;} &#xA;} &#xA;return classifier ; &#xA;"/>
          <details key="documentation" value="&#xA; Finds the classifier that is the parent of this element. If &#xA; this element is an inner classifier the parent classifier does&#xA; not necessarily contain this element, since it can reside in &#xA; a different compilation unit when stored in byte code.&#xA; &#xA; @param value&#xA; @return containing classifier&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="comments" unique="false"
          upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true" eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="name_PH" eType="#//simTL/TPlaceholder"
          containment="true">
        <eAnnotations source="xframes"/>
      </eStructuralFeatures>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="NamespaceAwareElement" abstract="true"
        eSuperTypes="#//commons/Commentable">
      <eOperations name="getNamespacesAsString" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="java.lang.String containerName = &quot;&quot; ; &#xA;for ( java.util.Iterator &lt; java.lang.String > it = getNamespaces ( ) .iterator ( ) ; it .hasNext ( ) ; ) { &#xA;&#x9;java.lang.String namespaceFragment = it .next ( ) ; &#xA;&#x9;//does it point at a classifier or a package as container?&#xA;java.lang.String assumedPackageName = containerName + namespaceFragment + sg.edu.nus.comp.simTL.language.java.simTL4J.JavaUniquePathConstructor .PACKAGE_SEPARATOR ; &#xA;&#x9;java.lang.String assumedClassifierName = containerName + namespaceFragment + sg.edu.nus.comp.simTL.language.java.simTL4J.JavaUniquePathConstructor .CLASSIFIER_SEPARATOR ; &#xA;&#x9;if ( it .hasNext ( ) ) { &#xA;&#x9;&#x9;if ( sg.edu.nus.comp.simTL.language.java.simTL4J.JavaClasspath .get ( this ) .existsPackage ( assumedClassifierName ) ) { &#xA;&#x9;&#x9;&#x9;containerName = assumedClassifierName ; &#xA;&#x9;&#x9;} else { &#xA;&#x9;&#x9;&#x9;//assume package&#xA;containerName = assumedPackageName ; &#xA;&#x9;&#x9;} &#xA;&#x9;} else { &#xA;&#x9;&#x9;if ( sg.edu.nus.comp.simTL.language.java.simTL4J.JavaClasspath .get ( this ) .existsPackage ( assumedPackageName ) ) { &#xA;&#x9;&#x9;&#x9;//a package is always available as key&#xA;containerName = assumedPackageName ; &#xA;&#x9;&#x9;} else { &#xA;&#x9;&#x9;&#x9;//assume classifier that is not key, but value in the map&#xA;containerName = assumedClassifierName ; &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;} &#xA;return containerName ; &#xA;"/>
          <details key="documentation" value="&#xA; Converts the namespaces array of the given namespace aware element into&#xA; a String representation using package (.) and class ($) delimiters. The method&#xA; uses the classpath to determine for each element of the namespace if it &#xA; identifies a package or a class.&#xA; &#xA; @param naElement&#xA; @return single string representation of namespace&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getClassifierAtNamespaces" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="java.lang.String fullQualifiedName = getNamespacesAsString ( ) ; &#xA;if ( fullQualifiedName == null || fullQualifiedName .endsWith ( sg.edu.nus.comp.simTL.language.java.simTL4J.JavaUniquePathConstructor .PACKAGE_SEPARATOR ) ) { &#xA;&#x9;return null ; &#xA;} &#xA;//cut the trailing separator&#xA;fullQualifiedName = fullQualifiedName .substring ( 0 , fullQualifiedName .length ( ) - 1 ) ; &#xA;return ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) org.eclipse.emf.ecore.util.EcoreUtil .resolve ( getConcreteClassifier ( fullQualifiedName ) , this ) ; &#xA;"/>
          <details key="documentation" value="&#xA; Assuming the namespace&#xA; identifies a classifier, that classifier is returned.&#xA; &#xA; @return classifier at namespace&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="namespaces" unique="false"
          upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    </eClassifiers>
  </eSubpackages>
  <eSubpackages name="containers" nsURI="http://www.emftext.org/simTL4J/containers"
      nsPrefix="containers">
    <eClassifiers xsi:type="ecore:EClass" name="JavaRoot" abstract="true" eSuperTypes="#//commons/NamedElement #//commons/NamespaceAwareElement #//imports/ImportingElement">
      <eOperations name="getClassifiersInSamePackage" upperBound="-1" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > defaultImportList = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > ( ) ; &#xA;java.lang.String packageName = getNamespacesAsString ( ) ; &#xA;defaultImportList .addAll ( getConcreteClassifiers ( packageName , &quot;*&quot; ) ) ; &#xA;return defaultImportList ; &#xA;"/>
          <details key="documentation" value="&#xA; @return all classes in the same package imports&#xA;"/>
        </eAnnotations>
      </eOperations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="CompilationUnit" eSuperTypes="#//containers/JavaRoot">
      <eOperations name="getContainedClassifier" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="if ( name == null ) { &#xA;&#x9;return null ; &#xA;} &#xA;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier candidate : getClassifiers ( ) ) { &#xA;&#x9;if ( name .equals ( candidate .getName ( ) ) ) { &#xA;&#x9;&#x9;return candidate ; &#xA;&#x9;} &#xA;} &#xA;return null ; &#xA;"/>
          <details key="documentation" value="&#xA; @param name name of the contained Classifier&#xA; @return the Classifier&#xA;"/>
        </eAnnotations>
        <eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      </eOperations>
      <eOperations name="getClassifiersInSamePackage" upperBound="-1" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > defaultImportList = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > ( ) ; &#xA;java.lang.String packageName = getNamespacesAsString ( ) ; &#xA;//locally defined in this container&#xA;defaultImportList .addAll ( getClassifiers ( ) ) ; &#xA;defaultImportList .addAll ( getConcreteClassifiers ( packageName , &quot;*&quot; ) ) ; &#xA;return defaultImportList ; &#xA;"/>
          <details key="documentation" value="&#xA; @return all classes in the same package imports&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EReference" name="classifiers" upperBound="-1"
          eType="#//classifiers/ConcreteClassifier" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Package" eSuperTypes="#//containers/JavaRoot #//annotations/Annotable #//references/ReferenceableElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="compilationUnits" upperBound="-1"
          eType="#//containers/CompilationUnit" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="subpackages" upperBound="-1"
          eType="#//containers/Package" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="EmptyModel" eSuperTypes="#//containers/JavaRoot"/>
  </eSubpackages>
  <eSubpackages name="expressions" nsURI="http://www.emftext.org/simTL4J/expressions"
      nsPrefix="expressions">
    <eClassifiers xsi:type="ecore:EClass" name="ExpressionList" eSuperTypes="#//statements/ForLoopInitializer">
      <eStructuralFeatures xsi:type="ecore:EReference" name="expressions" upperBound="-1"
          eType="#//expressions/Expression" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Expression" abstract="true" eSuperTypes="#//arrays/ArrayInitializationValue #//annotations/AnnotationValue">
      <eOperations name="getType" eType="#//types/Type">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="return getOneType ( false ) ; &#xA;"/>
          <details key="documentation" value="&#xA; Returns the type of the expression considering all concrete&#xA; subtypes of Expression.&#xA; &#xA; @return type of expression&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getAlternativeType" eType="#//types/Type">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="return getOneType ( true ) ; &#xA;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getOneType" eType="#//types/Type">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class stringClass = getStringClass ( ) ; &#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type type = null ; &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference reference = ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) this ; &#xA;&#x9;//navigate down references&#xA;while ( reference .getNext ( ) != null ) { &#xA;&#x9;&#x9;reference = reference .getNext ( ) ; &#xA;&#x9;} &#xA;&#x9;type = reference .getReferencedType ( ) ; &#xA;} else if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.literals.Literal ) { &#xA;&#x9;type = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.literals.Literal ) this ) .getType ( ) ; &#xA;} else if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.CastExpression ) { &#xA;&#x9;type = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.CastExpression ) this ) .getTypeReference ( ) .getTarget ( ) ; &#xA;} else if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.AssignmentExpression ) { &#xA;&#x9;type = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.AssignmentExpression ) this ) .getChild ( ) .getOneType ( alternative ) ; &#xA;} else if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.ConditionalExpression &amp;&amp; ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.ConditionalExpression ) this ) .getExpressionIf ( ) != null ) { &#xA;&#x9;if ( alternative ) { &#xA;&#x9;&#x9;type = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.ConditionalExpression ) this ) .getExpressionElse ( ) .getOneType ( alternative ) ; &#xA;&#x9;} else { &#xA;&#x9;&#x9;type = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.ConditionalExpression ) this ) .getExpressionIf ( ) .getOneType ( alternative ) ; &#xA;&#x9;} &#xA;} else if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.EqualityExpression || this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.RelationExpression || this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.ConditionalOrExpression || this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.ConditionalAndExpression || this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.InstanceOfExpression ) { &#xA;&#x9;type = getLibClass ( &quot;Boolean&quot; ) ; &#xA;} else if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.AdditiveExpression || this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.MultiplicativeExpression || this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.InclusiveOrExpression || this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.ExclusiveOrExpression || this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.AndExpression || this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.ShiftExpression ) { &#xA;&#x9;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.AdditiveExpression ) { &#xA;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.AdditiveExpression additiveExpression = ( sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.AdditiveExpression ) this ; &#xA;&#x9;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.Expression subExp : additiveExpression .getChildren ( ) ) { &#xA;&#x9;&#x9;&#x9;if ( stringClass .equals ( subExp .getOneType ( alternative ) ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;//special case: string concatenation&#xA;return stringClass ; &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;&#x9;@ SuppressWarnings ( &quot;unchecked&quot; ) sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.Expression subExp = ( ( org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.Expression > ) this .eGet ( this .eClass ( ) .getEStructuralFeature ( &quot;children&quot; ) ) ) .get ( 0 ) ; &#xA;&#x9;return subExp .getOneType ( alternative ) ; &#xA;} else if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.UnaryExpression ) { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.Expression subExp = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.UnaryExpression ) this ) .getChild ( ) ; &#xA;&#x9;return subExp .getOneType ( alternative ) ; &#xA;} else for ( org.eclipse.emf.common.util.TreeIterator &lt; org.eclipse.emf.ecore.EObject > i = this .eAllContents ( ) ; i .hasNext ( ) ; ) { &#xA;&#x9;org.eclipse.emf.ecore.EObject next = i .next ( ) ; &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type nextType = null ; &#xA;&#x9;if ( next instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.PrimaryExpression ) { &#xA;&#x9;&#x9;if ( next instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) { &#xA;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ref = ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) next ; &#xA;&#x9;&#x9;&#x9;//navigate down references&#xA;while ( ref .getNext ( ) != null ) { &#xA;&#x9;&#x9;&#x9;&#x9;ref = ref .getNext ( ) ; &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;next = ref ; &#xA;&#x9;&#x9;} &#xA;&#x9;&#x9;if ( next instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.literals.Literal ) { &#xA;&#x9;&#x9;&#x9;nextType = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.literals.Literal ) next ) .getType ( ) ; &#xA;&#x9;&#x9;} else if ( next instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.CastExpression ) { &#xA;&#x9;&#x9;&#x9;nextType = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.CastExpression ) next ) .getTypeReference ( ) .getTarget ( ) ; &#xA;&#x9;&#x9;} else { &#xA;&#x9;&#x9;&#x9;nextType = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) next ) .getReferencedType ( ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;&#x9;i .prune ( ) ; &#xA;&#x9;} &#xA;&#x9;if ( nextType != null ) { &#xA;&#x9;&#x9;type = nextType ; &#xA;&#x9;&#x9;//in the special case that this is an expression with&#xA;//some string included, everything is converted to string&#xA;if ( stringClass .equals ( type ) ) { &#xA;&#x9;&#x9;&#x9;break ; &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;} &#xA;//type can be null in cases of unresolved/unresolvable proxies&#xA;return type ; &#xA;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
        <eParameters name="alternative" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
      </eOperations>
      <eOperations name="getArrayDimension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="long size = 0 ; &#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.arrays.ArrayTypeable arrayType = null ; &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.NestedExpression &amp;&amp; ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.NestedExpression ) this ) .getNext ( ) == null ) { &#xA;&#x9;return ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.NestedExpression ) this ) .getExpression ( ) .getArrayDimension ( ) - ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.NestedExpression ) this ) .getArraySelectors ( ) .size ( ) ; &#xA;} &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.ConditionalExpression &amp;&amp; ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.ConditionalExpression ) this ) .getExpressionIf ( ) != null ) { &#xA;&#x9;return ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.ConditionalExpression ) this ) .getExpressionIf ( ) .getArrayDimension ( ) ; &#xA;} &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.AssignmentExpression ) { &#xA;&#x9;return ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.AssignmentExpression ) this ) .getValue ( ) .getArrayDimension ( ) ; &#xA;} &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.InstanceOfExpression ) { &#xA;&#x9;return 0 ; &#xA;} &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference reference = ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) this ; &#xA;&#x9;while ( reference .getNext ( ) != null ) { &#xA;&#x9;&#x9;reference = reference .getNext ( ) ; &#xA;&#x9;} &#xA;&#x9;//an array clone? -> dimension defined by cloned array&#xA;if ( reference instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.ElementReference &amp;&amp; reference .getPrevious ( ) != null ) { &#xA;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.references.ReferenceableElement target = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.ElementReference ) reference ) .getTarget ( ) ; &#xA;&#x9;&#x9;if ( target instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.members.Method ) { &#xA;&#x9;&#x9;&#x9;if ( &quot;clone&quot; .equals ( ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.members.Method ) target ) .getName ( ) ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;reference = ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) reference .eContainer ( ) ; &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;&#x9;if ( reference instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.ElementReference ) { &#xA;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.references.ElementReference elementReference = ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.ElementReference ) reference ; &#xA;&#x9;&#x9;if ( elementReference .getTarget ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.arrays.ArrayTypeable ) { &#xA;&#x9;&#x9;&#x9;arrayType = ( sg.edu.nus.comp.simTL.language.java.simTL4J.arrays.ArrayTypeable ) elementReference .getTarget ( ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;&#x9;if ( elementReference .getTarget ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.variables.AdditionalLocalVariable ) { &#xA;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.variables.AdditionalLocalVariable additionalLocalVariable = ( sg.edu.nus.comp.simTL.language.java.simTL4J.variables.AdditionalLocalVariable ) elementReference .getTarget ( ) ; &#xA;&#x9;&#x9;&#x9;arrayType = ( sg.edu.nus.comp.simTL.language.java.simTL4J.variables.LocalVariable ) additionalLocalVariable .eContainer ( ) ; &#xA;&#x9;&#x9;&#x9;size += additionalLocalVariable .getArrayDimensionsAfter ( ) .size ( ) ; &#xA;&#x9;&#x9;&#x9;size -= arrayType .getArrayDimensionsAfter ( ) .size ( ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;&#x9;if ( elementReference .getTarget ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.members.AdditionalField ) { &#xA;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.members.AdditionalField additionalField = ( sg.edu.nus.comp.simTL.language.java.simTL4J.members.AdditionalField ) elementReference .getTarget ( ) ; &#xA;&#x9;&#x9;&#x9;arrayType = ( sg.edu.nus.comp.simTL.language.java.simTL4J.members.Field ) additionalField .eContainer ( ) ; &#xA;&#x9;&#x9;&#x9;size += additionalField .getArrayDimensionsAfter ( ) .size ( ) ; &#xA;&#x9;&#x9;&#x9;size -= arrayType .getArrayDimensionsAfter ( ) .size ( ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;} else if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.arrays.ArrayTypeable ) { &#xA;&#x9;&#x9;size += ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.arrays.ArrayTypeable ) this ) .getArrayDimensionsBefore ( ) .size ( ) + ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.arrays.ArrayTypeable ) this ) .getArrayDimensionsAfter ( ) .size ( ) ; &#xA;&#x9;&#x9;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.parameters.VariableLengthParameter ) { &#xA;&#x9;&#x9;&#x9;size ++ ; &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;&#x9;size -= reference .getArraySelectors ( ) .size ( ) ; &#xA;} else if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.arrays.ArrayTypeable ) { &#xA;&#x9;size += ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.arrays.ArrayTypeable ) this ) .getArrayDimensionsBefore ( ) .size ( ) + ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.arrays.ArrayTypeable ) this ) .getArrayDimensionsAfter ( ) .size ( ) ; &#xA;&#x9;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.parameters.VariableLengthParameter ) { &#xA;&#x9;&#x9;size ++ ; &#xA;&#x9;} &#xA;} &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.arrays.ArrayInstantiationBySize ) { &#xA;&#x9;size += ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.arrays.ArrayInstantiationBySize ) this ) .getSizes ( ) .size ( ) ; &#xA;} &#xA;if ( arrayType != null ) { &#xA;&#x9;size += arrayType .getArrayDimension ( ) ; &#xA;} &#xA;return size ; &#xA;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="AssignmentExpression" eSuperTypes="#//expressions/Expression">
      <eStructuralFeatures xsi:type="ecore:EReference" name="child" lowerBound="1"
          eType="#//expressions/AssignmentExpressionChild" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="assignmentOperator" lowerBound="1"
          eType="#//operators/AssignmentOperator" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="value" lowerBound="1"
          eType="#//expressions/Expression" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="AssignmentExpressionChild" abstract="true"
        eSuperTypes="#//expressions/Expression"/>
    <eClassifiers xsi:type="ecore:EClass" name="ConditionalExpression" eSuperTypes="#//expressions/AssignmentExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" name="child" eType="#//expressions/ConditionalExpressionChild"
          containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="expressionIf" lowerBound="1"
          eType="#//expressions/Expression" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="expressionElse" lowerBound="1"
          eType="#//expressions/AssignmentExpressionChild" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ConditionalExpressionChild" abstract="true"
        eSuperTypes="#//expressions/AssignmentExpressionChild"/>
    <eClassifiers xsi:type="ecore:EClass" name="ConditionalOrExpression" eSuperTypes="#//expressions/ConditionalExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" name="children" lowerBound="1"
          upperBound="-1" eType="#//expressions/ConditionalOrExpressionChild" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ConditionalOrExpressionChild" abstract="true"
        eSuperTypes="#//expressions/ConditionalExpressionChild"/>
    <eClassifiers xsi:type="ecore:EClass" name="ConditionalAndExpression" eSuperTypes="#//expressions/ConditionalOrExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" name="children" lowerBound="1"
          upperBound="-1" eType="#//expressions/ConditionalAndExpressionChild" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ConditionalAndExpressionChild" abstract="true"
        eSuperTypes="#//expressions/ConditionalOrExpressionChild"/>
    <eClassifiers xsi:type="ecore:EClass" name="InclusiveOrExpression" eSuperTypes="#//expressions/ConditionalAndExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" name="children" lowerBound="1"
          upperBound="-1" eType="#//expressions/InclusiveOrExpressionChild" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="InclusiveOrExpressionChild" abstract="true"
        eSuperTypes="#//expressions/ConditionalAndExpressionChild"/>
    <eClassifiers xsi:type="ecore:EClass" name="ExclusiveOrExpression" eSuperTypes="#//expressions/InclusiveOrExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" name="children" lowerBound="1"
          upperBound="-1" eType="#//expressions/ExclusiveOrExpressionChild" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ExclusiveOrExpressionChild" abstract="true"
        eSuperTypes="#//expressions/InclusiveOrExpressionChild"/>
    <eClassifiers xsi:type="ecore:EClass" name="AndExpression" eSuperTypes="#//expressions/ExclusiveOrExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" name="children" lowerBound="1"
          upperBound="-1" eType="#//expressions/AndExpressionChild" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="AndExpressionChild" abstract="true"
        eSuperTypes="#//expressions/ExclusiveOrExpressionChild"/>
    <eClassifiers xsi:type="ecore:EClass" name="EqualityExpression" eSuperTypes="#//expressions/AndExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" name="equalityOperators" lowerBound="1"
          upperBound="-1" eType="#//operators/EqualityOperator" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="children" lowerBound="1"
          upperBound="-1" eType="#//expressions/EqualityExpressionChild" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="EqualityExpressionChild" abstract="true"
        eSuperTypes="#//expressions/AndExpressionChild"/>
    <eClassifiers xsi:type="ecore:EClass" name="InstanceOfExpression" eSuperTypes="#//arrays/ArrayTypeable #//types/TypedElement #//expressions/EqualityExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" name="child" lowerBound="1"
          eType="#//expressions/InstanceOfExpressionChild" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="InstanceOfExpressionChild" abstract="true"
        eSuperTypes="#//expressions/EqualityExpressionChild"/>
    <eClassifiers xsi:type="ecore:EClass" name="RelationExpression" eSuperTypes="#//expressions/InstanceOfExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" name="children" lowerBound="1"
          upperBound="-1" eType="#//expressions/RelationExpressionChild" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="relationOperators" lowerBound="1"
          upperBound="-1" eType="#//operators/RelationOperator" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="RelationExpressionChild" abstract="true"
        eSuperTypes="#//expressions/InstanceOfExpressionChild"/>
    <eClassifiers xsi:type="ecore:EClass" name="ShiftExpression" eSuperTypes="#//expressions/RelationExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" name="children" lowerBound="1"
          upperBound="-1" eType="#//expressions/ShiftExpressionChild" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="shiftOperators" lowerBound="1"
          upperBound="-1" eType="#//operators/ShiftOperator" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ShiftExpressionChild" abstract="true"
        eSuperTypes="#//expressions/RelationExpressionChild"/>
    <eClassifiers xsi:type="ecore:EClass" name="AdditiveExpression" eSuperTypes="#//expressions/ShiftExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" name="children" lowerBound="1"
          upperBound="-1" eType="#//expressions/AdditiveExpressionChild" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="additiveOperators" lowerBound="1"
          upperBound="-1" eType="#//operators/AdditiveOperator" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="AdditiveExpressionChild" abstract="true"
        eSuperTypes="#//expressions/ShiftExpressionChild"/>
    <eClassifiers xsi:type="ecore:EClass" name="MultiplicativeExpression" eSuperTypes="#//expressions/AdditiveExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" name="children" lowerBound="1"
          upperBound="-1" eType="#//expressions/MultiplicativeExpressionChild" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicativeOperators"
          lowerBound="1" upperBound="-1" eType="#//operators/MultiplicativeOperator"
          containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="MultiplicativeExpressionChild" abstract="true"
        eSuperTypes="#//expressions/AdditiveExpressionChild"/>
    <eClassifiers xsi:type="ecore:EClass" name="UnaryExpression" eSuperTypes="#//expressions/MultiplicativeExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" name="operators" lowerBound="1"
          upperBound="-1" eType="#//operators/UnaryOperator" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="child" lowerBound="1"
          eType="#//expressions/UnaryExpressionChild" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="UnaryExpressionChild" abstract="true"
        eSuperTypes="#//expressions/MultiplicativeExpressionChild"/>
    <eClassifiers xsi:type="ecore:EClass" name="UnaryModificationExpression" abstract="true"
        eSuperTypes="#//expressions/UnaryExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" name="child" lowerBound="1"
          eType="#//expressions/UnaryModificationExpressionChild" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="operator" lowerBound="1"
          eType="#//operators/UnaryModificationOperator" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="PrefixUnaryModificationExpression"
        eSuperTypes="#//expressions/UnaryModificationExpression"/>
    <eClassifiers xsi:type="ecore:EClass" name="SuffixUnaryModificationExpression"
        eSuperTypes="#//expressions/UnaryModificationExpression"/>
    <eClassifiers xsi:type="ecore:EClass" name="UnaryModificationExpressionChild"
        abstract="true" eSuperTypes="#//expressions/UnaryExpressionChild"/>
    <eClassifiers xsi:type="ecore:EClass" name="CastExpression" eSuperTypes="#//types/TypedElement #//arrays/ArrayTypeable #//expressions/UnaryModificationExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" name="child" lowerBound="1"
          eType="#//expressions/MultiplicativeExpressionChild" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="PrimaryExpression" abstract="true"
        eSuperTypes="#//expressions/UnaryModificationExpressionChild"/>
    <eClassifiers xsi:type="ecore:EClass" name="NestedExpression" eSuperTypes="#//references/Reference">
      <eStructuralFeatures xsi:type="ecore:EReference" name="expression" lowerBound="1"
          eType="#//expressions/Expression" containment="true"/>
    </eClassifiers>
  </eSubpackages>
  <eSubpackages name="generics" nsURI="http://www.emftext.org/simTL4J/generics" nsPrefix="generics">
    <eClassifiers xsi:type="ecore:EClass" name="TypeArgument" abstract="true" eSuperTypes="#//arrays/ArrayTypeable"/>
    <eClassifiers xsi:type="ecore:EClass" name="TypeArgumentable" abstract="true"
        eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="typeArguments" upperBound="-1"
          eType="#//generics/TypeArgument" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="CallTypeArgumentable" abstract="true"
        eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="callTypeArguments" upperBound="-1"
          eType="#//generics/TypeArgument" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="TypeParametrizable" abstract="true"
        eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="typeParameters" upperBound="-1"
          eType="#//generics/TypeParameter" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ExtendsTypeArgument" eSuperTypes="#//generics/TypeArgument">
      <eStructuralFeatures xsi:type="ecore:EReference" name="extendTypes" lowerBound="1"
          upperBound="-1" eType="#//types/TypeReference" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="QualifiedTypeArgument" eSuperTypes="#//generics/TypeArgument #//types/TypedElement"/>
    <eClassifiers xsi:type="ecore:EClass" name="SuperTypeArgument" eSuperTypes="#//generics/TypeArgument">
      <eStructuralFeatures xsi:type="ecore:EReference" name="superType" lowerBound="1"
          eType="#//types/TypeReference" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="TypeParameter" eSuperTypes="#//classifiers/Classifier">
      <eOperations name="getAllSuperClassifiers" upperBound="-1" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > result = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > ( ) ; &#xA;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypeReference typeRef : getExtendTypes ( ) ) { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type type = typeRef .getTarget ( ) ; &#xA;&#x9;if ( type instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) { &#xA;&#x9;&#x9;result .add ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) type ) ; &#xA;&#x9;} &#xA;&#x9;if ( type instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Classifier ) { &#xA;&#x9;&#x9;result .addAll ( ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Classifier ) type ) .getAllSuperClassifiers ( ) ) ; &#xA;&#x9;} &#xA;} &#xA;return result ; &#xA;"/>
          <details key="documentation" value="&#xA; @return all type restrictions&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getAllMembers" upperBound="-1" eType="#//members/Member">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.members.Member > memberList = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.members.Member > ( ) ; &#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type > possiblyVisibleSuperClassifier = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type > ( ) ; &#xA;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypeReference typeReference : ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeParameter ) this ) .getExtendTypes ( ) ) { &#xA;&#x9;possiblyVisibleSuperClassifier .add ( typeReference .getTarget ( ) ) ; &#xA;} &#xA;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier superClassifier : getAllSuperClassifiers ( ) ) { &#xA;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.members.Member member : superClassifier .getMembers ( ) ) { &#xA;&#x9;&#x9;if ( member instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.modifiers.AnnotableAndModifiable ) { &#xA;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.modifiers.AnnotableAndModifiable modifiable = ( sg.edu.nus.comp.simTL.language.java.simTL4J.modifiers.AnnotableAndModifiable ) member ; &#xA;&#x9;&#x9;&#x9;if ( ! modifiable .isHidden ( context ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;memberList .add ( member ) ; &#xA;&#x9;&#x9;&#x9;} else if ( possiblyVisibleSuperClassifier .contains ( superClassifier ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;memberList .add ( member ) ; &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;} else { &#xA;&#x9;&#x9;&#x9;memberList .add ( member ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;&#x9;memberList .addAll ( superClassifier .getDefaultMembers ( ) ) ; &#xA;} &#xA;return memberList ; &#xA;"/>
          <details key="documentation" value="&#xA; Returns all members of the given classifier including inner classes and &#xA; all members of super types (extended classes and implemented interfaces).&#xA; &#xA; @param context to check protected visibility&#xA; @return member list&#xA;"/>
        </eAnnotations>
        <eParameters name="context" eType="#//commons/Commentable"/>
      </eOperations>
      <eOperations name="getBoundType" eType="#//types/Type">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type > resultList = new org.eclipse.emf.common.util.BasicEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type > ( ) ; &#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeParametrizable typeParameterDeclarator = ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeParametrizable ) this .eContainer ( ) ; &#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference parentReference = null ; &#xA;org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type > prevTypeList = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type > ( ) ; &#xA;if ( reference != null &amp;&amp; reference .getPrevious ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.NestedExpression ) { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.NestedExpression nestedExpression = ( sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.NestedExpression ) reference .getPrevious ( ) ; &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.Expression expression = null ; &#xA;&#x9;if ( nestedExpression .getExpression ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) { &#xA;&#x9;&#x9;expression = nestedExpression .getExpression ( ) ; &#xA;&#x9;} else if ( nestedExpression .getExpression ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.ConditionalExpression ) { &#xA;&#x9;&#x9;expression = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.ConditionalExpression ) nestedExpression .getExpression ( ) ) .getExpressionIf ( ) ; &#xA;&#x9;} &#xA;&#x9;if ( expression instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) { &#xA;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference expressionReference = ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) expression ; &#xA;&#x9;&#x9;//navigate down references&#xA;while ( expressionReference .getNext ( ) != null ) { &#xA;&#x9;&#x9;&#x9;expressionReference = expressionReference .getNext ( ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;&#x9;parentReference = expressionReference ; &#xA;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type prevType = nestedExpression .getExpression ( ) .getType ( ) ; &#xA;&#x9;&#x9;if ( prevType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.util.TemporalCompositeClassifier ) { &#xA;&#x9;&#x9;&#x9;for ( org.eclipse.emf.ecore.EObject aType : ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.util.TemporalCompositeClassifier ) prevType ) .getSuperTypes ( ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;prevTypeList .add ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type ) aType ) ; &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;} else { &#xA;&#x9;&#x9;&#x9;prevTypeList .add ( prevType ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;} else if ( nestedExpression .getExpression ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.CastExpression ) { &#xA;&#x9;&#x9;prevTypeList .add ( ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.CastExpression ) nestedExpression .getExpression ( ) ) .getTypeReference ( ) .getTarget ( ) ) ; &#xA;&#x9;} &#xA;} else if ( reference != null &amp;&amp; reference .getPrevious ( ) != null ) { &#xA;&#x9;parentReference = reference .getPrevious ( ) ; &#xA;&#x9;while ( parentReference instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.SelfReference ) { &#xA;&#x9;&#x9;if ( ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.SelfReference ) parentReference ) .getSelf ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.literals.Super ) { &#xA;&#x9;&#x9;&#x9;if ( parentReference .eContainer ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) { &#xA;&#x9;&#x9;&#x9;&#x9;parentReference = ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) parentReference .eContainer ( ) ; &#xA;&#x9;&#x9;&#x9;} else { &#xA;&#x9;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier containingClassifier = reference .getContainingConcreteClassifier ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;if ( containingClassifier != null ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;prevTypeList .add ( containingClassifier ) ; &#xA;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;parentReference = null ; &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;} else { &#xA;&#x9;&#x9;&#x9;break ; &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;&#x9;if ( parentReference != null ) { &#xA;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type prevType = parentReference .getReferencedType ( ) ; &#xA;&#x9;&#x9;if ( prevType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.util.TemporalCompositeClassifier ) { &#xA;&#x9;&#x9;&#x9;for ( org.eclipse.emf.ecore.EObject aType : ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.util.TemporalCompositeClassifier ) prevType ) .getSuperTypes ( ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;prevTypeList .add ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type ) aType ) ; &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;} else { &#xA;&#x9;&#x9;&#x9;prevTypeList .add ( prevType ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;} else if ( reference != null ) { &#xA;&#x9;//prev type is on of the containing classes which can still bind by inheritance&#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier containingClassifier = reference .getContainingConcreteClassifier ( ) ; &#xA;&#x9;while ( containingClassifier != null ) { &#xA;&#x9;&#x9;prevTypeList .add ( containingClassifier ) ; &#xA;&#x9;&#x9;containingClassifier = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.commons.Commentable ) containingClassifier .eContainer ( ) ) .getContainingConcreteClassifier ( ) ; &#xA;&#x9;} &#xA;} &#xA;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type prevType : prevTypeList ) { &#xA;&#x9;int typeParameterIndex = - 1 ; &#xA;&#x9;if ( typeParameterDeclarator instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) { &#xA;&#x9;&#x9;typeParameterIndex = typeParameterDeclarator .getTypeParameters ( ) .indexOf ( this ) ; &#xA;&#x9;&#x9;if ( reference != null ) { &#xA;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.ClassifierReference classifierReference = null ; &#xA;&#x9;&#x9;&#x9;if ( parentReference instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.ElementReference ) { &#xA;&#x9;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.references.ReferenceableElement prevReferenced = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.ElementReference ) parentReference ) .getTarget ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;if ( prevReferenced instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypedElement ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypeReference prevTypeReference = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypedElement ) prevReferenced ) .getTypeReference ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if ( prevTypeReference != null ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;classifierReference = prevTypeReference .getPureClassifierReference ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;if ( parentReference instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypedElement ) { &#xA;&#x9;&#x9;&#x9;&#x9;//e.g. New Constructor Call&#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypeReference prevParentReference = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypedElement ) parentReference ) .getTypeReference ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;if ( prevParentReference != null ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;classifierReference = prevParentReference .getPureClassifierReference ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;if ( prevType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) { &#xA;&#x9;&#x9;&#x9;&#x9;//bound through inheritance?&#xA;int idx = 0 ; &#xA;&#x9;&#x9;&#x9;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.ClassifierReference superClassifierReference : ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) prevType ) .getSuperTypeReferences ( ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if ( typeParameterIndex &lt; superClassifierReference .getTypeArguments ( ) .size ( ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;//is this an argument for the correct class?&#xA;if ( typeParameterDeclarator .equals ( superClassifierReference .getTarget ( ) ) || ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Classifier ) superClassifierReference .getTarget ( ) ) .getAllSuperClassifiers ( ) .contains ( typeParameterDeclarator ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeArgument arg = superClassifierReference .getTypeArguments ( ) .get ( typeParameterIndex ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if ( arg instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.generics.QualifiedTypeArgument ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;resultList .add ( idx , ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.QualifiedTypeArgument ) arg ) .getTypeReference ( ) .getTarget ( ) ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;idx ++ ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeArgument > typeArgumentList ; &#xA;&#x9;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.util.TemporalTypeArgumentHolder ttah = null ; &#xA;&#x9;&#x9;&#x9;&#x9;for ( org.eclipse.emf.common.notify.Adapter adapter : prevType .eAdapters ( ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if ( adapter instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.util.TemporalTypeArgumentHolder ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;ttah = ( sg.edu.nus.comp.simTL.language.java.simTL4J.util.TemporalTypeArgumentHolder ) adapter ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;prevType .eAdapters ( ) .remove ( ttah ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;break ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;if ( ttah != null ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;typeArgumentList = ttah .getTypeArguments ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;} else if ( classifierReference != null ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;typeArgumentList = classifierReference .getTypeArguments ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;} else { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;typeArgumentList = org.eclipse.emf.common.util.ECollections .emptyEList ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;if ( typeParameterIndex &lt; typeArgumentList .size ( ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeArgument arg = typeArgumentList .get ( typeParameterIndex ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if ( arg instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.generics.QualifiedTypeArgument ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.ClassifierReference theTypeRef = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.QualifiedTypeArgument ) arg ) .getTypeReference ( ) .getPureClassifierReference ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if ( theTypeRef != null ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type theType = theTypeRef .getBoundTarget ( parentReference ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if ( theType != null ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if ( ! theTypeRef .getTypeArguments ( ) .isEmpty ( ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;ttah = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.TemporalTypeArgumentHolder ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;ttah .getTypeArguments ( ) .addAll ( theTypeRef .getTypeArguments ( ) ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;theType .eAdapters ( ) .add ( ttah ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;resultList .add ( 0 , theType ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if ( arg instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.generics.ExtendsTypeArgument ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypeReference extendedType : ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.ExtendsTypeArgument ) arg ) .getExtendTypes ( ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;resultList .add ( 0 , extendedType .getBoundTarget ( parentReference ) ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;} else if ( prevType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeParameter ) { &#xA;&#x9;&#x9;&#x9;&#x9;//the prev. type parameter, although unbound, may contain type restrictions through extends &#xA;resultList .add ( prevType ) ; &#xA;&#x9;&#x9;&#x9;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypeReference extendedRef : ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeParameter ) prevType ) .getExtendTypes ( ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier extended = ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) extendedRef .getTarget ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;int idx = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeParametrizable ) prevType .eContainer ( ) ) .getTypeParameters ( ) .indexOf ( prevType ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if ( extended .getTypeParameters ( ) .size ( ) > idx ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;//also add more precise bindings from extensions&#xA;resultList .add ( extended .getTypeParameters ( ) .get ( idx ) ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;} &#xA;&#x9;&#x9;if ( reference != null &amp;&amp; reference .eContainer ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.ReflectiveClassReference ) { &#xA;&#x9;&#x9;&#x9;if ( reference .eContainer ( ) .eContainer ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) { &#xA;&#x9;&#x9;&#x9;&#x9;//the &quot;.class&quot; instantiation implicitly binds the T parameter of java.lang.Class to the class itself&#xA;resultList .add ( 0 , ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) reference .eContainer ( ) .eContainer ( ) ) .getReferencedType ( ) ) ; &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;} &#xA;if ( typeParameterDeclarator instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.members.Method ) { &#xA;&#x9;if ( reference instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.MethodCall ) { &#xA;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.members.Method method = ( sg.edu.nus.comp.simTL.language.java.simTL4J.members.Method ) typeParameterDeclarator ; &#xA;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.references.MethodCall methodCall = ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.MethodCall ) reference ; &#xA;&#x9;&#x9;if ( method .getTypeParameters ( ) .size ( ) == methodCall .getCallTypeArguments ( ) .size ( ) ) { &#xA;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeArgument typeArgument = methodCall .getCallTypeArguments ( ) .get ( method .getTypeParameters ( ) .indexOf ( this ) ) ; &#xA;&#x9;&#x9;&#x9;if ( typeArgument instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.generics.QualifiedTypeArgument ) { &#xA;&#x9;&#x9;&#x9;&#x9;resultList .add ( 0 , ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.QualifiedTypeArgument ) typeArgument ) .getTypeReference ( ) .getBoundTarget ( parentReference ) ) ; &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;} &#xA;&#x9;&#x9;//class type parameter&#xA;int idx = method .getParameters ( ) .indexOf ( typeReference .eContainer ( ) ) ; &#xA;&#x9;&#x9;//method type parameter&#xA;if ( idx == - 1 ) { &#xA;&#x9;&#x9;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.parameters.Parameter parameter : method .getParameters ( ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeArgument typeArgument : parameter .getTypeArguments ( ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if ( typeArgument instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.generics.QualifiedTypeArgument ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if ( ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.QualifiedTypeArgument ) typeArgument ) .getTypeReference ( ) .getTarget ( ) .equals ( this ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;idx = method .getParameters ( ) .indexOf ( parameter ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.ClassifierReference paramTypeReference = parameter .getTypeReference ( ) .getPureClassifierReference ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;if ( paramTypeReference != null ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeArgument typeArgument : paramTypeReference .getTypeArguments ( ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if ( typeArgument instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.generics.QualifiedTypeArgument ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if ( this .equals ( ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.QualifiedTypeArgument ) typeArgument ) .getTypeReference ( ) .getTarget ( ) ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;idx = method .getParameters ( ) .indexOf ( parameter ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;} &#xA;&#x9;&#x9;if ( idx &lt; methodCall .getArguments ( ) .size ( ) &amp;&amp; idx >= 0 ) { &#xA;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.Expression argument = methodCall .getArguments ( ) .get ( idx ) ; &#xA;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.parameters.Parameter parameter = method .getParameters ( ) .get ( idx ) ; &#xA;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.ClassifierReference parameterType = parameter .getTypeReference ( ) .getPureClassifierReference ( ) ; &#xA;&#x9;&#x9;&#x9;if ( argument instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.instantiations.NewConstructorCall ) { &#xA;&#x9;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.ClassifierReference argumentType = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.instantiations.NewConstructorCall ) argument ) .getTypeReference ( ) .getPureClassifierReference ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;if ( argumentType != null &amp;&amp; parameterType .getTypeArguments ( ) .size ( ) == argumentType .getTypeArguments ( ) .size ( ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeArgument typeArgument : parameterType .getTypeArguments ( ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if ( typeArgument instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.generics.QualifiedTypeArgument ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if ( ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.QualifiedTypeArgument ) typeArgument ) .getTypeReference ( ) .getTarget ( ) .equals ( this ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;resultList .add ( 0 , ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.QualifiedTypeArgument ) argumentType .getTypeArguments ( ) .get ( parameterType .getTypeArguments ( ) .indexOf ( typeArgument ) ) ) .getTypeReference ( ) .getTarget ( ) ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;if ( argumentType != null &amp;&amp; parameterType .getTarget ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeParameter ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;resultList .add ( 0 , argumentType .getTarget ( ) ) ; &#xA;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;} else if ( parameterType != null &amp;&amp; argument instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) { &#xA;&#x9;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference argReference = ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) argument ; &#xA;&#x9;&#x9;&#x9;&#x9;while ( argReference .getNext ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference &amp;&amp; ! ( argReference .getNext ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.ReflectiveClassReference ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;argReference = argReference .getNext ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;if ( argReference instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.ElementReference ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.references.ElementReference elementReference = ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.ElementReference ) argReference ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;while ( elementReference .getNext ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.ElementReference ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;elementReference = ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.ElementReference ) elementReference .getNext ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if ( elementReference .getTarget ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypedElement ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.ClassifierReference argumentType = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypedElement ) elementReference .getTarget ( ) ) .getTypeReference ( ) .getPureClassifierReference ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if ( argumentType != null &amp;&amp; parameterType .getTypeArguments ( ) .size ( ) == argumentType .getTypeArguments ( ) .size ( ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeArgument typeArgument : parameterType .getTypeArguments ( ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if ( typeArgument instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.generics.QualifiedTypeArgument ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if ( ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.QualifiedTypeArgument ) typeArgument ) .getTypeReference ( ) .getTarget ( ) .equals ( this ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;int idx2 = parameterType .getTypeArguments ( ) .indexOf ( typeArgument ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if ( argumentType .getTypeArguments ( ) .get ( idx2 ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.generics.QualifiedTypeArgument ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;resultList .add ( 0 , ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.QualifiedTypeArgument ) argumentType .getTypeArguments ( ) .get ( idx2 ) ) .getTypeReference ( ) .getTarget ( ) ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} else if ( argumentType .getTypeArguments ( ) .get ( idx2 ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.generics.ExtendsTypeArgument ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypeReference extendedType : ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.ExtendsTypeArgument ) argumentType .getTypeArguments ( ) .get ( idx2 ) ) .getExtendTypes ( ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;resultList .add ( 0 , extendedType .getTarget ( ) ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if ( argumentType != null &amp;&amp; parameterType .getTarget ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeParameter ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;resultList .add ( 0 , argumentType .getTarget ( ) ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if ( elementReference .getNext ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.ReflectiveClassReference ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if ( parameterType .getTypeArguments ( ) .size ( ) == 1 ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeArgument typeArgument : parameterType .getTypeArguments ( ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if ( typeArgument instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.generics.QualifiedTypeArgument ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if ( ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.QualifiedTypeArgument ) typeArgument ) .getTypeReference ( ) .getTarget ( ) .equals ( this ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;resultList .add ( 0 , elementReference .getReferencedType ( ) ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;} else { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if ( parameterType .getTarget ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeParameter ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;while ( argReference .getNext ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;argReference = argReference .getNext ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;resultList .add ( 0 , ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) argReference ) .getReferencedType ( ) ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;} &#xA;&#x9;&#x9;//return type&#xA;if ( method .equals ( typeReference .eContainer ( ) ) ) { &#xA;&#x9;&#x9;&#x9;//bound by the type of a method argument?&#xA;org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Classifier > allSuperTypes = null ; &#xA;&#x9;&#x9;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.parameters.Parameter parameter : method .getParameters ( ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;if ( this .equals ( parameter .getTypeReference ( ) .getTarget ( ) ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;idx = method .getParameters ( ) .indexOf ( parameter ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Classifier argumentType = ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Classifier ) methodCall .getArguments ( ) .get ( idx ) .getType ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if ( allSuperTypes == null ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;allSuperTypes = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Classifier > ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;allSuperTypes .add ( argumentType ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;allSuperTypes .addAll ( argumentType .getAllSuperClassifiers ( ) ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;} else { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;allSuperTypes .add ( argumentType ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Classifier > allOtherSuperTypes = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Classifier > ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;allOtherSuperTypes .add ( argumentType ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;allOtherSuperTypes .addAll ( argumentType .getAllSuperClassifiers ( ) ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Classifier > temp = allSuperTypes ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;allSuperTypes = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Classifier > ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Classifier st : allOtherSuperTypes ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if ( temp .contains ( st ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;allSuperTypes .add ( st ) ; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;//all types given by all bindings&#xA;if ( allSuperTypes != null ) { &#xA;&#x9;&#x9;&#x9;&#x9;resultList .addAll ( allSuperTypes ) ; &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;} &#xA;//remove nulls&#xA;for ( java.util.Iterator &lt; ? > it = resultList .iterator ( ) ; it .hasNext ( ) ; ) { &#xA;&#x9;if ( it .next ( ) == null ) { &#xA;&#x9;&#x9;it .remove ( ) ; &#xA;&#x9;} &#xA;} &#xA;if ( resultList .isEmpty ( ) || ( resultList .size ( ) == 1 &amp;&amp; resultList .get ( 0 ) .equals ( this ) ) ) { &#xA;&#x9;return this ; &#xA;} else { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.util.TemporalCompositeClassifier temp = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.TemporalCompositeClassifier ( this ) ; &#xA;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type aResult : resultList ) { &#xA;&#x9;&#x9;if ( aResult instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.PrimitiveType ) { &#xA;&#x9;&#x9;&#x9;aResult = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.PrimitiveType ) aResult ) .wrapPrimitiveType ( ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;&#x9;if ( aResult instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.util.TemporalCompositeClassifier ) { &#xA;&#x9;&#x9;&#x9;//flatten&#xA;temp .getSuperTypes ( ) .addAll ( ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.util.TemporalCompositeClassifier ) aResult ) .getSuperTypes ( ) ) ; &#xA;&#x9;&#x9;} else { &#xA;&#x9;&#x9;&#x9;temp .getSuperTypes ( ) .add ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Classifier ) aResult ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;&#x9;temp .getSuperTypes ( ) .add ( this ) ; &#xA;&#x9;return temp ; &#xA;} &#xA;"/>
          <details key="documentation" value="&#xA; Returns the type bound to the given parameter in the context&#xA; of the given reference.&#xA; &#xA; @param typeReference&#xA; @param reference&#xA; @return bound type or parameter if not bound&#xA;"/>
        </eAnnotations>
        <eParameters name="typeReference" eType="#//types/TypeReference"/>
        <eParameters name="reference" eType="#//references/Reference"/>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EReference" name="extendTypes" upperBound="-1"
          eType="#//types/TypeReference" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="UnknownTypeArgument" eSuperTypes="#//generics/TypeArgument"/>
  </eSubpackages>
  <eSubpackages name="imports" nsURI="http://www.emftext.org/simTL4J/imports" nsPrefix="imports">
    <eClassifiers xsi:type="ecore:EClass" name="Import" abstract="true" eSuperTypes="#//commons/NamespaceAwareElement">
      <eOperations name="getImportedClassifier" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="java.lang.String containerName = getNamespacesAsString ( ) ; &#xA;if ( containerName == null ) { &#xA;&#x9;return null ; &#xA;} &#xA;java.lang.String fullQualifiedName = containerName + name ; &#xA;return getConcreteClassifier ( fullQualifiedName ) ; &#xA;"/>
          <details key="documentation" value="&#xA; Returns the classifier with the given name &#xA; located in the namespace defined by the import.&#xA; &#xA; @param name the name of the classifier&#xA; @return imported classifier (proxy)&#xA;"/>
        </eAnnotations>
        <eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      </eOperations>
      <eOperations name="getImportedClassifiers" upperBound="-1" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="java.lang.String containerName = getNamespacesAsString ( ) ; &#xA;if ( containerName == null ) { &#xA;&#x9;return org.eclipse.emf.common.util.ECollections .emptyEList ( ) ; &#xA;} &#xA;return getConcreteClassifiers ( containerName , &quot;*&quot; ) ; &#xA;"/>
          <details key="documentation" value="&#xA; Returns a list of imported classifiers assuming the import's namespace&#xA; identifies a package.&#xA; &#xA; @param _this &#xA; @return imported classifier (proxy)&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getImportedMembers" upperBound="-1" eType="#//commons/NamedElement">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier concreteClassifier = getClassifierAtNamespaces ( ) ; &#xA;if ( concreteClassifier == null || concreteClassifier .eIsProxy ( ) ) { &#xA;&#x9;return org.eclipse.emf.common.util.ECollections .emptyEList ( ) ; &#xA;} &#xA;org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.commons.NamedElement > result = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.commons.NamedElement > ( ) ; &#xA;result .addAll ( concreteClassifier .getAllMembers ( this ) ) ; &#xA;if ( concreteClassifier instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Enumeration ) { &#xA;&#x9;result .addAll ( ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Enumeration ) concreteClassifier ) .getConstants ( ) ) ; &#xA;} &#xA;return result ; &#xA;"/>
          <details key="documentation" value="&#xA; Returns all imported members assuming the import's namespace&#xA; identifies a classifier.&#xA; &#xA; @param _this &#xA; @return list of imported classifiers (proxies)&#xA;"/>
        </eAnnotations>
      </eOperations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ImportingElement" abstract="true"
        eSuperTypes="#//commons/Commentable">
      <eOperations name="getDefaultImports" upperBound="-1" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > result = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier > ( ) ; &#xA;for ( org.eclipse.emf.ecore.EObject classifier : sg.edu.nus.comp.simTL.language.java.simTL4J.JavaClasspath .get ( this ) .getDefaultImports ( ) ) { &#xA;&#x9;result .add ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) classifier ) ; &#xA;} &#xA;return result ; &#xA;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EReference" name="imports" upperBound="-1"
          eType="#//imports/Import" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="StaticImport" abstract="true" eSuperTypes="#//imports/Import">
      <eStructuralFeatures xsi:type="ecore:EReference" name="static" lowerBound="1"
          eType="#//modifiers/Static" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ClassifierImport" eSuperTypes="#//imports/Import">
      <eStructuralFeatures xsi:type="ecore:EReference" name="classifier" lowerBound="1"
          eType="#//classifiers/ConcreteClassifier"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="PackageImport" eSuperTypes="#//imports/Import"/>
    <eClassifiers xsi:type="ecore:EClass" name="StaticClassifierImport" eSuperTypes="#//imports/StaticImport"/>
    <eClassifiers xsi:type="ecore:EClass" name="StaticMemberImport" eSuperTypes="#//imports/StaticImport">
      <eStructuralFeatures xsi:type="ecore:EReference" name="staticMembers" lowerBound="1"
          upperBound="-1" eType="#//references/ReferenceableElement"/>
    </eClassifiers>
  </eSubpackages>
  <eSubpackages name="instantiations" nsURI="http://www.emftext.org/simTL4J/instantiations"
      nsPrefix="instantiations">
    <eClassifiers xsi:type="ecore:EClass" name="Initializable" abstract="true" eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="initialValue" eType="#//expressions/Expression"
          containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Instantiation" abstract="true" eSuperTypes="#//types/TypedElement #//references/Reference #//references/Argumentable #//generics/TypeArgumentable"/>
    <eClassifiers xsi:type="ecore:EClass" name="NewConstructorCall" eSuperTypes="#//instantiations/Instantiation #//generics/CallTypeArgumentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="anonymousClass" eType="#//classifiers/AnonymousClass"
          containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ExplicitConstructorCall" eSuperTypes="#//instantiations/Instantiation">
      <eStructuralFeatures xsi:type="ecore:EReference" name="callTarget" eType="#//literals/Self"
          containment="true"/>
    </eClassifiers>
  </eSubpackages>
  <eSubpackages name="literals" nsURI="http://www.emftext.org/simTL4J/literals" nsPrefix="literals">
    <eClassifiers xsi:type="ecore:EClass" name="Literal" abstract="true" eSuperTypes="#//expressions/PrimaryExpression">
      <eOperations name="getOneType" eType="#//types/Type">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="//Overrides implementation in Expression&#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class javaClass = null ; &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.literals.NullLiteral ) { &#xA;&#x9;javaClass = getLibClass ( &quot;Void&quot; ) ; &#xA;} else if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.literals.BooleanLiteral ) { &#xA;&#x9;javaClass = getLibClass ( &quot;Boolean&quot; ) ; &#xA;} else if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.literals.DoubleLiteral ) { &#xA;&#x9;javaClass = getLibClass ( &quot;Double&quot; ) ; &#xA;} else if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.literals.FloatLiteral ) { &#xA;&#x9;javaClass = getLibClass ( &quot;Float&quot; ) ; &#xA;} else if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.literals.IntegerLiteral ) { &#xA;&#x9;javaClass = getLibClass ( &quot;Integer&quot; ) ; &#xA;} else if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.literals.LongLiteral ) { &#xA;&#x9;javaClass = getLibClass ( &quot;Long&quot; ) ; &#xA;} else if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.literals.CharacterLiteral ) { &#xA;&#x9;javaClass = getLibClass ( &quot;Character&quot; ) ; &#xA;} &#xA;return javaClass ; &#xA;"/>
          <details key="documentation" value="&#xA; @return type of the literal&#xA;"/>
        </eAnnotations>
        <eParameters name="alternative" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
      </eOperations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Self" abstract="true" eSuperTypes="#//commons/Commentable"/>
    <eClassifiers xsi:type="ecore:EClass" name="BooleanLiteral" eSuperTypes="#//literals/Literal">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1"
          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="CharacterLiteral" eSuperTypes="#//literals/Literal">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1"
          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EChar"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="FloatLiteral" abstract="true" eSuperTypes="#//literals/Literal"/>
    <eClassifiers xsi:type="ecore:EClass" name="DecimalFloatLiteral" eSuperTypes="#//literals/FloatLiteral">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="decimalValue" lowerBound="1"
          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="HexFloatLiteral" eSuperTypes="#//literals/FloatLiteral">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="hexValue" lowerBound="1"
          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFloat"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="DoubleLiteral" abstract="true" eSuperTypes="#//literals/Literal"/>
    <eClassifiers xsi:type="ecore:EClass" name="DecimalDoubleLiteral" eSuperTypes="#//literals/DoubleLiteral">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="decimalValue" lowerBound="1"
          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="HexDoubleLiteral" eSuperTypes="#//literals/DoubleLiteral">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="hexValue" lowerBound="1"
          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDouble"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="IntegerLiteral" abstract="true" eSuperTypes="#//literals/Literal"/>
    <eClassifiers xsi:type="ecore:EClass" name="DecimalIntegerLiteral" eSuperTypes="#//literals/IntegerLiteral">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="decimalValue" lowerBound="1"
          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="HexIntegerLiteral" eSuperTypes="#//literals/IntegerLiteral">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="hexValue" lowerBound="1"
          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="OctalIntegerLiteral" eSuperTypes="#//literals/IntegerLiteral">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="octalValue" lowerBound="1"
          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="LongLiteral" abstract="true" eSuperTypes="#//literals/Literal"/>
    <eClassifiers xsi:type="ecore:EClass" name="DecimalLongLiteral" eSuperTypes="#//literals/LongLiteral">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="decimalValue" lowerBound="1"
          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="HexLongLiteral" eSuperTypes="#//literals/LongLiteral">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="hexValue" lowerBound="1"
          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="OctalLongLiteral" eSuperTypes="#//literals/LongLiteral">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="octalValue" lowerBound="1"
          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBigInteger"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="NullLiteral" eSuperTypes="#//literals/Literal"/>
    <eClassifiers xsi:type="ecore:EClass" name="Super" eSuperTypes="#//literals/Self"/>
    <eClassifiers xsi:type="ecore:EClass" name="This" eSuperTypes="#//literals/Self"/>
  </eSubpackages>
  <eSubpackages name="members" nsURI="http://www.emftext.org/simTL4J/members" nsPrefix="members">
    <eClassifiers xsi:type="ecore:EClass" name="ExceptionThrower" abstract="true"
        eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="exceptions" upperBound="-1"
          eType="#//types/NamespaceClassifierReference" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Member" abstract="true" eSuperTypes="#//commons/NamedElement"/>
    <eClassifiers xsi:type="ecore:EClass" name="MemberContainer" abstract="true" eSuperTypes="#//commons/Commentable">
      <eOperations name="getContainedClassifier" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="for ( sg.edu.nus.comp.simTL.language.java.simTL4J.members.Member member : getMembers ( ) ) { &#xA;&#x9;if ( member instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier &amp;&amp; name .equals ( member .getName ( ) ) ) { &#xA;&#x9;&#x9;return ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) member ; &#xA;&#x9;} &#xA;} &#xA;return null ; &#xA;"/>
          <details key="documentation" value="&#xA; @param name&#xA; @return classifier with the given name defined in this member container&#xA;"/>
        </eAnnotations>
        <eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      </eOperations>
      <eOperations name="getContainedField" eType="#//members/Field">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="for ( sg.edu.nus.comp.simTL.language.java.simTL4J.members.Member member : getMembers ( ) ) { &#xA;&#x9;if ( member instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.members.Field &amp;&amp; name .equals ( member .getName ( ) ) ) { &#xA;&#x9;&#x9;return ( sg.edu.nus.comp.simTL.language.java.simTL4J.members.Field ) member ; &#xA;&#x9;} &#xA;} &#xA;return null ; &#xA;"/>
          <details key="documentation" value="&#xA; @param name&#xA; @return field with the given name defined in this member container&#xA;"/>
        </eAnnotations>
        <eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      </eOperations>
      <eOperations name="getContainedMethod" eType="#//members/Method">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="sg.edu.nus.comp.simTL.language.java.simTL4J.members.Method found = null ; &#xA;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.members.Member member : getMembers ( ) ) { &#xA;&#x9;if ( member instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.members.Method &amp;&amp; name .equals ( member .getName ( ) ) ) { &#xA;&#x9;&#x9;if ( found != null ) { &#xA;&#x9;&#x9;&#x9;return null ; &#xA;&#x9;&#x9;} else { &#xA;&#x9;&#x9;&#x9;found = ( sg.edu.nus.comp.simTL.language.java.simTL4J.members.Method ) member ; &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;} &#xA;return found ; &#xA;"/>
          <details key="documentation" value="&#xA; @param name&#xA; @return method with the given name defined in this member container;&#xA;         null, if there is no such method &#xA;         or if there are multiple methods with the same name&#xA;"/>
        </eAnnotations>
        <eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EReference" name="members" upperBound="-1"
          eType="#//members/Member" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="defaultMembers" upperBound="-1"
          eType="#//members/Member" transient="true" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="AdditionalField" eSuperTypes="#//references/ReferenceableElement #//arrays/ArrayTypeable #//instantiations/Initializable">
      <eOperations name="getArrayDimension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="long size = this .getArrayDimensionsBefore ( ) .size ( ) + this .getArrayDimensionsAfter ( ) .size ( ) ; &#xA;return size ; &#xA;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Constructor" eSuperTypes="#//members/Member #//statements/StatementListContainer #//parameters/Parametrizable #//generics/TypeParametrizable #//members/ExceptionThrower #//modifiers/AnnotableAndModifiable"/>
    <eClassifiers xsi:type="ecore:EClass" name="EmptyMember" eSuperTypes="#//members/Member"/>
    <eClassifiers xsi:type="ecore:EClass" name="Field" eSuperTypes="#//members/Member #//instantiations/Initializable #//variables/Variable #//references/ReferenceableElement #//modifiers/AnnotableAndModifiable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="additionalFields" upperBound="-1"
          eType="#//members/AdditionalField" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Method" abstract="true" eSuperTypes="#//members/Member #//types/TypedElement #//arrays/ArrayTypeable #//generics/TypeParametrizable #//parameters/Parametrizable #//references/ReferenceableElement #//members/ExceptionThrower #//modifiers/AnnotableAndModifiable">
      <eOperations name="isMethodForCall" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type > argumentTypeList = methodCall .getArgumentTypes ( ) ; &#xA;org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.parameters.Parameter > parameterList = new org.eclipse.emf.common.util.BasicEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.parameters.Parameter > ( this .getParameters ( ) ) ; &#xA;org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type > parameterTypeList = new org.eclipse.emf.common.util.BasicEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type > ( ) ; &#xA;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.parameters.Parameter parameter : parameterList ) { &#xA;&#x9;//determine types before messing with the parameters&#xA;parameterTypeList .add ( parameter .getTypeReference ( ) .getBoundTarget ( methodCall ) ) ; &#xA;} &#xA;if ( ! parameterList .isEmpty ( ) ) { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.parameters.Parameter lastParameter = parameterList .get ( parameterList .size ( ) - 1 ) ; &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type lastParameterType = parameterTypeList .get ( parameterTypeList .size ( ) - 1 ) ; &#xA;&#x9;; &#xA;&#x9;if ( lastParameter instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.parameters.VariableLengthParameter ) { &#xA;&#x9;&#x9;//in case of variable length add/remove some parameters&#xA;while ( parameterList .size ( ) &lt; argumentTypeList .size ( ) ) { &#xA;&#x9;&#x9;&#x9;if ( needsPerfectMatch ) return false ; &#xA;&#x9;&#x9;&#x9;parameterList .add ( lastParameter ) ; &#xA;&#x9;&#x9;&#x9;parameterTypeList .add ( lastParameterType ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;&#x9;if ( parameterList .size ( ) > argumentTypeList .size ( ) ) { &#xA;&#x9;&#x9;&#x9;if ( needsPerfectMatch ) return false ; &#xA;&#x9;&#x9;&#x9;parameterList .remove ( lastParameter ) ; &#xA;&#x9;&#x9;&#x9;parameterTypeList .remove ( parameterTypeList .size ( ) - 1 ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;} &#xA;if ( parameterList .size ( ) == argumentTypeList .size ( ) ) { &#xA;&#x9;boolean parametersMatch = true ; &#xA;&#x9;for ( int i = 0 ; i &lt; argumentTypeList .size ( ) ; i ++ ) { &#xA;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.parameters.Parameter parameter = parameterList .get ( i ) ; &#xA;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.Expression argument = methodCall .getArguments ( ) .get ( i ) ; &#xA;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type parameterType = parameterTypeList .get ( i ) ; &#xA;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type argumentType = argumentTypeList .get ( i ) ; &#xA;&#x9;&#x9;if ( argumentType == null || parameterType == null ) { &#xA;&#x9;&#x9;&#x9;return false ; &#xA;&#x9;&#x9;} &#xA;&#x9;&#x9;if ( parameterType != null &amp;&amp; argumentType != null ) { &#xA;&#x9;&#x9;&#x9;if ( ! parameterType .eIsProxy ( ) || ! argumentType .eIsProxy ( ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;if ( needsPerfectMatch ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;parametersMatch = parametersMatch &amp;&amp; argumentType .equalsType ( argument .getArrayDimension ( ) , parameterType , parameter .getArrayDimension ( ) ) ; &#xA;&#x9;&#x9;&#x9;&#x9;} else { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;parametersMatch = parametersMatch &amp;&amp; argumentType .isSuperType ( argument .getArrayDimension ( ) , parameterType , parameter ) ; &#xA;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;} else { &#xA;&#x9;&#x9;&#x9;&#x9;return false ; &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;} else { &#xA;&#x9;&#x9;&#x9;return false ; &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;&#x9;return parametersMatch ; &#xA;} &#xA;return false ; &#xA;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
        <eParameters name="methodCall" eType="#//references/MethodCall"/>
        <eParameters name="needsPerfectMatch" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
      </eOperations>
      <eOperations name="isSomeMethodForCall" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="return isMethodForCall ( methodCall , false ) ; &#xA;"/>
          <details key="documentation" value="&#xA; Decides if the given method matches the given call. &#xA; &#xA; @param methodCall&#xA; @return&#xA;"/>
        </eAnnotations>
        <eParameters name="methodCall" eType="#//references/MethodCall"/>
      </eOperations>
      <eOperations name="isBetterMethodForCall" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="if ( ! isMethodForCall ( methodCall , false ) ) { &#xA;&#x9;return false ; &#xA;} &#xA;if ( otherMethod .isMethodForCall ( methodCall , true ) ) { &#xA;&#x9;//the other already matches perfectly; I am not better&#xA;return false ; &#xA;} &#xA;if ( ! otherMethod .isMethodForCall ( methodCall , false ) ) { &#xA;&#x9;//I match, but the other does not&#xA;return true ; &#xA;} &#xA;//we both match, I am only better if I match perfectly &lt;- &#xA;//TODO #763: this is not enough: we need to check for &quot;nearest subtype&quot; here&#xA;return isMethodForCall ( methodCall , true ) ; &#xA;"/>
          <details key="documentation" value="&#xA; Only returns true if the given Method is a better match for the given calls than the&#xA; otherMethod given.&#xA; &#xA; @param otherMethod&#xA; @param methodCall&#xA; @return&#xA;"/>
        </eAnnotations>
        <eParameters name="otherMethod" eType="#//members/Method"/>
        <eParameters name="methodCall" eType="#//references/MethodCall"/>
      </eOperations>
      <eOperations name="getArrayDimension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="long size = this .getArrayDimensionsBefore ( ) .size ( ) + this .getArrayDimensionsAfter ( ) .size ( ) ; &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.parameters.VariableLengthParameter ) { &#xA;&#x9;size ++ ; &#xA;} &#xA;return size ; &#xA;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="InterfaceMethod" eSuperTypes="#//members/Method"/>
    <eClassifiers xsi:type="ecore:EClass" name="ClassMethod" eSuperTypes="#//members/Method #//statements/StatementListContainer"/>
    <eClassifiers xsi:type="ecore:EClass" name="EnumConstant" eSuperTypes="#//references/ReferenceableElement #//references/Argumentable #//annotations/Annotable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="anonymousClass" eType="#//classifiers/AnonymousClass"
          containment="true"/>
    </eClassifiers>
  </eSubpackages>
  <eSubpackages name="modifiers" nsURI="http://www.emftext.org/simTL4J/modifiers"
      nsPrefix="modifiers">
    <eClassifiers xsi:type="ecore:EClass" name="Modifier" abstract="true" eSuperTypes="#//modifiers/AnnotationInstanceOrModifier"/>
    <eClassifiers xsi:type="ecore:EClass" name="AnnotationInstanceOrModifier" abstract="true"
        eSuperTypes="#//commons/Commentable"/>
    <eClassifiers xsi:type="ecore:EClass" name="AnnotableAndModifiable" abstract="true"
        eSuperTypes="#//commons/Commentable">
      <eOperations name="isHidden" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="//all members of an interface are public by default&#xA;if ( this .eContainer ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Interface ) { &#xA;&#x9;return false ; &#xA;} &#xA;if ( context .eIsProxy ( ) ) { &#xA;&#x9;context = ( sg.edu.nus.comp.simTL.language.java.simTL4J.commons.Commentable ) org.eclipse.emf.ecore.util.EcoreUtil .resolve ( context , this ) ; &#xA;} &#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier contextClassifier = context .getContainingConcreteClassifier ( ) ; &#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier myClassifier = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.commons.Commentable ) eContainer ( ) ) .getParentConcreteClassifier ( ) ; &#xA;//special case: self reference to outer instance&#xA;if ( context instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) { &#xA;&#x9;if ( ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) context ) .getPrevious ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.SelfReference ) { &#xA;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.references.SelfReference selfReference = ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.SelfReference ) ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) context ) .getPrevious ( ) ; &#xA;&#x9;&#x9;if ( selfReference .getSelf ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.literals.Self ) { &#xA;&#x9;&#x9;&#x9;if ( selfReference .getPrevious ( ) != null ) { &#xA;&#x9;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type type = selfReference .getPrevious ( ) .getReferencedType ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;if ( type instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;contextClassifier = ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) type ; &#xA;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;} &#xA;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.modifiers.AnnotationInstanceOrModifier modifier : this .getAnnotationsAndModifiers ( ) ) { &#xA;&#x9;if ( modifier instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.modifiers.Private ) { &#xA;&#x9;&#x9;if ( myClassifier .equalsType ( 0 , contextClassifier , 0 ) ) { &#xA;&#x9;&#x9;&#x9;return false ; &#xA;&#x9;&#x9;} &#xA;&#x9;&#x9;return true ; &#xA;&#x9;} &#xA;&#x9;if ( modifier instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.modifiers.Public ) { &#xA;&#x9;&#x9;return false ; &#xA;&#x9;} &#xA;&#x9;if ( modifier instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.modifiers.Protected ) { &#xA;&#x9;&#x9;//package visibility&#xA;if ( getContainingPackageName ( ) != null &amp;&amp; getContainingPackageName ( ) .equals ( context .getContainingPackageName ( ) ) ) { &#xA;&#x9;&#x9;&#x9;return false ; &#xA;&#x9;&#x9;} &#xA;&#x9;&#x9;//try outer classifiers as well &#xA;while ( contextClassifier instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Classifier ) { &#xA;&#x9;&#x9;&#x9;if ( contextClassifier .isSuperType ( 0 , myClassifier , null ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;return false ; &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;contextClassifier = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.commons.Commentable ) contextClassifier .eContainer ( ) ) .getParentConcreteClassifier ( ) ; &#xA;&#x9;&#x9;&#x9;if ( contextClassifier != null &amp;&amp; ! contextClassifier .eIsProxy ( ) &amp;&amp; contextClassifier .isSuperType ( 0 , myClassifier , null ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;return false ; &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;} &#xA;&#x9;&#x9;//visibility through anonymous subclass&#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.AnonymousClass anonymousClass = context .getContainingAnonymousClass ( ) ; &#xA;&#x9;&#x9;while ( anonymousClass != null ) { &#xA;&#x9;&#x9;&#x9;contextClassifier = anonymousClass .getSuperClassifier ( ) ; &#xA;&#x9;&#x9;&#x9;if ( contextClassifier == null ) { &#xA;&#x9;&#x9;&#x9;&#x9;return true ; &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;if ( contextClassifier .isSuperType ( 0 , myClassifier , null ) ) { &#xA;&#x9;&#x9;&#x9;&#x9;return false ; &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;anonymousClass = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.commons.Commentable ) anonymousClass .eContainer ( ) ) .getContainingAnonymousClass ( ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;&#x9;return true ; &#xA;&#x9;} &#xA;} &#xA;//package visibility?&#xA;if ( getContainingPackageName ( ) != null &amp;&amp; getContainingPackageName ( ) .equals ( context .getContainingPackageName ( ) ) ) { &#xA;&#x9;return false ; &#xA;} &#xA;return true ; &#xA;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
        <eParameters name="context" eType="#//commons/Commentable"/>
      </eOperations>
      <eOperations name="isStatic" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="//all members of an interface as static by default&#xA;if ( this .eContainer ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Interface ) { &#xA;&#x9;return true ; &#xA;} &#xA;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.modifiers.AnnotationInstanceOrModifier modifier : this .getAnnotationsAndModifiers ( ) ) { &#xA;&#x9;if ( modifier instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.modifiers.Static ) { &#xA;&#x9;&#x9;return true ; &#xA;&#x9;} &#xA;} &#xA;return false ; &#xA;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EReference" name="annotationsAndModifiers"
          upperBound="-1" eType="#//modifiers/AnnotationInstanceOrModifier" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Modifiable" abstract="true" eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="modifiers" upperBound="-1"
          eType="#//modifiers/Modifier" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Abstract" eSuperTypes="#//modifiers/Modifier"/>
    <eClassifiers xsi:type="ecore:EClass" name="Final" eSuperTypes="#//modifiers/Modifier"/>
    <eClassifiers xsi:type="ecore:EClass" name="Native" eSuperTypes="#//modifiers/Modifier"/>
    <eClassifiers xsi:type="ecore:EClass" name="Protected" eSuperTypes="#//modifiers/Modifier"/>
    <eClassifiers xsi:type="ecore:EClass" name="Public" eSuperTypes="#//modifiers/Modifier"/>
    <eClassifiers xsi:type="ecore:EClass" name="Private" eSuperTypes="#//modifiers/Modifier"/>
    <eClassifiers xsi:type="ecore:EClass" name="Static" eSuperTypes="#//modifiers/Modifier"/>
    <eClassifiers xsi:type="ecore:EClass" name="Strictfp" eSuperTypes="#//modifiers/Modifier"/>
    <eClassifiers xsi:type="ecore:EClass" name="Synchronized" eSuperTypes="#//modifiers/Modifier"/>
    <eClassifiers xsi:type="ecore:EClass" name="Transient" eSuperTypes="#//modifiers/Modifier"/>
    <eClassifiers xsi:type="ecore:EClass" name="Volatile" eSuperTypes="#//modifiers/Modifier"/>
  </eSubpackages>
  <eSubpackages name="operators" nsURI="http://www.emftext.org/simTL4J/operators"
      nsPrefix="operators">
    <eClassifiers xsi:type="ecore:EClass" name="Operator" abstract="true" eSuperTypes="#//commons/Commentable"/>
    <eClassifiers xsi:type="ecore:EClass" name="AdditiveOperator" abstract="true"
        eSuperTypes="#//operators/Operator"/>
    <eClassifiers xsi:type="ecore:EClass" name="AssignmentOperator" abstract="true"
        eSuperTypes="#//operators/Operator"/>
    <eClassifiers xsi:type="ecore:EClass" name="EqualityOperator" abstract="true"
        eSuperTypes="#//operators/Operator"/>
    <eClassifiers xsi:type="ecore:EClass" name="MultiplicativeOperator" abstract="true"
        eSuperTypes="#//operators/Operator"/>
    <eClassifiers xsi:type="ecore:EClass" name="RelationOperator" abstract="true"
        eSuperTypes="#//operators/Operator"/>
    <eClassifiers xsi:type="ecore:EClass" name="ShiftOperator" abstract="true" eSuperTypes="#//operators/Operator"/>
    <eClassifiers xsi:type="ecore:EClass" name="UnaryOperator" abstract="true" eSuperTypes="#//operators/Operator"/>
    <eClassifiers xsi:type="ecore:EClass" name="UnaryModificationOperator" abstract="true"
        eSuperTypes="#//operators/Operator"/>
    <eClassifiers xsi:type="ecore:EClass" name="Assignment" eSuperTypes="#//operators/AssignmentOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="AssignmentAnd" eSuperTypes="#//operators/AssignmentOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="AssignmentDivision" eSuperTypes="#//operators/AssignmentOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="AssignmentExclusiveOr" eSuperTypes="#//operators/AssignmentOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="AssignmentMinus" eSuperTypes="#//operators/AssignmentOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="AssignmentModulo" eSuperTypes="#//operators/AssignmentOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="AssignmentMultiplication" eSuperTypes="#//operators/AssignmentOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="AssignmentLeftShift" eSuperTypes="#//operators/AssignmentOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="AssignmentOr" eSuperTypes="#//operators/AssignmentOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="AssignmentPlus" eSuperTypes="#//operators/AssignmentOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="AssignmentRightShift" eSuperTypes="#//operators/AssignmentOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="AssignmentUnsignedRightShift" eSuperTypes="#//operators/AssignmentOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="Equal" eSuperTypes="#//operators/EqualityOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="NotEqual" eSuperTypes="#//operators/EqualityOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="GreaterThan" eSuperTypes="#//operators/RelationOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="GreaterThanOrEqual" eSuperTypes="#//operators/RelationOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="LessThan" eSuperTypes="#//operators/RelationOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="LessThanOrEqual" eSuperTypes="#//operators/RelationOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="Addition" eSuperTypes="#//operators/AdditiveOperator #//operators/UnaryOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="Subtraction" eSuperTypes="#//operators/AdditiveOperator #//operators/UnaryOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="Division" eSuperTypes="#//operators/MultiplicativeOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="Multiplication" eSuperTypes="#//operators/MultiplicativeOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="Remainder" eSuperTypes="#//operators/MultiplicativeOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="Complement" eSuperTypes="#//operators/UnaryOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="MinusMinus" eSuperTypes="#//operators/UnaryModificationOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="Negate" eSuperTypes="#//operators/UnaryOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="PlusPlus" eSuperTypes="#//operators/UnaryModificationOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="LeftShift" eSuperTypes="#//operators/ShiftOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="RightShift" eSuperTypes="#//operators/ShiftOperator"/>
    <eClassifiers xsi:type="ecore:EClass" name="UnsignedRightShift" eSuperTypes="#//operators/ShiftOperator"/>
  </eSubpackages>
  <eSubpackages name="parameters" nsURI="http://www.emftext.org/simTL4J/parameters"
      nsPrefix="parameters">
    <eClassifiers xsi:type="ecore:EClass" name="Parameter" abstract="true" eSuperTypes="#//variables/Variable #//modifiers/AnnotableAndModifiable"/>
    <eClassifiers xsi:type="ecore:EClass" name="Parametrizable" abstract="true" eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
          eType="#//parameters/Parameter" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="OrdinaryParameter" eSuperTypes="#//parameters/Parameter"/>
    <eClassifiers xsi:type="ecore:EClass" name="VariableLengthParameter" eSuperTypes="#//parameters/Parameter"/>
  </eSubpackages>
  <eSubpackages name="references" nsURI="http://www.emftext.org/simTL4J/references"
      nsPrefix="references">
    <eClassifiers xsi:type="ecore:EClass" name="Reference" abstract="true" eSuperTypes="#//expressions/PrimaryExpression #//generics/TypeArgumentable">
      <eOperations name="getReferencedType" eType="#//types/Type">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.literals.Literal ) { &#xA;&#x9;return ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.literals.Literal ) this ) .getType ( ) ; &#xA;} &#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type type = null ; &#xA;//referenced element point to a type&#xA;//element points to this or super&#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypedElement ) { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypeReference typeRef = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypedElement ) this ) .getTypeReference ( ) ; &#xA;&#x9;type = typeRef .getBoundTarget ( this ) ; &#xA;} else //element points to the object's class object&#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.SelfReference ) { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type thisClass = null ; &#xA;&#x9;if ( this .getPrevious ( ) != null ) { &#xA;&#x9;&#x9;thisClass = this .getPrevious ( ) .getReferencedType ( ) ; &#xA;&#x9;} else { &#xA;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.AnonymousClass anonymousContainer = getContainingAnonymousClass ( ) ; &#xA;&#x9;&#x9;if ( anonymousContainer != null ) { &#xA;&#x9;&#x9;&#x9;thisClass = anonymousContainer ; &#xA;&#x9;&#x9;} else { &#xA;&#x9;&#x9;&#x9;thisClass = getContainingConcreteClassifier ( ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;&#x9;//find super class if &quot;self&quot; is &quot;super&quot;&#xA;if ( ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.SelfReference ) this ) .getSelf ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.literals.Super ) { &#xA;&#x9;&#x9;if ( thisClass instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class ) { &#xA;&#x9;&#x9;&#x9;return ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class ) thisClass ) .getSuperClass ( ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;&#x9;if ( thisClass instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.AnonymousClass ) { &#xA;&#x9;&#x9;&#x9;return ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.AnonymousClass ) thisClass ) .getSuperClassifier ( ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;&#x9;return thisClass ; &#xA;} else //referenced element points to an element with a type&#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.ReflectiveClassReference ) { &#xA;&#x9;return getClassClass ( ) ; &#xA;} else //Strings may also appear as reference&#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.ElementReference ) { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.references.ReferenceableElement target = ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.ReferenceableElement ) ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.ElementReference ) this ) .getTarget ( ) ; &#xA;&#x9;if ( target .eIsProxy ( ) ) { &#xA;&#x9;&#x9;type = null ; &#xA;&#x9;} &#xA;&#x9;//Navigate through AdditionalLocalVariable or Field&#xA;if ( target instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.variables.AdditionalLocalVariable ) { &#xA;&#x9;&#x9;target = ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.ReferenceableElement ) target .eContainer ( ) ; &#xA;&#x9;} &#xA;&#x9;if ( target instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.members.AdditionalField ) { &#xA;&#x9;&#x9;target = ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.ReferenceableElement ) target .eContainer ( ) ; &#xA;&#x9;} &#xA;&#x9;if ( target instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypedElement ) { &#xA;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypeReference typeRef = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypedElement ) target ) .getTypeReference ( ) ; &#xA;&#x9;&#x9;if ( typeRef != null ) { &#xA;&#x9;&#x9;&#x9;type = typeRef .getBoundTarget ( this ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;} else /*e.g. Annotation*/if ( target instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type ) { &#xA;&#x9;&#x9;return ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type ) target ; &#xA;&#x9;} else if ( target instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.members.EnumConstant ) { &#xA;&#x9;&#x9;type = ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Enumeration ) target .eContainer ( ) ; &#xA;&#x9;} &#xA;} else if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.StringReference ) { &#xA;&#x9;return getStringClass ( ) ; &#xA;} else if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.NestedExpression ) { &#xA;&#x9;type = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.NestedExpression ) this ) .getExpression ( ) .getType ( ) ; &#xA;} else if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.PrimitiveTypeReference ) { &#xA;&#x9;type = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.PrimitiveTypeReference ) this ) .getPrimitiveType ( ) ; &#xA;} else { &#xA;&#x9;assert ( false ) ; &#xA;} &#xA;return type ; &#xA;"/>
          <details key="documentation" value="&#xA; Determines the &lt;code>Type&lt;/code> of the reference. That is,&#xA; either the type to which the reference points directly, or the&#xA; type of the element to which the reference points.&#xA; &#xA; @return the determined type&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getPrevious" eType="#//references/Reference">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="if ( eContainer() instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.Reference ) { &#xA;&#x9;&#x9;&#x9; Reference container = (Reference) eContainer( ) ; &#xA;&#x9;&#x9;&#x9;  if (this.equals(container.getNext())) {&#xA;&#x9;&#x9;&#x9;&#x9; return container;&#xA;&#x9;&#x9;&#x9; }&#xA;}&#xA;return null;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EReference" name="next" eType="#//references/Reference"
          containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="arraySelectors" upperBound="-1"
          eType="#//arrays/ArraySelector" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Argumentable" abstract="true" eSuperTypes="#//commons/Commentable">
      <eOperations name="getArgumentTypes" upperBound="-1" eType="#//types/Type">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type > resultList = new org.eclipse.emf.common.util.BasicEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type > ( ) ; &#xA;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.expressions.Expression exp : getArguments ( ) ) { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type type = exp .getType ( ) ; &#xA;&#x9;resultList .add ( type ) ; &#xA;} &#xA;return resultList ; &#xA;"/>
          <details key="documentation" value="&#xA; @return list of types of my arguments&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1"
          eType="#//expressions/Expression" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ReferenceableElement" abstract="true"
        eSuperTypes="#//commons/NamedElement"/>
    <eClassifiers xsi:type="ecore:EClass" name="ElementReference" abstract="true"
        eSuperTypes="#//references/Reference">
      <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//references/ReferenceableElement"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="IdentifierReference" eSuperTypes="#//references/ElementReference"/>
    <eClassifiers xsi:type="ecore:EClass" name="MethodCall" eSuperTypes="#//references/ElementReference #//references/Argumentable #//generics/CallTypeArgumentable"/>
    <eClassifiers xsi:type="ecore:EClass" name="ReflectiveClassReference" eSuperTypes="#//references/Reference"/>
    <eClassifiers xsi:type="ecore:EClass" name="PrimitiveTypeReference" eSuperTypes="#//references/Reference">
      <eStructuralFeatures xsi:type="ecore:EReference" name="primitiveType" lowerBound="1"
          eType="#//types/PrimitiveType" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="StringReference" eSuperTypes="#//references/Reference">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="SelfReference" eSuperTypes="#//references/Reference">
      <eStructuralFeatures xsi:type="ecore:EReference" name="self" eType="#//literals/Self"
          containment="true"/>
    </eClassifiers>
  </eSubpackages>
  <eSubpackages name="statements" nsURI="http://www.emftext.org/simTL4J/statements"
      nsPrefix="statements">
    <eClassifiers xsi:type="ecore:EClass" name="StatementContainer" abstract="true"
        eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="statement" lowerBound="1"
          eType="#//statements/Statement" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="StatementListContainer" abstract="true"
        eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="statements" upperBound="-1"
          eType="#//statements/Statement" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Conditional" abstract="true" eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="condition" lowerBound="1"
          eType="#//expressions/Expression" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ForLoopInitializer" abstract="true"
        eSuperTypes="#//commons/Commentable"/>
    <eClassifiers xsi:type="ecore:EClass" name="Statement" abstract="true" eSuperTypes="#//commons/Commentable"/>
    <eClassifiers xsi:type="ecore:EClass" name="SwitchCase" abstract="true" eSuperTypes="#//statements/StatementListContainer"/>
    <eClassifiers xsi:type="ecore:EClass" name="Assert" eSuperTypes="#//statements/Statement #//statements/Conditional">
      <eStructuralFeatures xsi:type="ecore:EReference" name="errorMessage" eType="#//expressions/Expression"
          containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Break" eSuperTypes="#//statements/Jump"/>
    <eClassifiers xsi:type="ecore:EClass" name="Block" eSuperTypes="#//members/Member #//statements/Statement #//statements/StatementListContainer #//modifiers/Modifiable"/>
    <eClassifiers xsi:type="ecore:EClass" name="CatchBlock" eSuperTypes="#//statements/StatementListContainer">
      <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" lowerBound="1"
          eType="#//parameters/OrdinaryParameter" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Condition" eSuperTypes="#//statements/Statement #//statements/StatementContainer #//statements/Conditional">
      <eStructuralFeatures xsi:type="ecore:EReference" name="elseStatement" eType="#//statements/Statement"
          containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Continue" eSuperTypes="#//statements/Jump"/>
    <eClassifiers xsi:type="ecore:EClass" name="DefaultSwitchCase" eSuperTypes="#//statements/SwitchCase"/>
    <eClassifiers xsi:type="ecore:EClass" name="DoWhileLoop" eSuperTypes="#//statements/WhileLoop"/>
    <eClassifiers xsi:type="ecore:EClass" name="EmptyStatement" eSuperTypes="#//statements/Statement"/>
    <eClassifiers xsi:type="ecore:EClass" name="ExpressionStatement" eSuperTypes="#//statements/Statement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="expression" lowerBound="1"
          eType="#//expressions/Expression" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ForLoop" eSuperTypes="#//statements/Statement #//statements/StatementContainer #//statements/Conditional">
      <eStructuralFeatures xsi:type="ecore:EReference" name="init" eType="#//statements/ForLoopInitializer"
          containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="updates" upperBound="-1"
          eType="#//expressions/Expression" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ForEachLoop" eSuperTypes="#//statements/Statement #//statements/StatementContainer">
      <eStructuralFeatures xsi:type="ecore:EReference" name="next" eType="#//parameters/OrdinaryParameter"
          containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="collection" eType="#//expressions/Expression"
          containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Jump" abstract="true" eSuperTypes="#//statements/Statement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#//statements/JumpLabel"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="JumpLabel" eSuperTypes="#//statements/Statement #//statements/StatementContainer #//commons/NamedElement"/>
    <eClassifiers xsi:type="ecore:EClass" name="LocalVariableStatement" eSuperTypes="#//statements/Statement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="variable" eType="#//variables/LocalVariable"
          containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="NormalSwitchCase" eSuperTypes="#//statements/SwitchCase #//statements/Conditional"/>
    <eClassifiers xsi:type="ecore:EClass" name="Return" eSuperTypes="#//statements/Statement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="returnValue" eType="#//expressions/Expression"
          containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Switch" eSuperTypes="#//statements/Statement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="cases" upperBound="-1"
          eType="#//statements/SwitchCase" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="variable" eType="#//expressions/Expression"
          containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="SynchronizedBlock" eSuperTypes="#//statements/Statement #//statements/StatementListContainer">
      <eStructuralFeatures xsi:type="ecore:EReference" name="lockProvider" eType="#//expressions/Expression"
          containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Throw" eSuperTypes="#//statements/Statement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="throwable" lowerBound="1"
          eType="#//expressions/Expression" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="TryBlock" eSuperTypes="#//statements/Statement #//statements/StatementListContainer">
      <eStructuralFeatures xsi:type="ecore:EReference" name="catcheBlocks" upperBound="-1"
          eType="#//statements/CatchBlock" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="finallyBlock" eType="#//statements/Block"
          containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="WhileLoop" eSuperTypes="#//statements/Statement #//statements/StatementContainer">
      <eStructuralFeatures xsi:type="ecore:EReference" name="condition" lowerBound="1"
          eType="#//expressions/Expression" containment="true"/>
    </eClassifiers>
  </eSubpackages>
  <eSubpackages name="types" nsURI="http://www.emftext.org/simTL4J/types" nsPrefix="types">
    <eClassifiers xsi:type="ecore:EClass" name="Type" abstract="true" eSuperTypes="#//commons/Commentable">
      <eOperations name="equalsType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type _this = this ; &#xA;//do comparison on the classifier level&#xA;if ( _this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.PrimitiveType ) { &#xA;&#x9;_this = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.PrimitiveType ) _this ) .wrapPrimitiveType ( ) ; &#xA;} &#xA;if ( otherType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.PrimitiveType ) { &#xA;&#x9;otherType = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.PrimitiveType ) otherType ) .wrapPrimitiveType ( ) ; &#xA;} &#xA;if ( arrayDimension == otherArrayDimension &amp;&amp; otherType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Classifier &amp;&amp; _this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Classifier &amp;&amp; ( otherType .equals ( _this ) ) ) { &#xA;&#x9;return true ; &#xA;} &#xA;return false ; &#xA;"/>
          <details key="documentation" value="&#xA; @param arrayDimension&#xA; @param otherType&#xA; @param otherArrayDimension&#xA; @return if both type are equal&#xA;"/>
        </eAnnotations>
        <eParameters name="arrayDimension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"/>
        <eParameters name="otherType" eType="#//types/Type"/>
        <eParameters name="otherArrayDimension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"/>
      </eOperations>
      <eOperations name="isSuperType" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="if ( otherType == null ) { &#xA;&#x9;return false ; &#xA;} &#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type _this = this ; &#xA;if ( _this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.util.TemporalCompositeClassifier || otherType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.util.TemporalCompositeClassifier ) { &#xA;&#x9;org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type > _thisTypeList = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type > ( ) ; &#xA;&#x9;org.eclipse.emf.common.util.EList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type > otherTypeList = new sg.edu.nus.comp.simTL.language.java.simTL4J.util.UniqueEList &lt; sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type > ( ) ; &#xA;&#x9;if ( _this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.util.TemporalCompositeClassifier ) { &#xA;&#x9;&#x9;for ( org.eclipse.emf.ecore.EObject aType : ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.util.TemporalCompositeClassifier ) _this ) .getSuperTypes ( ) ) { &#xA;&#x9;&#x9;&#x9;_thisTypeList .add ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type ) aType ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;} else { &#xA;&#x9;&#x9;_thisTypeList .add ( _this ) ; &#xA;&#x9;} &#xA;&#x9;if ( otherType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.util.TemporalCompositeClassifier ) { &#xA;&#x9;&#x9;for ( org.eclipse.emf.ecore.EObject aType : ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.util.TemporalCompositeClassifier ) otherType ) .getSuperTypes ( ) ) { &#xA;&#x9;&#x9;&#x9;otherTypeList .add ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type ) aType ) ; &#xA;&#x9;&#x9;} &#xA;&#x9;} else { &#xA;&#x9;&#x9;otherTypeList .add ( _this ) ; &#xA;&#x9;} &#xA;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type one_thisType : _thisTypeList ) { &#xA;&#x9;&#x9;for ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type oneOtherType : otherTypeList ) { &#xA;&#x9;&#x9;&#x9;boolean result = one_thisType .isSuperType ( arrayDimension , oneOtherType , otherArrayType ) ; &#xA;&#x9;&#x9;&#x9;if ( result ) { &#xA;&#x9;&#x9;&#x9;&#x9;return true ; &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;&#x9;return false ; &#xA;} &#xA;//if I am a void, I am of every type&#xA;if ( _this .equals ( getLibClass ( &quot;Void&quot; ) ) ) { &#xA;&#x9;return true ; &#xA;} &#xA;//if the other is Object I am a subtype in any case (also array dimensions do not matter)&#xA;if ( otherType .equals ( getObjectClass ( ) ) ) { &#xA;&#x9;return true ; &#xA;} &#xA;//String, primitives, and arrays are serializable&#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier serializableClass = ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) org.eclipse.emf.ecore.util.EcoreUtil .resolve ( getConcreteClassifier ( &quot;java.io.Serializable&quot; ) , _this ) ; &#xA;if ( otherType .equals ( serializableClass ) ) { &#xA;&#x9;if ( _this .equals ( serializableClass ) ) { &#xA;&#x9;&#x9;return true ; &#xA;&#x9;} else if ( _this .equals ( getStringClass ( ) ) ) { &#xA;&#x9;&#x9;return true ; &#xA;&#x9;} else if ( _this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.PrimitiveType ) { &#xA;&#x9;&#x9;return true ; &#xA;&#x9;} else if ( arrayDimension > 0 ) { &#xA;&#x9;&#x9;//all arrays are serializable&#xA;return true ; &#xA;&#x9;} &#xA;} &#xA;//if one of us is a parameter to the best of my knowledge, we might match&#xA;if ( _this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeParameter ) { &#xA;&#x9;return true ; &#xA;} &#xA;if ( otherType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeParameter ) { &#xA;&#x9;return true ; &#xA;} &#xA;//if array dimensions do not match, I am no subtype&#xA;boolean isTypeParameter = false ; &#xA;if ( otherArrayType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypedElement ) { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type type = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.TypedElement ) otherArrayType ) .getTypeReference ( ) .getTarget ( ) ; &#xA;&#x9;isTypeParameter = type instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeParameter ; &#xA;} &#xA;boolean isVariableLengthParameter = otherArrayType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.parameters.VariableLengthParameter ; &#xA;long otherArrayDim = 0 ; &#xA;if ( otherArrayType != null ) { &#xA;&#x9;otherArrayDim = otherArrayType .getArrayDimension ( ) ; &#xA;} &#xA;if ( isTypeParameter &amp;&amp; isVariableLengthParameter ) { &#xA;&#x9;if ( arrayDimension != otherArrayDim &amp;&amp; arrayDimension != otherArrayDim - 1 &amp;&amp; arrayDimension &lt; otherArrayDim ) { &#xA;&#x9;&#x9;return false ; &#xA;&#x9;} &#xA;} else if ( isTypeParameter ) { &#xA;&#x9;if ( arrayDimension &lt; otherArrayDim ) { &#xA;&#x9;&#x9;return false ; &#xA;&#x9;} &#xA;} else if ( isVariableLengthParameter ) { &#xA;&#x9;if ( arrayDimension != otherArrayDim &amp;&amp; arrayDimension != otherArrayDim - 1 ) { &#xA;&#x9;&#x9;return false ; &#xA;&#x9;} &#xA;} else { &#xA;&#x9;if ( arrayDimension != otherArrayDim ) { &#xA;&#x9;&#x9;return false ; &#xA;&#x9;} &#xA;} &#xA;//annotations&#xA;if ( _this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Annotation &amp;&amp; ( otherType .equals ( getAnnotationInterface ( ) ) || ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) _this ) .getAllSuperClassifiers ( ) .contains ( getAnnotationInterface ( ) ) ) ) { &#xA;&#x9;return true ; &#xA;} &#xA;//do comparison on the classifier level&#xA;if ( _this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.PrimitiveType ) { &#xA;&#x9;_this = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.PrimitiveType ) _this ) .wrapPrimitiveType ( ) ; &#xA;} &#xA;if ( otherType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.PrimitiveType ) { &#xA;&#x9;otherType = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.PrimitiveType ) otherType ) .wrapPrimitiveType ( ) ; &#xA;} &#xA;//compare in type hierarchy&#xA;if ( otherType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier &amp;&amp; _this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier &amp;&amp; ( otherType .equals ( _this ) || ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) _this ) .getAllSuperClassifiers ( ) .contains ( otherType ) ) ) { &#xA;&#x9;return true ; &#xA;} &#xA;if ( otherType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier &amp;&amp; _this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.AnonymousClass &amp;&amp; ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.AnonymousClass ) _this ) .getAllSuperClassifiers ( ) .contains ( otherType ) ) { &#xA;&#x9;return true ; &#xA;} &#xA;//everything can be implicitly casted to CharSequence, so I match when the other type is a CharSequence&#xA;sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Interface charSequenceClass = getLibInterface ( &quot;CharSequence&quot; ) ; &#xA;if ( otherType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) { &#xA;&#x9;if ( otherType .equals ( charSequenceClass ) || ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.ConcreteClassifier ) otherType ) .getAllSuperClassifiers ( ) .contains ( charSequenceClass ) ) { &#xA;&#x9;&#x9;return true ; &#xA;&#x9;} &#xA;} &#xA;//there are some specifics for primitive types not reflected in the type hierarchy&#xA;if ( otherType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class ) { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.PrimitiveType primitiveType = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class ) otherType ) .unWrapPrimitiveType ( ) ; &#xA;&#x9;if ( primitiveType == null ) { &#xA;&#x9;&#x9;return false ; &#xA;&#x9;} &#xA;&#x9;otherType = primitiveType ; &#xA;} &#xA;if ( _this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class ) { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.PrimitiveType primitiveType = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class ) _this ) .unWrapPrimitiveType ( ) ; &#xA;&#x9;if ( primitiveType == null ) { &#xA;&#x9;&#x9;return false ; &#xA;&#x9;} &#xA;&#x9;_this = primitiveType ; &#xA;} &#xA;if ( _this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Boolean ) { &#xA;&#x9;if ( otherType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Boolean ) { &#xA;&#x9;&#x9;return true ; &#xA;&#x9;} else { &#xA;&#x9;&#x9;return false ; &#xA;&#x9;} &#xA;} &#xA;if ( _this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Byte || _this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Int || _this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Short || _this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Long || _this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Char ) { &#xA;&#x9;if ( otherType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Byte || otherType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Int || otherType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Short || otherType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Long || otherType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Char || otherType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Float || otherType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Double ) { &#xA;&#x9;&#x9;return true ; &#xA;&#x9;} else { &#xA;&#x9;&#x9;return false ; &#xA;&#x9;} &#xA;} &#xA;if ( _this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Float || _this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Double ) { &#xA;&#x9;if ( otherType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Float || otherType instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Double ) { &#xA;&#x9;&#x9;return true ; &#xA;&#x9;} else { &#xA;&#x9;&#x9;return false ; &#xA;&#x9;} &#xA;} &#xA;return false ; &#xA;"/>
          <details key="documentation" value="&#xA; @param arrayDimension&#xA; @param otherType&#xA; @param otherArrayType&#xA; @return if the other type is equal to me or a super type of me&#xA;"/>
        </eAnnotations>
        <eParameters name="arrayDimension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong"/>
        <eParameters name="otherType" eType="#//types/Type"/>
        <eParameters name="otherArrayType" eType="#//arrays/ArrayTypeable"/>
      </eOperations>
      <eOperations name="getAllMembers" upperBound="-1" eType="#//members/Member">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="//method has to be specified in subclasses&#xA;throw new java.lang.UnsupportedOperationException ( ) ; &#xA;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
        <eParameters name="context" eType="#//commons/Commentable"/>
      </eOperations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="TypedElement" abstract="true" eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="typeReference" eType="#//types/TypeReference"
          containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="TypeReference" abstract="true" eSuperTypes="#//commons/Commentable">
      <eOperations name="getTarget" eType="#//types/Type">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="return getBoundTarget ( null ) ; &#xA;"/>
          <details key="documentation" value="&#xA; Returns the type referenced by this &lt;code>TypeReference&lt;/code>&#xA; considering all concrete subclasses of &lt;code>TypeReference&lt;/code> used&#xA; by the Java metamodel. &#xA; &#xA; @param _this &#xA; @return the type&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getBoundTarget" eType="#//types/Type">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="sg.edu.nus.comp.simTL.language.java.simTL4J.types.Type type = null ; &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.ClassifierReference || this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.NamespaceClassifierReference ) { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.ClassifierReference classifierRef = getPureClassifierReference ( ) ; &#xA;&#x9;if ( classifierRef != null ) { &#xA;&#x9;&#x9;type = classifierRef .getTarget ( ) ; &#xA;&#x9;} &#xA;&#x9;if ( reference instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.MethodCall ) { &#xA;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.references.MethodCall potentialCloneCall = ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.MethodCall ) reference ; &#xA;&#x9;&#x9;//clone returns the type of the cloned in the case of arrays&#xA;if ( &quot;clone&quot; .equals ( potentialCloneCall .getTarget ( ) .getName ( ) ) ) { &#xA;&#x9;&#x9;&#x9;if ( potentialCloneCall .getPrevious ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.references.ElementReference ) { &#xA;&#x9;&#x9;&#x9;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.references.ElementReference prevRef = ( sg.edu.nus.comp.simTL.language.java.simTL4J.references.ElementReference ) potentialCloneCall .getPrevious ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;if ( prevRef .getTarget ( ) instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.arrays.ArrayTypeable &amp;&amp; ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.arrays.ArrayTypeable ) prevRef .getTarget ( ) ) .getArrayDimension ( ) > 0 ) { &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;type = prevRef .getReferencedType ( ) ; &#xA;&#x9;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;} &#xA;&#x9;} &#xA;} else if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.PrimitiveType ) { &#xA;&#x9;return ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.PrimitiveType ) this ; &#xA;} &#xA;//resolve parameter to real type&#xA;if ( type instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeParameter ) { &#xA;&#x9;type = ( ( sg.edu.nus.comp.simTL.language.java.simTL4J.generics.TypeParameter ) type ) .getBoundType ( this , reference ) ; &#xA;} &#xA;if ( type != null &amp;&amp; type .eIsProxy ( ) ) { &#xA;&#x9;//this may happen, when e.g. a super type is resolved. It is ok.&#xA;return null ; &#xA;} &#xA;return type ; &#xA;"/>
          <details key="documentation" value="&#xA; Returns the type referenced by this &lt;code>TypeReference&lt;/code>&#xA; considering all concrete subclasses of &lt;code>TypeReference&lt;/code> used&#xA; by the Java metamodel. If type parameters are bound in the given reference,&#xA; the bound type will be returned instead of the parameter.&#xA; &#xA; @return the type&#xA;"/>
        </eAnnotations>
        <eParameters name="reference" eType="#//references/Reference"/>
      </eOperations>
      <eOperations name="getPureClassifierReference" eType="#//types/ClassifierReference">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="sg.edu.nus.comp.simTL.language.java.simTL4J.types.ClassifierReference classifierReference = null ; &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.ClassifierReference ) { &#xA;&#x9;classifierReference = ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.ClassifierReference ) this ; &#xA;} &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.NamespaceClassifierReference ) { &#xA;&#x9;sg.edu.nus.comp.simTL.language.java.simTL4J.types.NamespaceClassifierReference nsClassifierReference = ( sg.edu.nus.comp.simTL.language.java.simTL4J.types.NamespaceClassifierReference ) this ; &#xA;&#x9;if ( ! nsClassifierReference .getClassifierReferences ( ) .isEmpty ( ) ) { &#xA;&#x9;&#x9;int lastIndex = nsClassifierReference .getClassifierReferences ( ) .size ( ) - 1 ; &#xA;&#x9;&#x9;classifierReference = nsClassifierReference .getClassifierReferences ( ) .get ( lastIndex ) ; &#xA;&#x9;} &#xA;} &#xA;return classifierReference ; &#xA;"/>
          <details key="documentation" value="&#xA; Extracts the (possibly nested) classifier reference (if any) &#xA; from this type references.&#xA; &#xA; @return&#xA;"/>
        </eAnnotations>
      </eOperations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ClassifierReference" eSuperTypes="#//types/TypeReference #//generics/TypeArgumentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
          eType="#//classifiers/Classifier"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="NamespaceClassifierReference" eSuperTypes="#//types/TypeReference #//commons/NamespaceAwareElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="classifierReferences"
          lowerBound="1" upperBound="-1" eType="#//types/ClassifierReference" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType" abstract="true" eSuperTypes="#//types/Type #//types/TypeReference">
      <eOperations name="getAllMembers" upperBound="-1" eType="#//members/Member">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class javaClass = wrapPrimitiveType ( ) ; &#xA;return javaClass .getAllMembers ( context ) ; &#xA;"/>
          <details key="documentation" value="&#xA; @param context to check protected visibility&#xA; @return all members (including super type members)&#xA;"/>
        </eAnnotations>
        <eParameters name="context" eType="#//commons/Commentable"/>
      </eOperations>
      <eOperations name="wrapPrimitiveType" eType="#//classifiers/Class">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="sg.edu.nus.comp.simTL.language.java.simTL4J.classifiers.Class javaClass = null ; &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Boolean ) { &#xA;&#x9;javaClass = getLibClass ( &quot;Boolean&quot; ) ; &#xA;} &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Byte ) { &#xA;&#x9;javaClass = getLibClass ( &quot;Byte&quot; ) ; &#xA;} &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Char ) { &#xA;&#x9;javaClass = getLibClass ( &quot;Character&quot; ) ; &#xA;} &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Double ) { &#xA;&#x9;javaClass = getLibClass ( &quot;Double&quot; ) ; &#xA;} &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Float ) { &#xA;&#x9;javaClass = getLibClass ( &quot;Float&quot; ) ; &#xA;} &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Int ) { &#xA;&#x9;javaClass = getLibClass ( &quot;Integer&quot; ) ; &#xA;} &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Long ) { &#xA;&#x9;javaClass = getLibClass ( &quot;Long&quot; ) ; &#xA;} &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Short ) { &#xA;&#x9;javaClass = getLibClass ( &quot;Short&quot; ) ; &#xA;} &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.types.Void ) { &#xA;&#x9;javaClass = getLibClass ( &quot;Void&quot; ) ; &#xA;} &#xA;return javaClass ; &#xA;"/>
          <details key="documentation" value="&#xA; @return primitive type as a class representation&#xA;"/>
        </eAnnotations>
      </eOperations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Boolean" eSuperTypes="#//types/PrimitiveType"/>
    <eClassifiers xsi:type="ecore:EClass" name="Byte" eSuperTypes="#//types/PrimitiveType"/>
    <eClassifiers xsi:type="ecore:EClass" name="Char" eSuperTypes="#//types/PrimitiveType"/>
    <eClassifiers xsi:type="ecore:EClass" name="Double" eSuperTypes="#//types/PrimitiveType"/>
    <eClassifiers xsi:type="ecore:EClass" name="Float" eSuperTypes="#//types/PrimitiveType"/>
    <eClassifiers xsi:type="ecore:EClass" name="Int" eSuperTypes="#//types/PrimitiveType"/>
    <eClassifiers xsi:type="ecore:EClass" name="Long" eSuperTypes="#//types/PrimitiveType"/>
    <eClassifiers xsi:type="ecore:EClass" name="Short" eSuperTypes="#//types/PrimitiveType"/>
    <eClassifiers xsi:type="ecore:EClass" name="Void" eSuperTypes="#//types/PrimitiveType"/>
  </eSubpackages>
  <eSubpackages name="variables" nsURI="http://www.emftext.org/simTL4J/variables"
      nsPrefix="variables">
    <eClassifiers xsi:type="ecore:EClass" name="Variable" abstract="true" eSuperTypes="#//commons/NamedElement #//types/TypedElement #//arrays/ArrayTypeable #//references/ReferenceableElement #//generics/TypeArgumentable">
      <eOperations name="getArrayDimension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="long size = this .getArrayDimensionsBefore ( ) .size ( ) + this .getArrayDimensionsAfter ( ) .size ( ) ; &#xA;if ( this instanceof sg.edu.nus.comp.simTL.language.java.simTL4J.parameters.VariableLengthParameter ) { &#xA;&#x9;size ++ ; &#xA;} &#xA;return size ; &#xA;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="LocalVariable" eSuperTypes="#//variables/Variable #//instantiations/Initializable #//statements/ForLoopInitializer #//modifiers/AnnotableAndModifiable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="additionalLocalVariables"
          upperBound="-1" eType="#//variables/AdditionalLocalVariable" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="AdditionalLocalVariable" eSuperTypes="#//references/ReferenceableElement #//arrays/ArrayTypeable #//instantiations/Initializable">
      <eOperations name="getArrayDimension" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//ELong">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="long size = this .getArrayDimensionsBefore ( ) .size ( ) + this .getArrayDimensionsAfter ( ) .size ( ) ; &#xA;return size ; &#xA;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
    </eClassifiers>
  </eSubpackages>
  <eSubpackages name="simTL" nsURI="http://www.emftext.org/simTL4J/simTL" nsPrefix="simTL">
    <eClassifiers xsi:type="ecore:EClass" name="TIf" abstract="true">
      <eAnnotations source="template_class"/>
      <eAnnotations source="template_if"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="condition" lowerBound="1"
          eType="#//simTL/TAbstractMethodStatement" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="TFor" abstract="true">
      <eAnnotations source="template_class"/>
      <eAnnotations source="template_forLoop"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="count" lowerBound="1"
          eType="#//simTL/TForVariable" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="TForVariable">
      <eAnnotations source="template_class"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1"
          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="setToBeIterated" lowerBound="1"
          eType="#//simTL/TAbstractMethodStatement" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Template">
      <eAnnotations source="template_class">
        <details key="objectLanguage" value="http://www.emftext.org/java/"/>
        <details key="objectLanguageFactory" value="org.emftext.language.java.resource.java.mopp.JavaResourceFactory"/>
        <details key="objectLanguageExtension" value="java"/>
      </eAnnotations>
      <eStructuralFeatures xsi:type="ecore:EReference" name="templateHeader" eType="#//simTL/TemplateHeader"
          containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="class" lowerBound="1"
          eType="#//containers/JavaRoot" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="TemplateHeader">
      <eAnnotations source="template_class"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="modelImports" upperBound="-1"
          eType="#//simTL/TModelImport" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="TModelImport">
      <eAnnotations source="template_class"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1"
          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="uri" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
          defaultValueLiteral=""/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="TMethodCall">
      <eAnnotations source="template_class"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="methodName" lowerBound="1"
          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="params" upperBound="-1"
          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="TAbstractMethodStatement">
      <eAnnotations source="template_class"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="TFor_MemberContainer" eSuperTypes="#//simTL/TFor #//members/MemberContainer #//members/Member">
      <eAnnotations source="template_class"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="TFor_StatementListContainer" eSuperTypes="#//simTL/TFor #//statements/StatementListContainer #//statements/Statement">
      <eAnnotations source="template_class"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="TIf_MemberContainer" eSuperTypes="#//simTL/TIf #//members/MemberContainer #//members/Member">
      <eAnnotations source="template_class"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="TIf_StatementListContainer" eSuperTypes="#//simTL/TIf #//statements/StatementListContainer #//statements/Statement">
      <eAnnotations source="template_class"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="TPlaceholder">
      <eAnnotations source="template_class"/>
      <eAnnotations source="template_PH"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="methodStatement" lowerBound="1"
          eType="#//simTL/TAbstractMethodStatement" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="TPlaceholder_PrimaryExpression" eSuperTypes="#//simTL/TPlaceholder #//expressions/PrimaryExpression">
      <eAnnotations source="template_class"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="TUnaryOperator" abstract="true" eSuperTypes="#//simTL/TAbstractMethodStatement">
      <eAnnotations source="template_class"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="methodStatement" lowerBound="1"
          eType="#//simTL/TAbstractMethodStatement" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="TUnaryOperatorNOT" eSuperTypes="#//simTL/TUnaryOperator">
      <eAnnotations source="template_class"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="TMethodStatementImpl" eSuperTypes="#//simTL/TAbstractMethodStatement">
      <eAnnotations source="template_class"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="caller" lowerBound="1"
          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="callee" lowerBound="1"
          upperBound="-1" eType="#//simTL/TMethodCall" containment="true"/>
    </eClassifiers>
  </eSubpackages>
</ecore:EPackage>

{"directed":true,"nodes":[{"nsPrefix":"simTL4J","nsURI":"http://www.emftext.org/simTL4J","name":"simTL4J","id":0,"eClass":"EPackage"},{"nsPrefix":"annotations","nsURI":"http://www.emftext.org/simTL4J/annotations","name":"annotations","id":1,"eClass":"EPackage"},{"nsPrefix":"arrays","nsURI":"http://www.emftext.org/simTL4J/arrays","name":"arrays","id":2,"eClass":"EPackage"},{"nsPrefix":"classifiers","nsURI":"http://www.emftext.org/simTL4J/classifiers","name":"classifiers","id":3,"eClass":"EPackage"},{"nsPrefix":"commons","nsURI":"http://www.emftext.org/simTL4J/commons","name":"commons","id":4,"eClass":"EPackage"},{"nsPrefix":"containers","nsURI":"http://www.emftext.org/simTL4J/containers","name":"containers","id":5,"eClass":"EPackage"},{"nsPrefix":"expressions","nsURI":"http://www.emftext.org/simTL4J/expressions","name":"expressions","id":6,"eClass":"EPackage"},{"nsPrefix":"generics","nsURI":"http://www.emftext.org/simTL4J/generics","name":"generics","id":7,"eClass":"EPackage"},{"nsPrefix":"imports","nsURI":"http://www.emftext.org/simTL4J/imports","name":"imports","id":8,"eClass":"EPackage"},{"nsPrefix":"instantiations","nsURI":"http://www.emftext.org/simTL4J/instantiations","name":"instantiations","id":9,"eClass":"EPackage"},{"nsPrefix":"literals","nsURI":"http://www.emftext.org/simTL4J/literals","name":"literals","id":10,"eClass":"EPackage"},{"nsPrefix":"members","nsURI":"http://www.emftext.org/simTL4J/members","name":"members","id":11,"eClass":"EPackage"},{"nsPrefix":"modifiers","nsURI":"http://www.emftext.org/simTL4J/modifiers","name":"modifiers","id":12,"eClass":"EPackage"},{"nsPrefix":"operators","nsURI":"http://www.emftext.org/simTL4J/operators","name":"operators","id":13,"eClass":"EPackage"},{"nsPrefix":"parameters","nsURI":"http://www.emftext.org/simTL4J/parameters","name":"parameters","id":14,"eClass":"EPackage"},{"nsPrefix":"references","nsURI":"http://www.emftext.org/simTL4J/references","name":"references","id":15,"eClass":"EPackage"},{"nsPrefix":"statements","nsURI":"http://www.emftext.org/simTL4J/statements","name":"statements","id":16,"eClass":"EPackage"},{"nsPrefix":"types","nsURI":"http://www.emftext.org/simTL4J/types","name":"types","id":17,"eClass":"EPackage"},{"nsPrefix":"variables","nsURI":"http://www.emftext.org/simTL4J/variables","name":"variables","id":18,"eClass":"EPackage"},{"nsPrefix":"simTL","nsURI":"http://www.emftext.org/simTL4J/simTL","name":"simTL","id":19,"eClass":"EPackage"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Annotable","instanceClass":null,"abstract":true,"id":20,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnnotationInstance","instanceClass":null,"abstract":false,"id":21,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnnotationParameter","instanceClass":null,"abstract":true,"id":22,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"SingleAnnotationParameter","instanceClass":null,"abstract":false,"id":23,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnnotationParameterList","instanceClass":null,"abstract":false,"id":24,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnnotationAttributeSetting","instanceClass":null,"abstract":false,"id":25,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnnotationValue","instanceClass":null,"abstract":true,"id":26,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnnotationAttribute","instanceClass":null,"abstract":false,"id":27,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Commentable","instanceClass":null,"abstract":true,"id":28,"interface":false,"eClass":"EClass"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"annotations","changeable":true,"resolveProxies":true,"lowerBound":0,"id":29,"derived":false},{"id":30,"eClass":"EGenericType"},{"id":31,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Reference","instanceClass":null,"abstract":true,"id":32,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnnotationInstanceOrModifier","instanceClass":null,"abstract":true,"id":33,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"NamespaceAwareElement","instanceClass":null,"abstract":true,"id":34,"interface":false,"eClass":"EClass"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"annotation","changeable":true,"resolveProxies":true,"lowerBound":1,"id":35,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"parameter","changeable":true,"resolveProxies":true,"lowerBound":0,"id":36,"derived":false},{"id":37,"eClass":"EGenericType"},{"id":38,"eClass":"EGenericType"},{"id":39,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Classifier","instanceClass":null,"abstract":true,"id":40,"interface":false,"eClass":"EClass"},{"id":41,"eClass":"EGenericType"},{"id":42,"eClass":"EGenericType"},{"id":43,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"value","changeable":true,"resolveProxies":true,"lowerBound":1,"id":44,"derived":false},{"id":45,"eClass":"EGenericType"},{"id":46,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"settings","changeable":true,"resolveProxies":true,"lowerBound":0,"id":47,"derived":false},{"id":48,"eClass":"EGenericType"},{"id":49,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"attribute","changeable":true,"resolveProxies":true,"lowerBound":1,"id":50,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"value","changeable":true,"resolveProxies":true,"lowerBound":1,"id":51,"derived":false},{"id":52,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"InterfaceMethod","instanceClass":null,"abstract":false,"id":53,"interface":false,"eClass":"EClass"},{"id":54,"eClass":"EGenericType"},{"id":55,"eClass":"EGenericType"},{"id":56,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"defaultValue","changeable":true,"resolveProxies":true,"lowerBound":0,"id":57,"derived":false},{"id":58,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Expression","instanceClass":null,"abstract":true,"id":59,"interface":false,"eClass":"EClass"},{"id":60,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ArrayTypeable","instanceClass":null,"abstract":true,"id":61,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ArrayDimension","instanceClass":null,"abstract":false,"id":62,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ArrayInitializer","instanceClass":null,"abstract":false,"id":63,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ArrayInitializationValue","instanceClass":null,"abstract":true,"id":64,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ArrayInstantiationBySize","instanceClass":null,"abstract":false,"id":65,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ArrayInstantiationByValues","instanceClass":null,"abstract":false,"id":66,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ArraySelector","instanceClass":null,"abstract":false,"id":67,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":1,"unique":true,"name":"getArrayDimension","lowerBound":0,"id":68,"many":false,"required":false,"eClass":"EOperation"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"arrayDimensionsBefore","changeable":true,"resolveProxies":true,"lowerBound":0,"id":69,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"arrayDimensionsAfter","changeable":true,"resolveProxies":true,"lowerBound":0,"id":70,"derived":false},{"id":71,"eClass":"EGenericType"},{"id":72,"eClass":"EGenericType"},{"id":73,"eClass":"EGenericType"},{"id":74,"eClass":"EGenericType"},{"id":75,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"initialValues","changeable":true,"resolveProxies":true,"lowerBound":0,"id":76,"derived":false},{"id":77,"eClass":"EGenericType"},{"id":78,"eClass":"EGenericType"},{"id":79,"eClass":"EGenericType"},{"id":80,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TypedElement","instanceClass":null,"abstract":true,"id":81,"interface":false,"eClass":"EClass"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"sizes","changeable":true,"resolveProxies":true,"lowerBound":0,"id":82,"derived":false},{"id":83,"eClass":"EGenericType"},{"id":84,"eClass":"EGenericType"},{"id":85,"eClass":"EGenericType"},{"id":86,"eClass":"EGenericType"},{"id":87,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"arrayInitializer","changeable":true,"resolveProxies":true,"lowerBound":0,"id":88,"derived":false},{"id":89,"eClass":"EGenericType"},{"id":90,"eClass":"EGenericType"},{"id":91,"eClass":"EGenericType"},{"id":92,"eClass":"EGenericType"},{"id":93,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"position","changeable":true,"resolveProxies":true,"lowerBound":0,"id":94,"derived":false},{"id":95,"eClass":"EGenericType"},{"id":96,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ConcreteClassifier","instanceClass":null,"abstract":true,"id":97,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Implementor","instanceClass":null,"abstract":true,"id":98,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Class","instanceClass":null,"abstract":false,"id":99,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Interface","instanceClass":null,"abstract":false,"id":100,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Enumeration","instanceClass":null,"abstract":false,"id":101,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Annotation","instanceClass":null,"abstract":false,"id":102,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnonymousClass","instanceClass":null,"abstract":false,"id":103,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Type","instanceClass":null,"abstract":true,"id":104,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ReferenceableElement","instanceClass":null,"abstract":true,"id":105,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllSuperClassifiers","lowerBound":0,"id":106,"many":true,"required":false,"eClass":"EOperation"},{"id":107,"eClass":"EGenericType"},{"id":108,"eClass":"EGenericType"},{"id":109,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TypeParametrizable","instanceClass":null,"abstract":true,"id":110,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"MemberContainer","instanceClass":null,"abstract":true,"id":111,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Member","instanceClass":null,"abstract":true,"id":112,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Statement","instanceClass":null,"abstract":true,"id":113,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnnotableAndModifiable","instanceClass":null,"abstract":true,"id":114,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getInnerClassifiers","lowerBound":0,"id":115,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllInnerClassifiers","lowerBound":0,"id":116,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getSuperTypeReferences","lowerBound":0,"id":117,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllMembers","lowerBound":0,"id":118,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":true,"unique":true,"name":"fullName","changeable":true,"lowerBound":0,"iD":false,"id":119,"derived":false},{"id":120,"eClass":"EGenericType"},{"id":121,"eClass":"EGenericType"},{"id":122,"eClass":"EGenericType"},{"id":123,"eClass":"EGenericType"},{"id":124,"eClass":"EGenericType"},{"id":125,"eClass":"EGenericType"},{"id":126,"eClass":"EGenericType"},{"id":127,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ClassifierReference","instanceClass":null,"abstract":false,"id":128,"interface":false,"eClass":"EClass"},{"id":129,"eClass":"EGenericType"},{"id":130,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"context","lowerBound":0,"id":131,"many":false,"required":false,"eClass":"EParameter"},{"id":132,"eClass":"EGenericType"},{"id":133,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"implements","changeable":true,"resolveProxies":true,"lowerBound":0,"id":134,"derived":false},{"id":135,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TypeReference","instanceClass":null,"abstract":true,"id":136,"interface":false,"eClass":"EClass"},{"id":137,"eClass":"EGenericType"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllSuperClassifiers","lowerBound":0,"id":138,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getSuperClass","lowerBound":0,"id":139,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"unWrapPrimitiveType","lowerBound":0,"id":140,"many":false,"required":false,"eClass":"EOperation"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"extends","changeable":true,"resolveProxies":true,"lowerBound":0,"id":141,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":true,"unique":true,"name":"defaultExtends","changeable":true,"resolveProxies":true,"lowerBound":0,"id":142,"derived":false},{"id":143,"eClass":"EGenericType"},{"id":144,"eClass":"EGenericType"},{"id":145,"eClass":"EGenericType"},{"id":146,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"PrimitiveType","instanceClass":null,"abstract":true,"id":147,"interface":false,"eClass":"EClass"},{"id":148,"eClass":"EGenericType"},{"id":149,"eClass":"EGenericType"},{"id":150,"eClass":"EGenericType"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllSuperClassifiers","lowerBound":0,"id":151,"many":true,"required":false,"eClass":"EOperation"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"extends","changeable":true,"resolveProxies":true,"lowerBound":0,"id":152,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":true,"unique":true,"name":"defaultExtends","changeable":true,"resolveProxies":true,"lowerBound":0,"id":153,"derived":false},{"id":154,"eClass":"EGenericType"},{"id":155,"eClass":"EGenericType"},{"id":156,"eClass":"EGenericType"},{"id":157,"eClass":"EGenericType"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllSuperClassifiers","lowerBound":0,"id":158,"many":true,"required":false,"eClass":"EOperation"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"constants","changeable":true,"resolveProxies":true,"lowerBound":0,"id":159,"derived":false},{"id":160,"eClass":"EGenericType"},{"id":161,"eClass":"EGenericType"},{"id":162,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"EnumConstant","instanceClass":null,"abstract":false,"id":163,"interface":false,"eClass":"EClass"},{"id":164,"eClass":"EGenericType"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllSuperClassifiers","lowerBound":0,"id":165,"many":true,"required":false,"eClass":"EOperation"},{"id":166,"eClass":"EGenericType"},{"id":167,"eClass":"EGenericType"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllSuperClassifiers","lowerBound":0,"id":168,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getSuperClassifier","lowerBound":0,"id":169,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllMembers","lowerBound":0,"id":170,"many":true,"required":false,"eClass":"EOperation"},{"id":171,"eClass":"EGenericType"},{"id":172,"eClass":"EGenericType"},{"id":173,"eClass":"EGenericType"},{"id":174,"eClass":"EGenericType"},{"id":175,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"context","lowerBound":0,"id":176,"many":false,"required":false,"eClass":"EParameter"},{"id":177,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"NamedElement","instanceClass":null,"abstract":true,"id":178,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":1,"unique":true,"name":"getConcreteClassifier","lowerBound":0,"id":179,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getConcreteClassifiers","lowerBound":0,"id":180,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getLibClass","lowerBound":0,"id":181,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getLibInterface","lowerBound":0,"id":182,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getClassClass","lowerBound":0,"id":183,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getObjectClass","lowerBound":0,"id":184,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getStringClass","lowerBound":0,"id":185,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getAnnotationInterface","lowerBound":0,"id":186,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getContainingAnnotationInstance","lowerBound":0,"id":187,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getContainingAnonymousClass","lowerBound":0,"id":188,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getContainingConcreteClassifier","lowerBound":0,"id":189,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getContainingCompilationUnit","lowerBound":0,"id":190,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getContainingPackageName","lowerBound":0,"id":191,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getParentConcreteClassifier","lowerBound":0,"id":192,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":false,"name":"comments","changeable":true,"lowerBound":0,"iD":false,"id":193,"derived":false},{"id":194,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":0,"id":195,"many":false,"required":false,"eClass":"EParameter"},{"id":196,"eClass":"EGenericType"},{"id":197,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"packageName","lowerBound":0,"id":198,"many":false,"required":false,"eClass":"EParameter"},{"ordered":true,"upperBound":1,"unique":true,"name":"classifierQuery","lowerBound":0,"id":199,"many":false,"required":false,"eClass":"EParameter"},{"id":200,"eClass":"EGenericType"},{"id":201,"eClass":"EGenericType"},{"id":202,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":0,"id":203,"many":false,"required":false,"eClass":"EParameter"},{"id":204,"eClass":"EGenericType"},{"id":205,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":0,"id":206,"many":false,"required":false,"eClass":"EParameter"},{"id":207,"eClass":"EGenericType"},{"id":208,"eClass":"EGenericType"},{"id":209,"eClass":"EGenericType"},{"id":210,"eClass":"EGenericType"},{"id":211,"eClass":"EGenericType"},{"id":212,"eClass":"EGenericType"},{"id":213,"eClass":"EGenericType"},{"id":214,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"CompilationUnit","instanceClass":null,"abstract":false,"id":215,"interface":false,"eClass":"EClass"},{"id":216,"eClass":"EGenericType"},{"id":217,"eClass":"EGenericType"},{"id":218,"eClass":"EGenericType"},{"id":219,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"name","changeable":true,"lowerBound":0,"iD":false,"id":220,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"name_PH","changeable":true,"resolveProxies":true,"lowerBound":0,"id":221,"derived":false},{"id":222,"eClass":"EGenericType"},{"id":223,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TPlaceholder","instanceClass":null,"abstract":false,"id":224,"interface":false,"eClass":"EClass"},{"id":225,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"getNamespacesAsString","lowerBound":0,"id":226,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getClassifierAtNamespaces","lowerBound":0,"id":227,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":false,"name":"namespaces","changeable":true,"lowerBound":0,"iD":false,"id":228,"derived":false},{"id":229,"eClass":"EGenericType"},{"id":230,"eClass":"EGenericType"},{"id":231,"eClass":"EGenericType"},{"id":232,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"JavaRoot","instanceClass":null,"abstract":true,"id":233,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Package","instanceClass":null,"abstract":false,"id":234,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"EmptyModel","instanceClass":null,"abstract":false,"id":235,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ImportingElement","instanceClass":null,"abstract":true,"id":236,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getClassifiersInSamePackage","lowerBound":0,"id":237,"many":true,"required":false,"eClass":"EOperation"},{"id":238,"eClass":"EGenericType"},{"id":239,"eClass":"EGenericType"},{"id":240,"eClass":"EGenericType"},{"id":241,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"getContainedClassifier","lowerBound":0,"id":242,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getClassifiersInSamePackage","lowerBound":0,"id":243,"many":true,"required":false,"eClass":"EOperation"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"classifiers","changeable":true,"resolveProxies":true,"lowerBound":0,"id":244,"derived":false},{"id":245,"eClass":"EGenericType"},{"id":246,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":0,"id":247,"many":false,"required":false,"eClass":"EParameter"},{"id":248,"eClass":"EGenericType"},{"id":249,"eClass":"EGenericType"},{"id":250,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"compilationUnits","changeable":true,"resolveProxies":true,"lowerBound":0,"id":251,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"subpackages","changeable":true,"resolveProxies":true,"lowerBound":0,"id":252,"derived":false},{"id":253,"eClass":"EGenericType"},{"id":254,"eClass":"EGenericType"},{"id":255,"eClass":"EGenericType"},{"id":256,"eClass":"EGenericType"},{"id":257,"eClass":"EGenericType"},{"id":258,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ExpressionList","instanceClass":null,"abstract":false,"id":259,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentExpression","instanceClass":null,"abstract":false,"id":260,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentExpressionChild","instanceClass":null,"abstract":true,"id":261,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ConditionalExpression","instanceClass":null,"abstract":false,"id":262,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ConditionalExpressionChild","instanceClass":null,"abstract":true,"id":263,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ConditionalOrExpression","instanceClass":null,"abstract":false,"id":264,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ConditionalOrExpressionChild","instanceClass":null,"abstract":true,"id":265,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ConditionalAndExpression","instanceClass":null,"abstract":false,"id":266,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ConditionalAndExpressionChild","instanceClass":null,"abstract":true,"id":267,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"InclusiveOrExpression","instanceClass":null,"abstract":false,"id":268,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"InclusiveOrExpressionChild","instanceClass":null,"abstract":true,"id":269,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ExclusiveOrExpression","instanceClass":null,"abstract":false,"id":270,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ExclusiveOrExpressionChild","instanceClass":null,"abstract":true,"id":271,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AndExpression","instanceClass":null,"abstract":false,"id":272,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AndExpressionChild","instanceClass":null,"abstract":true,"id":273,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"EqualityExpression","instanceClass":null,"abstract":false,"id":274,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"EqualityExpressionChild","instanceClass":null,"abstract":true,"id":275,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"InstanceOfExpression","instanceClass":null,"abstract":false,"id":276,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"InstanceOfExpressionChild","instanceClass":null,"abstract":true,"id":277,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"RelationExpression","instanceClass":null,"abstract":false,"id":278,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"RelationExpressionChild","instanceClass":null,"abstract":true,"id":279,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ShiftExpression","instanceClass":null,"abstract":false,"id":280,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ShiftExpressionChild","instanceClass":null,"abstract":true,"id":281,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AdditiveExpression","instanceClass":null,"abstract":false,"id":282,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AdditiveExpressionChild","instanceClass":null,"abstract":true,"id":283,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"MultiplicativeExpression","instanceClass":null,"abstract":false,"id":284,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"MultiplicativeExpressionChild","instanceClass":null,"abstract":true,"id":285,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"UnaryExpression","instanceClass":null,"abstract":false,"id":286,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"UnaryExpressionChild","instanceClass":null,"abstract":true,"id":287,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"UnaryModificationExpression","instanceClass":null,"abstract":true,"id":288,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"PrefixUnaryModificationExpression","instanceClass":null,"abstract":false,"id":289,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"SuffixUnaryModificationExpression","instanceClass":null,"abstract":false,"id":290,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"UnaryModificationExpressionChild","instanceClass":null,"abstract":true,"id":291,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"CastExpression","instanceClass":null,"abstract":false,"id":292,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"PrimaryExpression","instanceClass":null,"abstract":true,"id":293,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"NestedExpression","instanceClass":null,"abstract":false,"id":294,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ForLoopInitializer","instanceClass":null,"abstract":true,"id":295,"interface":false,"eClass":"EClass"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"expressions","changeable":true,"resolveProxies":true,"lowerBound":0,"id":296,"derived":false},{"id":297,"eClass":"EGenericType"},{"id":298,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"getType","lowerBound":0,"id":299,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getAlternativeType","lowerBound":0,"id":300,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getOneType","lowerBound":0,"id":301,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getArrayDimension","lowerBound":0,"id":302,"many":false,"required":false,"eClass":"EOperation"},{"id":303,"eClass":"EGenericType"},{"id":304,"eClass":"EGenericType"},{"id":305,"eClass":"EGenericType"},{"id":306,"eClass":"EGenericType"},{"id":307,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"alternative","lowerBound":0,"id":308,"many":false,"required":false,"eClass":"EParameter"},{"id":309,"eClass":"EGenericType"},{"id":310,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"child","changeable":true,"resolveProxies":true,"lowerBound":1,"id":311,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"assignmentOperator","changeable":true,"resolveProxies":true,"lowerBound":1,"id":312,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"value","changeable":true,"resolveProxies":true,"lowerBound":1,"id":313,"derived":false},{"id":314,"eClass":"EGenericType"},{"id":315,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentOperator","instanceClass":null,"abstract":true,"id":316,"interface":false,"eClass":"EClass"},{"id":317,"eClass":"EGenericType"},{"id":318,"eClass":"EGenericType"},{"id":319,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"child","changeable":true,"resolveProxies":true,"lowerBound":0,"id":320,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"expressionIf","changeable":true,"resolveProxies":true,"lowerBound":1,"id":321,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"expressionElse","changeable":true,"resolveProxies":true,"lowerBound":1,"id":322,"derived":false},{"id":323,"eClass":"EGenericType"},{"id":324,"eClass":"EGenericType"},{"id":325,"eClass":"EGenericType"},{"id":326,"eClass":"EGenericType"},{"id":327,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"children","changeable":true,"resolveProxies":true,"lowerBound":1,"id":328,"derived":false},{"id":329,"eClass":"EGenericType"},{"id":330,"eClass":"EGenericType"},{"id":331,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"children","changeable":true,"resolveProxies":true,"lowerBound":1,"id":332,"derived":false},{"id":333,"eClass":"EGenericType"},{"id":334,"eClass":"EGenericType"},{"id":335,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"children","changeable":true,"resolveProxies":true,"lowerBound":1,"id":336,"derived":false},{"id":337,"eClass":"EGenericType"},{"id":338,"eClass":"EGenericType"},{"id":339,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"children","changeable":true,"resolveProxies":true,"lowerBound":1,"id":340,"derived":false},{"id":341,"eClass":"EGenericType"},{"id":342,"eClass":"EGenericType"},{"id":343,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"children","changeable":true,"resolveProxies":true,"lowerBound":1,"id":344,"derived":false},{"id":345,"eClass":"EGenericType"},{"id":346,"eClass":"EGenericType"},{"id":347,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"equalityOperators","changeable":true,"resolveProxies":true,"lowerBound":1,"id":348,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"children","changeable":true,"resolveProxies":true,"lowerBound":1,"id":349,"derived":false},{"id":350,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"EqualityOperator","instanceClass":null,"abstract":true,"id":351,"interface":false,"eClass":"EClass"},{"id":352,"eClass":"EGenericType"},{"id":353,"eClass":"EGenericType"},{"id":354,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"child","changeable":true,"resolveProxies":true,"lowerBound":1,"id":355,"derived":false},{"id":356,"eClass":"EGenericType"},{"id":357,"eClass":"EGenericType"},{"id":358,"eClass":"EGenericType"},{"id":359,"eClass":"EGenericType"},{"id":360,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"children","changeable":true,"resolveProxies":true,"lowerBound":1,"id":361,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"relationOperators","changeable":true,"resolveProxies":true,"lowerBound":1,"id":362,"derived":false},{"id":363,"eClass":"EGenericType"},{"id":364,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"RelationOperator","instanceClass":null,"abstract":true,"id":365,"interface":false,"eClass":"EClass"},{"id":366,"eClass":"EGenericType"},{"id":367,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"children","changeable":true,"resolveProxies":true,"lowerBound":1,"id":368,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"shiftOperators","changeable":true,"resolveProxies":true,"lowerBound":1,"id":369,"derived":false},{"id":370,"eClass":"EGenericType"},{"id":371,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ShiftOperator","instanceClass":null,"abstract":true,"id":372,"interface":false,"eClass":"EClass"},{"id":373,"eClass":"EGenericType"},{"id":374,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"children","changeable":true,"resolveProxies":true,"lowerBound":1,"id":375,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"additiveOperators","changeable":true,"resolveProxies":true,"lowerBound":1,"id":376,"derived":false},{"id":377,"eClass":"EGenericType"},{"id":378,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AdditiveOperator","instanceClass":null,"abstract":true,"id":379,"interface":false,"eClass":"EClass"},{"id":380,"eClass":"EGenericType"},{"id":381,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"children","changeable":true,"resolveProxies":true,"lowerBound":1,"id":382,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"multiplicativeOperators","changeable":true,"resolveProxies":true,"lowerBound":1,"id":383,"derived":false},{"id":384,"eClass":"EGenericType"},{"id":385,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"MultiplicativeOperator","instanceClass":null,"abstract":true,"id":386,"interface":false,"eClass":"EClass"},{"id":387,"eClass":"EGenericType"},{"id":388,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"operators","changeable":true,"resolveProxies":true,"lowerBound":1,"id":389,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"child","changeable":true,"resolveProxies":true,"lowerBound":1,"id":390,"derived":false},{"id":391,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"UnaryOperator","instanceClass":null,"abstract":true,"id":392,"interface":false,"eClass":"EClass"},{"id":393,"eClass":"EGenericType"},{"id":394,"eClass":"EGenericType"},{"id":395,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"child","changeable":true,"resolveProxies":true,"lowerBound":1,"id":396,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"operator","changeable":true,"resolveProxies":true,"lowerBound":1,"id":397,"derived":false},{"id":398,"eClass":"EGenericType"},{"id":399,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"UnaryModificationOperator","instanceClass":null,"abstract":true,"id":400,"interface":false,"eClass":"EClass"},{"id":401,"eClass":"EGenericType"},{"id":402,"eClass":"EGenericType"},{"id":403,"eClass":"EGenericType"},{"id":404,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"child","changeable":true,"resolveProxies":true,"lowerBound":1,"id":405,"derived":false},{"id":406,"eClass":"EGenericType"},{"id":407,"eClass":"EGenericType"},{"id":408,"eClass":"EGenericType"},{"id":409,"eClass":"EGenericType"},{"id":410,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"expression","changeable":true,"resolveProxies":true,"lowerBound":1,"id":411,"derived":false},{"id":412,"eClass":"EGenericType"},{"id":413,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TypeArgument","instanceClass":null,"abstract":true,"id":414,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TypeArgumentable","instanceClass":null,"abstract":true,"id":415,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"CallTypeArgumentable","instanceClass":null,"abstract":true,"id":416,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ExtendsTypeArgument","instanceClass":null,"abstract":false,"id":417,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"QualifiedTypeArgument","instanceClass":null,"abstract":false,"id":418,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"SuperTypeArgument","instanceClass":null,"abstract":false,"id":419,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TypeParameter","instanceClass":null,"abstract":false,"id":420,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"UnknownTypeArgument","instanceClass":null,"abstract":false,"id":421,"interface":false,"eClass":"EClass"},{"id":422,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"typeArguments","changeable":true,"resolveProxies":true,"lowerBound":0,"id":423,"derived":false},{"id":424,"eClass":"EGenericType"},{"id":425,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"callTypeArguments","changeable":true,"resolveProxies":true,"lowerBound":0,"id":426,"derived":false},{"id":427,"eClass":"EGenericType"},{"id":428,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"typeParameters","changeable":true,"resolveProxies":true,"lowerBound":0,"id":429,"derived":false},{"id":430,"eClass":"EGenericType"},{"id":431,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"extendTypes","changeable":true,"resolveProxies":true,"lowerBound":1,"id":432,"derived":false},{"id":433,"eClass":"EGenericType"},{"id":434,"eClass":"EGenericType"},{"id":435,"eClass":"EGenericType"},{"id":436,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"superType","changeable":true,"resolveProxies":true,"lowerBound":1,"id":437,"derived":false},{"id":438,"eClass":"EGenericType"},{"id":439,"eClass":"EGenericType"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllSuperClassifiers","lowerBound":0,"id":440,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllMembers","lowerBound":0,"id":441,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getBoundType","lowerBound":0,"id":442,"many":false,"required":false,"eClass":"EOperation"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"extendTypes","changeable":true,"resolveProxies":true,"lowerBound":0,"id":443,"derived":false},{"id":444,"eClass":"EGenericType"},{"id":445,"eClass":"EGenericType"},{"id":446,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"context","lowerBound":0,"id":447,"many":false,"required":false,"eClass":"EParameter"},{"id":448,"eClass":"EGenericType"},{"id":449,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"typeReference","lowerBound":0,"id":450,"many":false,"required":false,"eClass":"EParameter"},{"ordered":true,"upperBound":1,"unique":true,"name":"reference","lowerBound":0,"id":451,"many":false,"required":false,"eClass":"EParameter"},{"id":452,"eClass":"EGenericType"},{"id":453,"eClass":"EGenericType"},{"id":454,"eClass":"EGenericType"},{"id":455,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Import","instanceClass":null,"abstract":true,"id":456,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"StaticImport","instanceClass":null,"abstract":true,"id":457,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ClassifierImport","instanceClass":null,"abstract":false,"id":458,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"PackageImport","instanceClass":null,"abstract":false,"id":459,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"StaticClassifierImport","instanceClass":null,"abstract":false,"id":460,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"StaticMemberImport","instanceClass":null,"abstract":false,"id":461,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":1,"unique":true,"name":"getImportedClassifier","lowerBound":0,"id":462,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getImportedClassifiers","lowerBound":0,"id":463,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getImportedMembers","lowerBound":0,"id":464,"many":true,"required":false,"eClass":"EOperation"},{"id":465,"eClass":"EGenericType"},{"id":466,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":0,"id":467,"many":false,"required":false,"eClass":"EParameter"},{"id":468,"eClass":"EGenericType"},{"id":469,"eClass":"EGenericType"},{"id":470,"eClass":"EGenericType"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getDefaultImports","lowerBound":0,"id":471,"many":true,"required":false,"eClass":"EOperation"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"imports","changeable":true,"resolveProxies":true,"lowerBound":0,"id":472,"derived":false},{"id":473,"eClass":"EGenericType"},{"id":474,"eClass":"EGenericType"},{"id":475,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"static","changeable":true,"resolveProxies":true,"lowerBound":1,"id":476,"derived":false},{"id":477,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Static","instanceClass":null,"abstract":false,"id":478,"interface":false,"eClass":"EClass"},{"id":479,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"classifier","changeable":true,"resolveProxies":true,"lowerBound":1,"id":480,"derived":false},{"id":481,"eClass":"EGenericType"},{"id":482,"eClass":"EGenericType"},{"id":483,"eClass":"EGenericType"},{"id":484,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"staticMembers","changeable":true,"resolveProxies":true,"lowerBound":1,"id":485,"derived":false},{"id":486,"eClass":"EGenericType"},{"id":487,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Initializable","instanceClass":null,"abstract":true,"id":488,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Instantiation","instanceClass":null,"abstract":true,"id":489,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"NewConstructorCall","instanceClass":null,"abstract":false,"id":490,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ExplicitConstructorCall","instanceClass":null,"abstract":false,"id":491,"interface":false,"eClass":"EClass"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"initialValue","changeable":true,"resolveProxies":true,"lowerBound":0,"id":492,"derived":false},{"id":493,"eClass":"EGenericType"},{"id":494,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Argumentable","instanceClass":null,"abstract":true,"id":495,"interface":false,"eClass":"EClass"},{"id":496,"eClass":"EGenericType"},{"id":497,"eClass":"EGenericType"},{"id":498,"eClass":"EGenericType"},{"id":499,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"anonymousClass","changeable":true,"resolveProxies":true,"lowerBound":0,"id":500,"derived":false},{"id":501,"eClass":"EGenericType"},{"id":502,"eClass":"EGenericType"},{"id":503,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"callTarget","changeable":true,"resolveProxies":true,"lowerBound":0,"id":504,"derived":false},{"id":505,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Self","instanceClass":null,"abstract":true,"id":506,"interface":false,"eClass":"EClass"},{"id":507,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Literal","instanceClass":null,"abstract":true,"id":508,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"BooleanLiteral","instanceClass":null,"abstract":false,"id":509,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"CharacterLiteral","instanceClass":null,"abstract":false,"id":510,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"FloatLiteral","instanceClass":null,"abstract":true,"id":511,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DecimalFloatLiteral","instanceClass":null,"abstract":false,"id":512,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"HexFloatLiteral","instanceClass":null,"abstract":false,"id":513,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DoubleLiteral","instanceClass":null,"abstract":true,"id":514,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DecimalDoubleLiteral","instanceClass":null,"abstract":false,"id":515,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"HexDoubleLiteral","instanceClass":null,"abstract":false,"id":516,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"IntegerLiteral","instanceClass":null,"abstract":true,"id":517,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DecimalIntegerLiteral","instanceClass":null,"abstract":false,"id":518,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"HexIntegerLiteral","instanceClass":null,"abstract":false,"id":519,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"OctalIntegerLiteral","instanceClass":null,"abstract":false,"id":520,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LongLiteral","instanceClass":null,"abstract":true,"id":521,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DecimalLongLiteral","instanceClass":null,"abstract":false,"id":522,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"HexLongLiteral","instanceClass":null,"abstract":false,"id":523,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"OctalLongLiteral","instanceClass":null,"abstract":false,"id":524,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"NullLiteral","instanceClass":null,"abstract":false,"id":525,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Super","instanceClass":null,"abstract":false,"id":526,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"This","instanceClass":null,"abstract":false,"id":527,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":1,"unique":true,"name":"getOneType","lowerBound":0,"id":528,"many":false,"required":false,"eClass":"EOperation"},{"id":529,"eClass":"EGenericType"},{"id":530,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"alternative","lowerBound":0,"id":531,"many":false,"required":false,"eClass":"EParameter"},{"id":532,"eClass":"EGenericType"},{"id":533,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":false,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"value","changeable":true,"lowerBound":1,"iD":false,"id":534,"derived":false},{"id":535,"eClass":"EGenericType"},{"id":536,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":"\u0000","volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"value","changeable":true,"lowerBound":1,"iD":false,"id":537,"derived":false},{"id":538,"eClass":"EGenericType"},{"id":539,"eClass":"EGenericType"},{"id":540,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":0.0,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"decimalValue","changeable":true,"lowerBound":1,"iD":false,"id":541,"derived":false},{"id":542,"eClass":"EGenericType"},{"id":543,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":0.0,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"hexValue","changeable":true,"lowerBound":1,"iD":false,"id":544,"derived":false},{"id":545,"eClass":"EGenericType"},{"id":546,"eClass":"EGenericType"},{"id":547,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":0.0,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"decimalValue","changeable":true,"lowerBound":1,"iD":false,"id":548,"derived":false},{"id":549,"eClass":"EGenericType"},{"id":550,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":0.0,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"hexValue","changeable":true,"lowerBound":1,"iD":false,"id":551,"derived":false},{"id":552,"eClass":"EGenericType"},{"id":553,"eClass":"EGenericType"},{"id":554,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"decimalValue","changeable":true,"lowerBound":1,"iD":false,"id":555,"derived":false},{"id":556,"eClass":"EGenericType"},{"id":557,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"hexValue","changeable":true,"lowerBound":1,"iD":false,"id":558,"derived":false},{"id":559,"eClass":"EGenericType"},{"id":560,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"octalValue","changeable":true,"lowerBound":1,"iD":false,"id":561,"derived":false},{"id":562,"eClass":"EGenericType"},{"id":563,"eClass":"EGenericType"},{"id":564,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"decimalValue","changeable":true,"lowerBound":1,"iD":false,"id":565,"derived":false},{"id":566,"eClass":"EGenericType"},{"id":567,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"hexValue","changeable":true,"lowerBound":1,"iD":false,"id":568,"derived":false},{"id":569,"eClass":"EGenericType"},{"id":570,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"octalValue","changeable":true,"lowerBound":1,"iD":false,"id":571,"derived":false},{"id":572,"eClass":"EGenericType"},{"id":573,"eClass":"EGenericType"},{"id":574,"eClass":"EGenericType"},{"id":575,"eClass":"EGenericType"},{"id":576,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ExceptionThrower","instanceClass":null,"abstract":true,"id":577,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AdditionalField","instanceClass":null,"abstract":false,"id":578,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Constructor","instanceClass":null,"abstract":false,"id":579,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"EmptyMember","instanceClass":null,"abstract":false,"id":580,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Field","instanceClass":null,"abstract":false,"id":581,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Method","instanceClass":null,"abstract":true,"id":582,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ClassMethod","instanceClass":null,"abstract":false,"id":583,"interface":false,"eClass":"EClass"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"exceptions","changeable":true,"resolveProxies":true,"lowerBound":0,"id":584,"derived":false},{"id":585,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"NamespaceClassifierReference","instanceClass":null,"abstract":false,"id":586,"interface":false,"eClass":"EClass"},{"id":587,"eClass":"EGenericType"},{"id":588,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"getContainedClassifier","lowerBound":0,"id":589,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getContainedField","lowerBound":0,"id":590,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getContainedMethod","lowerBound":0,"id":591,"many":false,"required":false,"eClass":"EOperation"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"members","changeable":true,"resolveProxies":true,"lowerBound":0,"id":592,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":true,"unique":true,"name":"defaultMembers","changeable":true,"resolveProxies":true,"lowerBound":0,"id":593,"derived":false},{"id":594,"eClass":"EGenericType"},{"id":595,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":0,"id":596,"many":false,"required":false,"eClass":"EParameter"},{"id":597,"eClass":"EGenericType"},{"id":598,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":0,"id":599,"many":false,"required":false,"eClass":"EParameter"},{"id":600,"eClass":"EGenericType"},{"id":601,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":0,"id":602,"many":false,"required":false,"eClass":"EParameter"},{"id":603,"eClass":"EGenericType"},{"id":604,"eClass":"EGenericType"},{"id":605,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"getArrayDimension","lowerBound":0,"id":606,"many":false,"required":false,"eClass":"EOperation"},{"id":607,"eClass":"EGenericType"},{"id":608,"eClass":"EGenericType"},{"id":609,"eClass":"EGenericType"},{"id":610,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"StatementListContainer","instanceClass":null,"abstract":true,"id":611,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Parametrizable","instanceClass":null,"abstract":true,"id":612,"interface":false,"eClass":"EClass"},{"id":613,"eClass":"EGenericType"},{"id":614,"eClass":"EGenericType"},{"id":615,"eClass":"EGenericType"},{"id":616,"eClass":"EGenericType"},{"id":617,"eClass":"EGenericType"},{"id":618,"eClass":"EGenericType"},{"id":619,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Variable","instanceClass":null,"abstract":true,"id":620,"interface":false,"eClass":"EClass"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"additionalFields","changeable":true,"resolveProxies":true,"lowerBound":0,"id":621,"derived":false},{"id":622,"eClass":"EGenericType"},{"id":623,"eClass":"EGenericType"},{"id":624,"eClass":"EGenericType"},{"id":625,"eClass":"EGenericType"},{"id":626,"eClass":"EGenericType"},{"id":627,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"isMethodForCall","lowerBound":0,"id":628,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"isSomeMethodForCall","lowerBound":0,"id":629,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"isBetterMethodForCall","lowerBound":0,"id":630,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getArrayDimension","lowerBound":0,"id":631,"many":false,"required":false,"eClass":"EOperation"},{"id":632,"eClass":"EGenericType"},{"id":633,"eClass":"EGenericType"},{"id":634,"eClass":"EGenericType"},{"id":635,"eClass":"EGenericType"},{"id":636,"eClass":"EGenericType"},{"id":637,"eClass":"EGenericType"},{"id":638,"eClass":"EGenericType"},{"id":639,"eClass":"EGenericType"},{"id":640,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"methodCall","lowerBound":0,"id":641,"many":false,"required":false,"eClass":"EParameter"},{"ordered":true,"upperBound":1,"unique":true,"name":"needsPerfectMatch","lowerBound":0,"id":642,"many":false,"required":false,"eClass":"EParameter"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"MethodCall","instanceClass":null,"abstract":false,"id":643,"interface":false,"eClass":"EClass"},{"id":644,"eClass":"EGenericType"},{"id":645,"eClass":"EGenericType"},{"id":646,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"methodCall","lowerBound":0,"id":647,"many":false,"required":false,"eClass":"EParameter"},{"id":648,"eClass":"EGenericType"},{"id":649,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"otherMethod","lowerBound":0,"id":650,"many":false,"required":false,"eClass":"EParameter"},{"ordered":true,"upperBound":1,"unique":true,"name":"methodCall","lowerBound":0,"id":651,"many":false,"required":false,"eClass":"EParameter"},{"id":652,"eClass":"EGenericType"},{"id":653,"eClass":"EGenericType"},{"id":654,"eClass":"EGenericType"},{"id":655,"eClass":"EGenericType"},{"id":656,"eClass":"EGenericType"},{"id":657,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"anonymousClass","changeable":true,"resolveProxies":true,"lowerBound":0,"id":658,"derived":false},{"id":659,"eClass":"EGenericType"},{"id":660,"eClass":"EGenericType"},{"id":661,"eClass":"EGenericType"},{"id":662,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Modifier","instanceClass":null,"abstract":true,"id":663,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Modifiable","instanceClass":null,"abstract":true,"id":664,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Abstract","instanceClass":null,"abstract":false,"id":665,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Final","instanceClass":null,"abstract":false,"id":666,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Native","instanceClass":null,"abstract":false,"id":667,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Protected","instanceClass":null,"abstract":false,"id":668,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Public","instanceClass":null,"abstract":false,"id":669,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Private","instanceClass":null,"abstract":false,"id":670,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Strictfp","instanceClass":null,"abstract":false,"id":671,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Synchronized","instanceClass":null,"abstract":false,"id":672,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Transient","instanceClass":null,"abstract":false,"id":673,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Volatile","instanceClass":null,"abstract":false,"id":674,"interface":false,"eClass":"EClass"},{"id":675,"eClass":"EGenericType"},{"id":676,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"isHidden","lowerBound":0,"id":677,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"isStatic","lowerBound":0,"id":678,"many":false,"required":false,"eClass":"EOperation"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"annotationsAndModifiers","changeable":true,"resolveProxies":true,"lowerBound":0,"id":679,"derived":false},{"id":680,"eClass":"EGenericType"},{"id":681,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"context","lowerBound":0,"id":682,"many":false,"required":false,"eClass":"EParameter"},{"id":683,"eClass":"EGenericType"},{"id":684,"eClass":"EGenericType"},{"id":685,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"modifiers","changeable":true,"resolveProxies":true,"lowerBound":0,"id":686,"derived":false},{"id":687,"eClass":"EGenericType"},{"id":688,"eClass":"EGenericType"},{"id":689,"eClass":"EGenericType"},{"id":690,"eClass":"EGenericType"},{"id":691,"eClass":"EGenericType"},{"id":692,"eClass":"EGenericType"},{"id":693,"eClass":"EGenericType"},{"id":694,"eClass":"EGenericType"},{"id":695,"eClass":"EGenericType"},{"id":696,"eClass":"EGenericType"},{"id":697,"eClass":"EGenericType"},{"id":698,"eClass":"EGenericType"},{"id":699,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Operator","instanceClass":null,"abstract":true,"id":700,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Assignment","instanceClass":null,"abstract":false,"id":701,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentAnd","instanceClass":null,"abstract":false,"id":702,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentDivision","instanceClass":null,"abstract":false,"id":703,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentExclusiveOr","instanceClass":null,"abstract":false,"id":704,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentMinus","instanceClass":null,"abstract":false,"id":705,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentModulo","instanceClass":null,"abstract":false,"id":706,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentMultiplication","instanceClass":null,"abstract":false,"id":707,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentLeftShift","instanceClass":null,"abstract":false,"id":708,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentOr","instanceClass":null,"abstract":false,"id":709,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentPlus","instanceClass":null,"abstract":false,"id":710,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentRightShift","instanceClass":null,"abstract":false,"id":711,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentUnsignedRightShift","instanceClass":null,"abstract":false,"id":712,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Equal","instanceClass":null,"abstract":false,"id":713,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"NotEqual","instanceClass":null,"abstract":false,"id":714,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"GreaterThan","instanceClass":null,"abstract":false,"id":715,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"GreaterThanOrEqual","instanceClass":null,"abstract":false,"id":716,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LessThan","instanceClass":null,"abstract":false,"id":717,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LessThanOrEqual","instanceClass":null,"abstract":false,"id":718,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Addition","instanceClass":null,"abstract":false,"id":719,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Subtraction","instanceClass":null,"abstract":false,"id":720,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Division","instanceClass":null,"abstract":false,"id":721,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Multiplication","instanceClass":null,"abstract":false,"id":722,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Remainder","instanceClass":null,"abstract":false,"id":723,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Complement","instanceClass":null,"abstract":false,"id":724,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"MinusMinus","instanceClass":null,"abstract":false,"id":725,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Negate","instanceClass":null,"abstract":false,"id":726,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"PlusPlus","instanceClass":null,"abstract":false,"id":727,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LeftShift","instanceClass":null,"abstract":false,"id":728,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"RightShift","instanceClass":null,"abstract":false,"id":729,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"UnsignedRightShift","instanceClass":null,"abstract":false,"id":730,"interface":false,"eClass":"EClass"},{"id":731,"eClass":"EGenericType"},{"id":732,"eClass":"EGenericType"},{"id":733,"eClass":"EGenericType"},{"id":734,"eClass":"EGenericType"},{"id":735,"eClass":"EGenericType"},{"id":736,"eClass":"EGenericType"},{"id":737,"eClass":"EGenericType"},{"id":738,"eClass":"EGenericType"},{"id":739,"eClass":"EGenericType"},{"id":740,"eClass":"EGenericType"},{"id":741,"eClass":"EGenericType"},{"id":742,"eClass":"EGenericType"},{"id":743,"eClass":"EGenericType"},{"id":744,"eClass":"EGenericType"},{"id":745,"eClass":"EGenericType"},{"id":746,"eClass":"EGenericType"},{"id":747,"eClass":"EGenericType"},{"id":748,"eClass":"EGenericType"},{"id":749,"eClass":"EGenericType"},{"id":750,"eClass":"EGenericType"},{"id":751,"eClass":"EGenericType"},{"id":752,"eClass":"EGenericType"},{"id":753,"eClass":"EGenericType"},{"id":754,"eClass":"EGenericType"},{"id":755,"eClass":"EGenericType"},{"id":756,"eClass":"EGenericType"},{"id":757,"eClass":"EGenericType"},{"id":758,"eClass":"EGenericType"},{"id":759,"eClass":"EGenericType"},{"id":760,"eClass":"EGenericType"},{"id":761,"eClass":"EGenericType"},{"id":762,"eClass":"EGenericType"},{"id":763,"eClass":"EGenericType"},{"id":764,"eClass":"EGenericType"},{"id":765,"eClass":"EGenericType"},{"id":766,"eClass":"EGenericType"},{"id":767,"eClass":"EGenericType"},{"id":768,"eClass":"EGenericType"},{"id":769,"eClass":"EGenericType"},{"id":770,"eClass":"EGenericType"},{"id":771,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Parameter","instanceClass":null,"abstract":true,"id":772,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"OrdinaryParameter","instanceClass":null,"abstract":false,"id":773,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"VariableLengthParameter","instanceClass":null,"abstract":false,"id":774,"interface":false,"eClass":"EClass"},{"id":775,"eClass":"EGenericType"},{"id":776,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"parameters","changeable":true,"resolveProxies":true,"lowerBound":0,"id":777,"derived":false},{"id":778,"eClass":"EGenericType"},{"id":779,"eClass":"EGenericType"},{"id":780,"eClass":"EGenericType"},{"id":781,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ElementReference","instanceClass":null,"abstract":true,"id":782,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"IdentifierReference","instanceClass":null,"abstract":false,"id":783,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ReflectiveClassReference","instanceClass":null,"abstract":false,"id":784,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"PrimitiveTypeReference","instanceClass":null,"abstract":false,"id":785,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"StringReference","instanceClass":null,"abstract":false,"id":786,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"SelfReference","instanceClass":null,"abstract":false,"id":787,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":1,"unique":true,"name":"getReferencedType","lowerBound":0,"id":788,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getPrevious","lowerBound":0,"id":789,"many":false,"required":false,"eClass":"EOperation"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"next","changeable":true,"resolveProxies":true,"lowerBound":0,"id":790,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"arraySelectors","changeable":true,"resolveProxies":true,"lowerBound":0,"id":791,"derived":false},{"id":792,"eClass":"EGenericType"},{"id":793,"eClass":"EGenericType"},{"id":794,"eClass":"EGenericType"},{"id":795,"eClass":"EGenericType"},{"id":796,"eClass":"EGenericType"},{"id":797,"eClass":"EGenericType"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getArgumentTypes","lowerBound":0,"id":798,"many":true,"required":false,"eClass":"EOperation"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"arguments","changeable":true,"resolveProxies":true,"lowerBound":0,"id":799,"derived":false},{"id":800,"eClass":"EGenericType"},{"id":801,"eClass":"EGenericType"},{"id":802,"eClass":"EGenericType"},{"id":803,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"target","changeable":true,"resolveProxies":true,"lowerBound":0,"id":804,"derived":false},{"id":805,"eClass":"EGenericType"},{"id":806,"eClass":"EGenericType"},{"id":807,"eClass":"EGenericType"},{"id":808,"eClass":"EGenericType"},{"id":809,"eClass":"EGenericType"},{"id":810,"eClass":"EGenericType"},{"id":811,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"primitiveType","changeable":true,"resolveProxies":true,"lowerBound":1,"id":812,"derived":false},{"id":813,"eClass":"EGenericType"},{"id":814,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"value","changeable":true,"lowerBound":0,"iD":false,"id":815,"derived":false},{"id":816,"eClass":"EGenericType"},{"id":817,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"self","changeable":true,"resolveProxies":true,"lowerBound":0,"id":818,"derived":false},{"id":819,"eClass":"EGenericType"},{"id":820,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"StatementContainer","instanceClass":null,"abstract":true,"id":821,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Conditional","instanceClass":null,"abstract":true,"id":822,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"SwitchCase","instanceClass":null,"abstract":true,"id":823,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Assert","instanceClass":null,"abstract":false,"id":824,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Break","instanceClass":null,"abstract":false,"id":825,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Block","instanceClass":null,"abstract":false,"id":826,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"CatchBlock","instanceClass":null,"abstract":false,"id":827,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Condition","instanceClass":null,"abstract":false,"id":828,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Continue","instanceClass":null,"abstract":false,"id":829,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DefaultSwitchCase","instanceClass":null,"abstract":false,"id":830,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DoWhileLoop","instanceClass":null,"abstract":false,"id":831,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"EmptyStatement","instanceClass":null,"abstract":false,"id":832,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ExpressionStatement","instanceClass":null,"abstract":false,"id":833,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ForLoop","instanceClass":null,"abstract":false,"id":834,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ForEachLoop","instanceClass":null,"abstract":false,"id":835,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Jump","instanceClass":null,"abstract":true,"id":836,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"JumpLabel","instanceClass":null,"abstract":false,"id":837,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LocalVariableStatement","instanceClass":null,"abstract":false,"id":838,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"NormalSwitchCase","instanceClass":null,"abstract":false,"id":839,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Return","instanceClass":null,"abstract":false,"id":840,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Switch","instanceClass":null,"abstract":false,"id":841,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"SynchronizedBlock","instanceClass":null,"abstract":false,"id":842,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Throw","instanceClass":null,"abstract":false,"id":843,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TryBlock","instanceClass":null,"abstract":false,"id":844,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"WhileLoop","instanceClass":null,"abstract":false,"id":845,"interface":false,"eClass":"EClass"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"statement","changeable":true,"resolveProxies":true,"lowerBound":1,"id":846,"derived":false},{"id":847,"eClass":"EGenericType"},{"id":848,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"statements","changeable":true,"resolveProxies":true,"lowerBound":0,"id":849,"derived":false},{"id":850,"eClass":"EGenericType"},{"id":851,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"condition","changeable":true,"resolveProxies":true,"lowerBound":1,"id":852,"derived":false},{"id":853,"eClass":"EGenericType"},{"id":854,"eClass":"EGenericType"},{"id":855,"eClass":"EGenericType"},{"id":856,"eClass":"EGenericType"},{"id":857,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"errorMessage","changeable":true,"resolveProxies":true,"lowerBound":0,"id":858,"derived":false},{"id":859,"eClass":"EGenericType"},{"id":860,"eClass":"EGenericType"},{"id":861,"eClass":"EGenericType"},{"id":862,"eClass":"EGenericType"},{"id":863,"eClass":"EGenericType"},{"id":864,"eClass":"EGenericType"},{"id":865,"eClass":"EGenericType"},{"id":866,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"parameter","changeable":true,"resolveProxies":true,"lowerBound":1,"id":867,"derived":false},{"id":868,"eClass":"EGenericType"},{"id":869,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"elseStatement","changeable":true,"resolveProxies":true,"lowerBound":0,"id":870,"derived":false},{"id":871,"eClass":"EGenericType"},{"id":872,"eClass":"EGenericType"},{"id":873,"eClass":"EGenericType"},{"id":874,"eClass":"EGenericType"},{"id":875,"eClass":"EGenericType"},{"id":876,"eClass":"EGenericType"},{"id":877,"eClass":"EGenericType"},{"id":878,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"expression","changeable":true,"resolveProxies":true,"lowerBound":1,"id":879,"derived":false},{"id":880,"eClass":"EGenericType"},{"id":881,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"init","changeable":true,"resolveProxies":true,"lowerBound":0,"id":882,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"updates","changeable":true,"resolveProxies":true,"lowerBound":0,"id":883,"derived":false},{"id":884,"eClass":"EGenericType"},{"id":885,"eClass":"EGenericType"},{"id":886,"eClass":"EGenericType"},{"id":887,"eClass":"EGenericType"},{"id":888,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"next","changeable":true,"resolveProxies":true,"lowerBound":0,"id":889,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"collection","changeable":true,"resolveProxies":true,"lowerBound":0,"id":890,"derived":false},{"id":891,"eClass":"EGenericType"},{"id":892,"eClass":"EGenericType"},{"id":893,"eClass":"EGenericType"},{"id":894,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"target","changeable":true,"resolveProxies":true,"lowerBound":0,"id":895,"derived":false},{"id":896,"eClass":"EGenericType"},{"id":897,"eClass":"EGenericType"},{"id":898,"eClass":"EGenericType"},{"id":899,"eClass":"EGenericType"},{"id":900,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"variable","changeable":true,"resolveProxies":true,"lowerBound":0,"id":901,"derived":false},{"id":902,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LocalVariable","instanceClass":null,"abstract":false,"id":903,"interface":false,"eClass":"EClass"},{"id":904,"eClass":"EGenericType"},{"id":905,"eClass":"EGenericType"},{"id":906,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"returnValue","changeable":true,"resolveProxies":true,"lowerBound":0,"id":907,"derived":false},{"id":908,"eClass":"EGenericType"},{"id":909,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"cases","changeable":true,"resolveProxies":true,"lowerBound":0,"id":910,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"variable","changeable":true,"resolveProxies":true,"lowerBound":0,"id":911,"derived":false},{"id":912,"eClass":"EGenericType"},{"id":913,"eClass":"EGenericType"},{"id":914,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"lockProvider","changeable":true,"resolveProxies":true,"lowerBound":0,"id":915,"derived":false},{"id":916,"eClass":"EGenericType"},{"id":917,"eClass":"EGenericType"},{"id":918,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"throwable","changeable":true,"resolveProxies":true,"lowerBound":1,"id":919,"derived":false},{"id":920,"eClass":"EGenericType"},{"id":921,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"catcheBlocks","changeable":true,"resolveProxies":true,"lowerBound":0,"id":922,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"finallyBlock","changeable":true,"resolveProxies":true,"lowerBound":0,"id":923,"derived":false},{"id":924,"eClass":"EGenericType"},{"id":925,"eClass":"EGenericType"},{"id":926,"eClass":"EGenericType"},{"id":927,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"condition","changeable":true,"resolveProxies":true,"lowerBound":1,"id":928,"derived":false},{"id":929,"eClass":"EGenericType"},{"id":930,"eClass":"EGenericType"},{"id":931,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Boolean","instanceClass":null,"abstract":false,"id":932,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Byte","instanceClass":null,"abstract":false,"id":933,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Char","instanceClass":null,"abstract":false,"id":934,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Double","instanceClass":null,"abstract":false,"id":935,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Float","instanceClass":null,"abstract":false,"id":936,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Int","instanceClass":null,"abstract":false,"id":937,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Long","instanceClass":null,"abstract":false,"id":938,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Short","instanceClass":null,"abstract":false,"id":939,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Void","instanceClass":null,"abstract":false,"id":940,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":1,"unique":true,"name":"equalsType","lowerBound":0,"id":941,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"isSuperType","lowerBound":0,"id":942,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllMembers","lowerBound":0,"id":943,"many":true,"required":false,"eClass":"EOperation"},{"id":944,"eClass":"EGenericType"},{"id":945,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"arrayDimension","lowerBound":0,"id":946,"many":false,"required":false,"eClass":"EParameter"},{"ordered":true,"upperBound":1,"unique":true,"name":"otherType","lowerBound":0,"id":947,"many":false,"required":false,"eClass":"EParameter"},{"ordered":true,"upperBound":1,"unique":true,"name":"otherArrayDimension","lowerBound":0,"id":948,"many":false,"required":false,"eClass":"EParameter"},{"id":949,"eClass":"EGenericType"},{"id":950,"eClass":"EGenericType"},{"id":951,"eClass":"EGenericType"},{"id":952,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"arrayDimension","lowerBound":0,"id":953,"many":false,"required":false,"eClass":"EParameter"},{"ordered":true,"upperBound":1,"unique":true,"name":"otherType","lowerBound":0,"id":954,"many":false,"required":false,"eClass":"EParameter"},{"ordered":true,"upperBound":1,"unique":true,"name":"otherArrayType","lowerBound":0,"id":955,"many":false,"required":false,"eClass":"EParameter"},{"id":956,"eClass":"EGenericType"},{"id":957,"eClass":"EGenericType"},{"id":958,"eClass":"EGenericType"},{"id":959,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"context","lowerBound":0,"id":960,"many":false,"required":false,"eClass":"EParameter"},{"id":961,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"typeReference","changeable":true,"resolveProxies":true,"lowerBound":0,"id":962,"derived":false},{"id":963,"eClass":"EGenericType"},{"id":964,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"getTarget","lowerBound":0,"id":965,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getBoundTarget","lowerBound":0,"id":966,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getPureClassifierReference","lowerBound":0,"id":967,"many":false,"required":false,"eClass":"EOperation"},{"id":968,"eClass":"EGenericType"},{"id":969,"eClass":"EGenericType"},{"id":970,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"reference","lowerBound":0,"id":971,"many":false,"required":false,"eClass":"EParameter"},{"id":972,"eClass":"EGenericType"},{"id":973,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":false,"unsettable":false,"transient":false,"unique":true,"name":"target","changeable":true,"resolveProxies":true,"lowerBound":1,"id":974,"derived":false},{"id":975,"eClass":"EGenericType"},{"id":976,"eClass":"EGenericType"},{"id":977,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"classifierReferences","changeable":true,"resolveProxies":true,"lowerBound":1,"id":978,"derived":false},{"id":979,"eClass":"EGenericType"},{"id":980,"eClass":"EGenericType"},{"id":981,"eClass":"EGenericType"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllMembers","lowerBound":0,"id":982,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"wrapPrimitiveType","lowerBound":0,"id":983,"many":false,"required":false,"eClass":"EOperation"},{"id":984,"eClass":"EGenericType"},{"id":985,"eClass":"EGenericType"},{"id":986,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"context","lowerBound":0,"id":987,"many":false,"required":false,"eClass":"EParameter"},{"id":988,"eClass":"EGenericType"},{"id":989,"eClass":"EGenericType"},{"id":990,"eClass":"EGenericType"},{"id":991,"eClass":"EGenericType"},{"id":992,"eClass":"EGenericType"},{"id":993,"eClass":"EGenericType"},{"id":994,"eClass":"EGenericType"},{"id":995,"eClass":"EGenericType"},{"id":996,"eClass":"EGenericType"},{"id":997,"eClass":"EGenericType"},{"id":998,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AdditionalLocalVariable","instanceClass":null,"abstract":false,"id":999,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":1,"unique":true,"name":"getArrayDimension","lowerBound":0,"id":1000,"many":false,"required":false,"eClass":"EOperation"},{"id":1001,"eClass":"EGenericType"},{"id":1002,"eClass":"EGenericType"},{"id":1003,"eClass":"EGenericType"},{"id":1004,"eClass":"EGenericType"},{"id":1005,"eClass":"EGenericType"},{"id":1006,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"additionalLocalVariables","changeable":true,"resolveProxies":true,"lowerBound":0,"id":1007,"derived":false},{"id":1008,"eClass":"EGenericType"},{"id":1009,"eClass":"EGenericType"},{"id":1010,"eClass":"EGenericType"},{"id":1011,"eClass":"EGenericType"},{"id":1012,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"getArrayDimension","lowerBound":0,"id":1013,"many":false,"required":false,"eClass":"EOperation"},{"id":1014,"eClass":"EGenericType"},{"id":1015,"eClass":"EGenericType"},{"id":1016,"eClass":"EGenericType"},{"id":1017,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TIf","instanceClass":null,"abstract":true,"id":1018,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TFor","instanceClass":null,"abstract":true,"id":1019,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TForVariable","instanceClass":null,"abstract":false,"id":1020,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Template","instanceClass":null,"abstract":false,"id":1021,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TemplateHeader","instanceClass":null,"abstract":false,"id":1022,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TModelImport","instanceClass":null,"abstract":false,"id":1023,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TMethodCall","instanceClass":null,"abstract":false,"id":1024,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TAbstractMethodStatement","instanceClass":null,"abstract":false,"id":1025,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TFor_MemberContainer","instanceClass":null,"abstract":false,"id":1026,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TFor_StatementListContainer","instanceClass":null,"abstract":false,"id":1027,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TIf_MemberContainer","instanceClass":null,"abstract":false,"id":1028,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TIf_StatementListContainer","instanceClass":null,"abstract":false,"id":1029,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TPlaceholder_PrimaryExpression","instanceClass":null,"abstract":false,"id":1030,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TUnaryOperator","instanceClass":null,"abstract":true,"id":1031,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TUnaryOperatorNOT","instanceClass":null,"abstract":false,"id":1032,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TMethodStatementImpl","instanceClass":null,"abstract":false,"id":1033,"interface":false,"eClass":"EClass"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"condition","changeable":true,"resolveProxies":true,"lowerBound":1,"id":1034,"derived":false},{"id":1035,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"count","changeable":true,"resolveProxies":true,"lowerBound":1,"id":1036,"derived":false},{"id":1037,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"name","changeable":true,"lowerBound":1,"iD":false,"id":1038,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"setToBeIterated","changeable":true,"resolveProxies":true,"lowerBound":1,"id":1039,"derived":false},{"id":1040,"eClass":"EGenericType"},{"id":1041,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"templateHeader","changeable":true,"resolveProxies":true,"lowerBound":0,"id":1042,"derived":false},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"class","changeable":true,"resolveProxies":true,"lowerBound":1,"id":1043,"derived":false},{"id":1044,"eClass":"EGenericType"},{"id":1045,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"modelImports","changeable":true,"resolveProxies":true,"lowerBound":0,"id":1046,"derived":false},{"id":1047,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"name","changeable":true,"lowerBound":1,"iD":false,"id":1048,"derived":false},{"ordered":true,"upperBound":1,"defaultValue":"","volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":"","unsettable":false,"transient":false,"unique":true,"name":"uri","changeable":true,"lowerBound":1,"iD":false,"id":1049,"derived":false},{"id":1050,"eClass":"EGenericType"},{"id":1051,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"methodName","changeable":true,"lowerBound":1,"iD":false,"id":1052,"derived":false},{"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":false,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"params","changeable":true,"lowerBound":0,"iD":false,"id":1053,"derived":false},{"id":1054,"eClass":"EGenericType"},{"id":1055,"eClass":"EGenericType"},{"id":1056,"eClass":"EGenericType"},{"id":1057,"eClass":"EGenericType"},{"id":1058,"eClass":"EGenericType"},{"id":1059,"eClass":"EGenericType"},{"id":1060,"eClass":"EGenericType"},{"id":1061,"eClass":"EGenericType"},{"id":1062,"eClass":"EGenericType"},{"id":1063,"eClass":"EGenericType"},{"id":1064,"eClass":"EGenericType"},{"id":1065,"eClass":"EGenericType"},{"id":1066,"eClass":"EGenericType"},{"id":1067,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"methodStatement","changeable":true,"resolveProxies":true,"lowerBound":1,"id":1068,"derived":false},{"id":1069,"eClass":"EGenericType"},{"id":1070,"eClass":"EGenericType"},{"id":1071,"eClass":"EGenericType"},{"container":false,"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"methodStatement","changeable":true,"resolveProxies":true,"lowerBound":1,"id":1072,"derived":false},{"id":1073,"eClass":"EGenericType"},{"id":1074,"eClass":"EGenericType"},{"id":1075,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"defaultValue":null,"volatile":false,"many":false,"required":true,"eClass":"EAttribute","defaultValueLiteral":null,"unsettable":false,"transient":false,"unique":true,"name":"caller","changeable":true,"lowerBound":1,"iD":false,"id":1076,"derived":false},{"container":false,"ordered":true,"upperBound":-1,"defaultValue":null,"volatile":false,"many":true,"required":true,"eClass":"EReference","defaultValueLiteral":null,"containment":true,"unsettable":false,"transient":false,"unique":true,"name":"callee","changeable":true,"resolveProxies":true,"lowerBound":1,"id":1077,"derived":false},{"id":1078,"eClass":"EGenericType"},{"id":1079,"eClass":"EGenericType"},{"id":1080,"eClass":"EGenericType"}],"links":[{"source":0,"target":1},{"source":0,"target":2},{"source":0,"target":3},{"source":0,"target":4},{"source":0,"target":5},{"source":0,"target":6},{"source":0,"target":7},{"source":0,"target":8},{"source":0,"target":9},{"source":0,"target":10},{"source":0,"target":11},{"source":0,"target":12},{"source":0,"target":13},{"source":0,"target":14},{"source":0,"target":15},{"source":0,"target":16},{"source":0,"target":17},{"source":0,"target":18},{"source":0,"target":19},{"source":1,"target":20},{"source":1,"target":21},{"source":1,"target":22},{"source":1,"target":23},{"source":1,"target":24},{"source":1,"target":25},{"source":1,"target":26},{"source":1,"target":27},{"source":1,"target":0},{"source":20,"target":1},{"source":20,"target":28},{"source":20,"target":29},{"source":20,"target":30},{"source":29,"target":21},{"source":29,"target":31},{"source":29,"target":20},{"source":31,"target":21},{"source":30,"target":28},{"source":21,"target":1},{"source":21,"target":32},{"source":21,"target":33},{"source":21,"target":34},{"source":21,"target":35},{"source":21,"target":36},{"source":21,"target":37},{"source":21,"target":38},{"source":21,"target":39},{"source":35,"target":40},{"source":35,"target":41},{"source":35,"target":21},{"source":41,"target":40},{"source":36,"target":22},{"source":36,"target":42},{"source":36,"target":21},{"source":42,"target":22},{"source":37,"target":32},{"source":38,"target":33},{"source":39,"target":34},{"source":22,"target":1},{"source":22,"target":28},{"source":22,"target":43},{"source":43,"target":28},{"source":23,"target":1},{"source":23,"target":22},{"source":23,"target":44},{"source":23,"target":45},{"source":44,"target":26},{"source":44,"target":46},{"source":44,"target":23},{"source":46,"target":26},{"source":45,"target":22},{"source":24,"target":1},{"source":24,"target":22},{"source":24,"target":47},{"source":24,"target":48},{"source":47,"target":25},{"source":47,"target":49},{"source":47,"target":24},{"source":49,"target":25},{"source":48,"target":22},{"source":25,"target":1},{"source":25,"target":28},{"source":25,"target":50},{"source":25,"target":51},{"source":25,"target":52},{"source":50,"target":53},{"source":50,"target":54},{"source":50,"target":25},{"source":54,"target":53},{"source":51,"target":26},{"source":51,"target":55},{"source":51,"target":25},{"source":55,"target":26},{"source":52,"target":28},{"source":26,"target":1},{"source":26,"target":28},{"source":26,"target":56},{"source":56,"target":28},{"source":27,"target":1},{"source":27,"target":53},{"source":27,"target":57},{"source":27,"target":58},{"source":57,"target":59},{"source":57,"target":60},{"source":57,"target":27},{"source":60,"target":59},{"source":58,"target":53},{"source":2,"target":61},{"source":2,"target":62},{"source":2,"target":63},{"source":2,"target":64},{"source":2,"target":65},{"source":2,"target":66},{"source":2,"target":67},{"source":2,"target":0},{"source":61,"target":2},{"source":61,"target":28},{"source":61,"target":68},{"source":61,"target":69},{"source":61,"target":70},{"source":61,"target":71},{"source":68,"target":72},{"source":68,"target":61},{"source":69,"target":62},{"source":69,"target":73},{"source":69,"target":61},{"source":73,"target":62},{"source":70,"target":62},{"source":70,"target":74},{"source":70,"target":61},{"source":74,"target":62},{"source":71,"target":28},{"source":62,"target":2},{"source":62,"target":28},{"source":62,"target":75},{"source":75,"target":28},{"source":63,"target":2},{"source":63,"target":64},{"source":63,"target":26},{"source":63,"target":76},{"source":63,"target":77},{"source":63,"target":78},{"source":76,"target":64},{"source":76,"target":79},{"source":76,"target":63},{"source":79,"target":64},{"source":77,"target":64},{"source":78,"target":26},{"source":64,"target":2},{"source":64,"target":28},{"source":64,"target":80},{"source":80,"target":28},{"source":65,"target":2},{"source":65,"target":59},{"source":65,"target":81},{"source":65,"target":61},{"source":65,"target":32},{"source":65,"target":82},{"source":65,"target":83},{"source":65,"target":84},{"source":65,"target":85},{"source":65,"target":86},{"source":82,"target":59},{"source":82,"target":87},{"source":82,"target":65},{"source":87,"target":59},{"source":83,"target":59},{"source":84,"target":81},{"source":85,"target":61},{"source":86,"target":32},{"source":66,"target":2},{"source":66,"target":59},{"source":66,"target":81},{"source":66,"target":61},{"source":66,"target":32},{"source":66,"target":88},{"source":66,"target":89},{"source":66,"target":90},{"source":66,"target":91},{"source":66,"target":92},{"source":88,"target":63},{"source":88,"target":93},{"source":88,"target":66},{"source":93,"target":63},{"source":89,"target":59},{"source":90,"target":81},{"source":91,"target":61},{"source":92,"target":32},{"source":67,"target":2},{"source":67,"target":28},{"source":67,"target":94},{"source":67,"target":95},{"source":94,"target":59},{"source":94,"target":96},{"source":94,"target":67},{"source":96,"target":59},{"source":95,"target":28},{"source":3,"target":40},{"source":3,"target":97},{"source":3,"target":98},{"source":3,"target":99},{"source":3,"target":100},{"source":3,"target":101},{"source":3,"target":102},{"source":3,"target":103},{"source":3,"target":0},{"source":40,"target":3},{"source":40,"target":104},{"source":40,"target":105},{"source":40,"target":106},{"source":40,"target":107},{"source":40,"target":108},{"source":106,"target":97},{"source":106,"target":109},{"source":106,"target":40},{"source":109,"target":97},{"source":107,"target":104},{"source":108,"target":105},{"source":97,"target":3},{"source":97,"target":40},{"source":97,"target":110},{"source":97,"target":111},{"source":97,"target":112},{"source":97,"target":113},{"source":97,"target":114},{"source":97,"target":115},{"source":97,"target":116},{"source":97,"target":117},{"source":97,"target":118},{"source":97,"target":119},{"source":97,"target":120},{"source":97,"target":121},{"source":97,"target":122},{"source":97,"target":123},{"source":97,"target":124},{"source":97,"target":125},{"source":115,"target":97},{"source":115,"target":126},{"source":115,"target":97},{"source":126,"target":97},{"source":116,"target":97},{"source":116,"target":127},{"source":116,"target":97},{"source":127,"target":97},{"source":117,"target":128},{"source":117,"target":129},{"source":117,"target":97},{"source":129,"target":128},{"source":118,"target":112},{"source":118,"target":130},{"source":118,"target":97},{"source":118,"target":131},{"source":130,"target":112},{"source":131,"target":28},{"source":131,"target":132},{"source":131,"target":118},{"source":132,"target":28},{"source":119,"target":133},{"source":119,"target":97},{"source":120,"target":40},{"source":121,"target":110},{"source":122,"target":111},{"source":123,"target":112},{"source":124,"target":113},{"source":125,"target":114},{"source":98,"target":3},{"source":98,"target":28},{"source":98,"target":134},{"source":98,"target":135},{"source":134,"target":136},{"source":134,"target":137},{"source":134,"target":98},{"source":137,"target":136},{"source":135,"target":28},{"source":99,"target":3},{"source":99,"target":97},{"source":99,"target":98},{"source":99,"target":138},{"source":99,"target":139},{"source":99,"target":140},{"source":99,"target":141},{"source":99,"target":142},{"source":99,"target":143},{"source":99,"target":144},{"source":138,"target":97},{"source":138,"target":145},{"source":138,"target":99},{"source":145,"target":97},{"source":139,"target":99},{"source":139,"target":146},{"source":139,"target":99},{"source":146,"target":99},{"source":140,"target":147},{"source":140,"target":148},{"source":140,"target":99},{"source":148,"target":147},{"source":141,"target":136},{"source":141,"target":149},{"source":141,"target":99},{"source":149,"target":136},{"source":142,"target":136},{"source":142,"target":150},{"source":142,"target":99},{"source":150,"target":136},{"source":143,"target":97},{"source":144,"target":98},{"source":100,"target":3},{"source":100,"target":97},{"source":100,"target":151},{"source":100,"target":152},{"source":100,"target":153},{"source":100,"target":154},{"source":151,"target":97},{"source":151,"target":155},{"source":151,"target":100},{"source":155,"target":97},{"source":152,"target":136},{"source":152,"target":156},{"source":152,"target":100},{"source":156,"target":136},{"source":153,"target":136},{"source":153,"target":157},{"source":153,"target":100},{"source":157,"target":136},{"source":154,"target":97},{"source":101,"target":3},{"source":101,"target":97},{"source":101,"target":98},{"source":101,"target":158},{"source":101,"target":159},{"source":101,"target":160},{"source":101,"target":161},{"source":158,"target":97},{"source":158,"target":162},{"source":158,"target":101},{"source":162,"target":97},{"source":159,"target":163},{"source":159,"target":164},{"source":159,"target":101},{"source":164,"target":163},{"source":160,"target":97},{"source":161,"target":98},{"source":102,"target":3},{"source":102,"target":97},{"source":102,"target":165},{"source":102,"target":166},{"source":165,"target":97},{"source":165,"target":167},{"source":165,"target":102},{"source":167,"target":97},{"source":166,"target":97},{"source":103,"target":3},{"source":103,"target":104},{"source":103,"target":111},{"source":103,"target":168},{"source":103,"target":169},{"source":103,"target":170},{"source":103,"target":171},{"source":103,"target":172},{"source":168,"target":97},{"source":168,"target":173},{"source":168,"target":103},{"source":173,"target":97},{"source":169,"target":97},{"source":169,"target":174},{"source":169,"target":103},{"source":174,"target":97},{"source":170,"target":112},{"source":170,"target":175},{"source":170,"target":103},{"source":170,"target":176},{"source":175,"target":112},{"source":176,"target":28},{"source":176,"target":177},{"source":176,"target":170},{"source":177,"target":28},{"source":171,"target":104},{"source":172,"target":111},{"source":4,"target":28},{"source":4,"target":178},{"source":4,"target":34},{"source":4,"target":0},{"source":28,"target":4},{"source":28,"target":179},{"source":28,"target":180},{"source":28,"target":181},{"source":28,"target":182},{"source":28,"target":183},{"source":28,"target":184},{"source":28,"target":185},{"source":28,"target":186},{"source":28,"target":187},{"source":28,"target":188},{"source":28,"target":189},{"source":28,"target":190},{"source":28,"target":191},{"source":28,"target":192},{"source":28,"target":193},{"source":179,"target":97},{"source":179,"target":194},{"source":179,"target":28},{"source":179,"target":195},{"source":194,"target":97},{"source":195,"target":196},{"source":195,"target":179},{"source":180,"target":97},{"source":180,"target":197},{"source":180,"target":28},{"source":180,"target":198},{"source":180,"target":199},{"source":197,"target":97},{"source":198,"target":200},{"source":198,"target":180},{"source":199,"target":201},{"source":199,"target":180},{"source":181,"target":99},{"source":181,"target":202},{"source":181,"target":28},{"source":181,"target":203},{"source":202,"target":99},{"source":203,"target":204},{"source":203,"target":181},{"source":182,"target":100},{"source":182,"target":205},{"source":182,"target":28},{"source":182,"target":206},{"source":205,"target":100},{"source":206,"target":207},{"source":206,"target":182},{"source":183,"target":99},{"source":183,"target":208},{"source":183,"target":28},{"source":208,"target":99},{"source":184,"target":99},{"source":184,"target":209},{"source":184,"target":28},{"source":209,"target":99},{"source":185,"target":99},{"source":185,"target":210},{"source":185,"target":28},{"source":210,"target":99},{"source":186,"target":100},{"source":186,"target":211},{"source":186,"target":28},{"source":211,"target":100},{"source":187,"target":21},{"source":187,"target":212},{"source":187,"target":28},{"source":212,"target":21},{"source":188,"target":103},{"source":188,"target":213},{"source":188,"target":28},{"source":213,"target":103},{"source":189,"target":97},{"source":189,"target":214},{"source":189,"target":28},{"source":214,"target":97},{"source":190,"target":215},{"source":190,"target":216},{"source":190,"target":28},{"source":216,"target":215},{"source":191,"target":217},{"source":191,"target":28},{"source":192,"target":97},{"source":192,"target":218},{"source":192,"target":28},{"source":218,"target":97},{"source":193,"target":219},{"source":193,"target":28},{"source":178,"target":4},{"source":178,"target":28},{"source":178,"target":220},{"source":178,"target":221},{"source":178,"target":222},{"source":220,"target":223},{"source":220,"target":178},{"source":221,"target":224},{"source":221,"target":225},{"source":221,"target":178},{"source":225,"target":224},{"source":222,"target":28},{"source":34,"target":4},{"source":34,"target":28},{"source":34,"target":226},{"source":34,"target":227},{"source":34,"target":228},{"source":34,"target":229},{"source":226,"target":230},{"source":226,"target":34},{"source":227,"target":97},{"source":227,"target":231},{"source":227,"target":34},{"source":231,"target":97},{"source":228,"target":232},{"source":228,"target":34},{"source":229,"target":28},{"source":5,"target":233},{"source":5,"target":215},{"source":5,"target":234},{"source":5,"target":235},{"source":5,"target":0},{"source":233,"target":5},{"source":233,"target":178},{"source":233,"target":34},{"source":233,"target":236},{"source":233,"target":237},{"source":233,"target":238},{"source":233,"target":239},{"source":233,"target":240},{"source":237,"target":97},{"source":237,"target":241},{"source":237,"target":233},{"source":241,"target":97},{"source":238,"target":178},{"source":239,"target":34},{"source":240,"target":236},{"source":215,"target":5},{"source":215,"target":233},{"source":215,"target":242},{"source":215,"target":243},{"source":215,"target":244},{"source":215,"target":245},{"source":242,"target":97},{"source":242,"target":246},{"source":242,"target":215},{"source":242,"target":247},{"source":246,"target":97},{"source":247,"target":248},{"source":247,"target":242},{"source":243,"target":97},{"source":243,"target":249},{"source":243,"target":215},{"source":249,"target":97},{"source":244,"target":97},{"source":244,"target":250},{"source":244,"target":215},{"source":250,"target":97},{"source":245,"target":233},{"source":234,"target":5},{"source":234,"target":233},{"source":234,"target":20},{"source":234,"target":105},{"source":234,"target":251},{"source":234,"target":252},{"source":234,"target":253},{"source":234,"target":254},{"source":234,"target":255},{"source":251,"target":215},{"source":251,"target":256},{"source":251,"target":234},{"source":256,"target":215},{"source":252,"target":234},{"source":252,"target":257},{"source":252,"target":234},{"source":257,"target":234},{"source":253,"target":233},{"source":254,"target":20},{"source":255,"target":105},{"source":235,"target":5},{"source":235,"target":233},{"source":235,"target":258},{"source":258,"target":233},{"source":6,"target":259},{"source":6,"target":59},{"source":6,"target":260},{"source":6,"target":261},{"source":6,"target":262},{"source":6,"target":263},{"source":6,"target":264},{"source":6,"target":265},{"source":6,"target":266},{"source":6,"target":267},{"source":6,"target":268},{"source":6,"target":269},{"source":6,"target":270},{"source":6,"target":271},{"source":6,"target":272},{"source":6,"target":273},{"source":6,"target":274},{"source":6,"target":275},{"source":6,"target":276},{"source":6,"target":277},{"source":6,"target":278},{"source":6,"target":279},{"source":6,"target":280},{"source":6,"target":281},{"source":6,"target":282},{"source":6,"target":283},{"source":6,"target":284},{"source":6,"target":285},{"source":6,"target":286},{"source":6,"target":287},{"source":6,"target":288},{"source":6,"target":289},{"source":6,"target":290},{"source":6,"target":291},{"source":6,"target":292},{"source":6,"target":293},{"source":6,"target":294},{"source":6,"target":0},{"source":259,"target":6},{"source":259,"target":295},{"source":259,"target":296},{"source":259,"target":297},{"source":296,"target":59},{"source":296,"target":298},{"source":296,"target":259},{"source":298,"target":59},{"source":297,"target":295},{"source":59,"target":6},{"source":59,"target":64},{"source":59,"target":26},{"source":59,"target":299},{"source":59,"target":300},{"source":59,"target":301},{"source":59,"target":302},{"source":59,"target":303},{"source":59,"target":304},{"source":299,"target":104},{"source":299,"target":305},{"source":299,"target":59},{"source":305,"target":104},{"source":300,"target":104},{"source":300,"target":306},{"source":300,"target":59},{"source":306,"target":104},{"source":301,"target":104},{"source":301,"target":307},{"source":301,"target":59},{"source":301,"target":308},{"source":307,"target":104},{"source":308,"target":309},{"source":308,"target":301},{"source":302,"target":310},{"source":302,"target":59},{"source":303,"target":64},{"source":304,"target":26},{"source":260,"target":6},{"source":260,"target":59},{"source":260,"target":311},{"source":260,"target":312},{"source":260,"target":313},{"source":260,"target":314},{"source":311,"target":261},{"source":311,"target":315},{"source":311,"target":260},{"source":315,"target":261},{"source":312,"target":316},{"source":312,"target":317},{"source":312,"target":260},{"source":317,"target":316},{"source":313,"target":59},{"source":313,"target":318},{"source":313,"target":260},{"source":318,"target":59},{"source":314,"target":59},{"source":261,"target":6},{"source":261,"target":59},{"source":261,"target":319},{"source":319,"target":59},{"source":262,"target":6},{"source":262,"target":261},{"source":262,"target":320},{"source":262,"target":321},{"source":262,"target":322},{"source":262,"target":323},{"source":320,"target":263},{"source":320,"target":324},{"source":320,"target":262},{"source":324,"target":263},{"source":321,"target":59},{"source":321,"target":325},{"source":321,"target":262},{"source":325,"target":59},{"source":322,"target":261},{"source":322,"target":326},{"source":322,"target":262},{"source":326,"target":261},{"source":323,"target":261},{"source":263,"target":6},{"source":263,"target":261},{"source":263,"target":327},{"source":327,"target":261},{"source":264,"target":6},{"source":264,"target":263},{"source":264,"target":328},{"source":264,"target":329},{"source":328,"target":265},{"source":328,"target":330},{"source":328,"target":264},{"source":330,"target":265},{"source":329,"target":263},{"source":265,"target":6},{"source":265,"target":263},{"source":265,"target":331},{"source":331,"target":263},{"source":266,"target":6},{"source":266,"target":265},{"source":266,"target":332},{"source":266,"target":333},{"source":332,"target":267},{"source":332,"target":334},{"source":332,"target":266},{"source":334,"target":267},{"source":333,"target":265},{"source":267,"target":6},{"source":267,"target":265},{"source":267,"target":335},{"source":335,"target":265},{"source":268,"target":6},{"source":268,"target":267},{"source":268,"target":336},{"source":268,"target":337},{"source":336,"target":269},{"source":336,"target":338},{"source":336,"target":268},{"source":338,"target":269},{"source":337,"target":267},{"source":269,"target":6},{"source":269,"target":267},{"source":269,"target":339},{"source":339,"target":267},{"source":270,"target":6},{"source":270,"target":269},{"source":270,"target":340},{"source":270,"target":341},{"source":340,"target":271},{"source":340,"target":342},{"source":340,"target":270},{"source":342,"target":271},{"source":341,"target":269},{"source":271,"target":6},{"source":271,"target":269},{"source":271,"target":343},{"source":343,"target":269},{"source":272,"target":6},{"source":272,"target":271},{"source":272,"target":344},{"source":272,"target":345},{"source":344,"target":273},{"source":344,"target":346},{"source":344,"target":272},{"source":346,"target":273},{"source":345,"target":271},{"source":273,"target":6},{"source":273,"target":271},{"source":273,"target":347},{"source":347,"target":271},{"source":274,"target":6},{"source":274,"target":273},{"source":274,"target":348},{"source":274,"target":349},{"source":274,"target":350},{"source":348,"target":351},{"source":348,"target":352},{"source":348,"target":274},{"source":352,"target":351},{"source":349,"target":275},{"source":349,"target":353},{"source":349,"target":274},{"source":353,"target":275},{"source":350,"target":273},{"source":275,"target":6},{"source":275,"target":273},{"source":275,"target":354},{"source":354,"target":273},{"source":276,"target":6},{"source":276,"target":61},{"source":276,"target":81},{"source":276,"target":275},{"source":276,"target":355},{"source":276,"target":356},{"source":276,"target":357},{"source":276,"target":358},{"source":355,"target":277},{"source":355,"target":359},{"source":355,"target":276},{"source":359,"target":277},{"source":356,"target":61},{"source":357,"target":81},{"source":358,"target":275},{"source":277,"target":6},{"source":277,"target":275},{"source":277,"target":360},{"source":360,"target":275},{"source":278,"target":6},{"source":278,"target":277},{"source":278,"target":361},{"source":278,"target":362},{"source":278,"target":363},{"source":361,"target":279},{"source":361,"target":364},{"source":361,"target":278},{"source":364,"target":279},{"source":362,"target":365},{"source":362,"target":366},{"source":362,"target":278},{"source":366,"target":365},{"source":363,"target":277},{"source":279,"target":6},{"source":279,"target":277},{"source":279,"target":367},{"source":367,"target":277},{"source":280,"target":6},{"source":280,"target":279},{"source":280,"target":368},{"source":280,"target":369},{"source":280,"target":370},{"source":368,"target":281},{"source":368,"target":371},{"source":368,"target":280},{"source":371,"target":281},{"source":369,"target":372},{"source":369,"target":373},{"source":369,"target":280},{"source":373,"target":372},{"source":370,"target":279},{"source":281,"target":6},{"source":281,"target":279},{"source":281,"target":374},{"source":374,"target":279},{"source":282,"target":6},{"source":282,"target":281},{"source":282,"target":375},{"source":282,"target":376},{"source":282,"target":377},{"source":375,"target":283},{"source":375,"target":378},{"source":375,"target":282},{"source":378,"target":283},{"source":376,"target":379},{"source":376,"target":380},{"source":376,"target":282},{"source":380,"target":379},{"source":377,"target":281},{"source":283,"target":6},{"source":283,"target":281},{"source":283,"target":381},{"source":381,"target":281},{"source":284,"target":6},{"source":284,"target":283},{"source":284,"target":382},{"source":284,"target":383},{"source":284,"target":384},{"source":382,"target":285},{"source":382,"target":385},{"source":382,"target":284},{"source":385,"target":285},{"source":383,"target":386},{"source":383,"target":387},{"source":383,"target":284},{"source":387,"target":386},{"source":384,"target":283},{"source":285,"target":6},{"source":285,"target":283},{"source":285,"target":388},{"source":388,"target":283},{"source":286,"target":6},{"source":286,"target":285},{"source":286,"target":389},{"source":286,"target":390},{"source":286,"target":391},{"source":389,"target":392},{"source":389,"target":393},{"source":389,"target":286},{"source":393,"target":392},{"source":390,"target":287},{"source":390,"target":394},{"source":390,"target":286},{"source":394,"target":287},{"source":391,"target":285},{"source":287,"target":6},{"source":287,"target":285},{"source":287,"target":395},{"source":395,"target":285},{"source":288,"target":6},{"source":288,"target":287},{"source":288,"target":396},{"source":288,"target":397},{"source":288,"target":398},{"source":396,"target":291},{"source":396,"target":399},{"source":396,"target":288},{"source":399,"target":291},{"source":397,"target":400},{"source":397,"target":401},{"source":397,"target":288},{"source":401,"target":400},{"source":398,"target":287},{"source":289,"target":6},{"source":289,"target":288},{"source":289,"target":402},{"source":402,"target":288},{"source":290,"target":6},{"source":290,"target":288},{"source":290,"target":403},{"source":403,"target":288},{"source":291,"target":6},{"source":291,"target":287},{"source":291,"target":404},{"source":404,"target":287},{"source":292,"target":6},{"source":292,"target":81},{"source":292,"target":61},{"source":292,"target":291},{"source":292,"target":405},{"source":292,"target":406},{"source":292,"target":407},{"source":292,"target":408},{"source":405,"target":285},{"source":405,"target":409},{"source":405,"target":292},{"source":409,"target":285},{"source":406,"target":81},{"source":407,"target":61},{"source":408,"target":291},{"source":293,"target":6},{"source":293,"target":291},{"source":293,"target":410},{"source":410,"target":291},{"source":294,"target":6},{"source":294,"target":32},{"source":294,"target":411},{"source":294,"target":412},{"source":411,"target":59},{"source":411,"target":413},{"source":411,"target":294},{"source":413,"target":59},{"source":412,"target":32},{"source":7,"target":414},{"source":7,"target":415},{"source":7,"target":416},{"source":7,"target":110},{"source":7,"target":417},{"source":7,"target":418},{"source":7,"target":419},{"source":7,"target":420},{"source":7,"target":421},{"source":7,"target":0},{"source":414,"target":7},{"source":414,"target":61},{"source":414,"target":422},{"source":422,"target":61},{"source":415,"target":7},{"source":415,"target":28},{"source":415,"target":423},{"source":415,"target":424},{"source":423,"target":414},{"source":423,"target":425},{"source":423,"target":415},{"source":425,"target":414},{"source":424,"target":28},{"source":416,"target":7},{"source":416,"target":28},{"source":416,"target":426},{"source":416,"target":427},{"source":426,"target":414},{"source":426,"target":428},{"source":426,"target":416},{"source":428,"target":414},{"source":427,"target":28},{"source":110,"target":7},{"source":110,"target":28},{"source":110,"target":429},{"source":110,"target":430},{"source":429,"target":420},{"source":429,"target":431},{"source":429,"target":110},{"source":431,"target":420},{"source":430,"target":28},{"source":417,"target":7},{"source":417,"target":414},{"source":417,"target":432},{"source":417,"target":433},{"source":432,"target":136},{"source":432,"target":434},{"source":432,"target":417},{"source":434,"target":136},{"source":433,"target":414},{"source":418,"target":7},{"source":418,"target":414},{"source":418,"target":81},{"source":418,"target":435},{"source":418,"target":436},{"source":435,"target":414},{"source":436,"target":81},{"source":419,"target":7},{"source":419,"target":414},{"source":419,"target":437},{"source":419,"target":438},{"source":437,"target":136},{"source":437,"target":439},{"source":437,"target":419},{"source":439,"target":136},{"source":438,"target":414},{"source":420,"target":7},{"source":420,"target":40},{"source":420,"target":440},{"source":420,"target":441},{"source":420,"target":442},{"source":420,"target":443},{"source":420,"target":444},{"source":440,"target":97},{"source":440,"target":445},{"source":440,"target":420},{"source":445,"target":97},{"source":441,"target":112},{"source":441,"target":446},{"source":441,"target":420},{"source":441,"target":447},{"source":446,"target":112},{"source":447,"target":28},{"source":447,"target":448},{"source":447,"target":441},{"source":448,"target":28},{"source":442,"target":104},{"source":442,"target":449},{"source":442,"target":420},{"source":442,"target":450},{"source":442,"target":451},{"source":449,"target":104},{"source":450,"target":136},{"source":450,"target":452},{"source":450,"target":442},{"source":452,"target":136},{"source":451,"target":32},{"source":451,"target":453},{"source":451,"target":442},{"source":453,"target":32},{"source":443,"target":136},{"source":443,"target":454},{"source":443,"target":420},{"source":454,"target":136},{"source":444,"target":40},{"source":421,"target":7},{"source":421,"target":414},{"source":421,"target":455},{"source":455,"target":414},{"source":8,"target":456},{"source":8,"target":236},{"source":8,"target":457},{"source":8,"target":458},{"source":8,"target":459},{"source":8,"target":460},{"source":8,"target":461},{"source":8,"target":0},{"source":456,"target":8},{"source":456,"target":34},{"source":456,"target":462},{"source":456,"target":463},{"source":456,"target":464},{"source":456,"target":465},{"source":462,"target":97},{"source":462,"target":466},{"source":462,"target":456},{"source":462,"target":467},{"source":466,"target":97},{"source":467,"target":468},{"source":467,"target":462},{"source":463,"target":97},{"source":463,"target":469},{"source":463,"target":456},{"source":469,"target":97},{"source":464,"target":178},{"source":464,"target":470},{"source":464,"target":456},{"source":470,"target":178},{"source":465,"target":34},{"source":236,"target":8},{"source":236,"target":28},{"source":236,"target":471},{"source":236,"target":472},{"source":236,"target":473},{"source":471,"target":97},{"source":471,"target":474},{"source":471,"target":236},{"source":474,"target":97},{"source":472,"target":456},{"source":472,"target":475},{"source":472,"target":236},{"source":475,"target":456},{"source":473,"target":28},{"source":457,"target":8},{"source":457,"target":456},{"source":457,"target":476},{"source":457,"target":477},{"source":476,"target":478},{"source":476,"target":479},{"source":476,"target":457},{"source":479,"target":478},{"source":477,"target":456},{"source":458,"target":8},{"source":458,"target":456},{"source":458,"target":480},{"source":458,"target":481},{"source":480,"target":97},{"source":480,"target":482},{"source":480,"target":458},{"source":482,"target":97},{"source":481,"target":456},{"source":459,"target":8},{"source":459,"target":456},{"source":459,"target":483},{"source":483,"target":456},{"source":460,"target":8},{"source":460,"target":457},{"source":460,"target":484},{"source":484,"target":457},{"source":461,"target":8},{"source":461,"target":457},{"source":461,"target":485},{"source":461,"target":486},{"source":485,"target":105},{"source":485,"target":487},{"source":485,"target":461},{"source":487,"target":105},{"source":486,"target":457},{"source":9,"target":488},{"source":9,"target":489},{"source":9,"target":490},{"source":9,"target":491},{"source":9,"target":0},{"source":488,"target":9},{"source":488,"target":28},{"source":488,"target":492},{"source":488,"target":493},{"source":492,"target":59},{"source":492,"target":494},{"source":492,"target":488},{"source":494,"target":59},{"source":493,"target":28},{"source":489,"target":9},{"source":489,"target":81},{"source":489,"target":32},{"source":489,"target":495},{"source":489,"target":415},{"source":489,"target":496},{"source":489,"target":497},{"source":489,"target":498},{"source":489,"target":499},{"source":496,"target":81},{"source":497,"target":32},{"source":498,"target":495},{"source":499,"target":415},{"source":490,"target":9},{"source":490,"target":489},{"source":490,"target":416},{"source":490,"target":500},{"source":490,"target":501},{"source":490,"target":502},{"source":500,"target":103},{"source":500,"target":503},{"source":500,"target":490},{"source":503,"target":103},{"source":501,"target":489},{"source":502,"target":416},{"source":491,"target":9},{"source":491,"target":489},{"source":491,"target":504},{"source":491,"target":505},{"source":504,"target":506},{"source":504,"target":507},{"source":504,"target":491},{"source":507,"target":506},{"source":505,"target":489},{"source":10,"target":508},{"source":10,"target":506},{"source":10,"target":509},{"source":10,"target":510},{"source":10,"target":511},{"source":10,"target":512},{"source":10,"target":513},{"source":10,"target":514},{"source":10,"target":515},{"source":10,"target":516},{"source":10,"target":517},{"source":10,"target":518},{"source":10,"target":519},{"source":10,"target":520},{"source":10,"target":521},{"source":10,"target":522},{"source":10,"target":523},{"source":10,"target":524},{"source":10,"target":525},{"source":10,"target":526},{"source":10,"target":527},{"source":10,"target":0},{"source":508,"target":10},{"source":508,"target":293},{"source":508,"target":528},{"source":508,"target":529},{"source":528,"target":104},{"source":528,"target":530},{"source":528,"target":508},{"source":528,"target":531},{"source":530,"target":104},{"source":531,"target":532},{"source":531,"target":528},{"source":529,"target":293},{"source":506,"target":10},{"source":506,"target":28},{"source":506,"target":533},{"source":533,"target":28},{"source":509,"target":10},{"source":509,"target":508},{"source":509,"target":534},{"source":509,"target":535},{"source":534,"target":536},{"source":534,"target":509},{"source":535,"target":508},{"source":510,"target":10},{"source":510,"target":508},{"source":510,"target":537},{"source":510,"target":538},{"source":537,"target":539},{"source":537,"target":510},{"source":538,"target":508},{"source":511,"target":10},{"source":511,"target":508},{"source":511,"target":540},{"source":540,"target":508},{"source":512,"target":10},{"source":512,"target":511},{"source":512,"target":541},{"source":512,"target":542},{"source":541,"target":543},{"source":541,"target":512},{"source":542,"target":511},{"source":513,"target":10},{"source":513,"target":511},{"source":513,"target":544},{"source":513,"target":545},{"source":544,"target":546},{"source":544,"target":513},{"source":545,"target":511},{"source":514,"target":10},{"source":514,"target":508},{"source":514,"target":547},{"source":547,"target":508},{"source":515,"target":10},{"source":515,"target":514},{"source":515,"target":548},{"source":515,"target":549},{"source":548,"target":550},{"source":548,"target":515},{"source":549,"target":514},{"source":516,"target":10},{"source":516,"target":514},{"source":516,"target":551},{"source":516,"target":552},{"source":551,"target":553},{"source":551,"target":516},{"source":552,"target":514},{"source":517,"target":10},{"source":517,"target":508},{"source":517,"target":554},{"source":554,"target":508},{"source":518,"target":10},{"source":518,"target":517},{"source":518,"target":555},{"source":518,"target":556},{"source":555,"target":557},{"source":555,"target":518},{"source":556,"target":517},{"source":519,"target":10},{"source":519,"target":517},{"source":519,"target":558},{"source":519,"target":559},{"source":558,"target":560},{"source":558,"target":519},{"source":559,"target":517},{"source":520,"target":10},{"source":520,"target":517},{"source":520,"target":561},{"source":520,"target":562},{"source":561,"target":563},{"source":561,"target":520},{"source":562,"target":517},{"source":521,"target":10},{"source":521,"target":508},{"source":521,"target":564},{"source":564,"target":508},{"source":522,"target":10},{"source":522,"target":521},{"source":522,"target":565},{"source":522,"target":566},{"source":565,"target":567},{"source":565,"target":522},{"source":566,"target":521},{"source":523,"target":10},{"source":523,"target":521},{"source":523,"target":568},{"source":523,"target":569},{"source":568,"target":570},{"source":568,"target":523},{"source":569,"target":521},{"source":524,"target":10},{"source":524,"target":521},{"source":524,"target":571},{"source":524,"target":572},{"source":571,"target":573},{"source":571,"target":524},{"source":572,"target":521},{"source":525,"target":10},{"source":525,"target":508},{"source":525,"target":574},{"source":574,"target":508},{"source":526,"target":10},{"source":526,"target":506},{"source":526,"target":575},{"source":575,"target":506},{"source":527,"target":10},{"source":527,"target":506},{"source":527,"target":576},{"source":576,"target":506},{"source":11,"target":577},{"source":11,"target":112},{"source":11,"target":111},{"source":11,"target":578},{"source":11,"target":579},{"source":11,"target":580},{"source":11,"target":581},{"source":11,"target":582},{"source":11,"target":53},{"source":11,"target":583},{"source":11,"target":163},{"source":11,"target":0},{"source":577,"target":11},{"source":577,"target":28},{"source":577,"target":584},{"source":577,"target":585},{"source":584,"target":586},{"source":584,"target":587},{"source":584,"target":577},{"source":587,"target":586},{"source":585,"target":28},{"source":112,"target":11},{"source":112,"target":178},{"source":112,"target":588},{"source":588,"target":178},{"source":111,"target":11},{"source":111,"target":28},{"source":111,"target":589},{"source":111,"target":590},{"source":111,"target":591},{"source":111,"target":592},{"source":111,"target":593},{"source":111,"target":594},{"source":589,"target":97},{"source":589,"target":595},{"source":589,"target":111},{"source":589,"target":596},{"source":595,"target":97},{"source":596,"target":597},{"source":596,"target":589},{"source":590,"target":581},{"source":590,"target":598},{"source":590,"target":111},{"source":590,"target":599},{"source":598,"target":581},{"source":599,"target":600},{"source":599,"target":590},{"source":591,"target":582},{"source":591,"target":601},{"source":591,"target":111},{"source":591,"target":602},{"source":601,"target":582},{"source":602,"target":603},{"source":602,"target":591},{"source":592,"target":112},{"source":592,"target":604},{"source":592,"target":111},{"source":604,"target":112},{"source":593,"target":112},{"source":593,"target":605},{"source":593,"target":111},{"source":605,"target":112},{"source":594,"target":28},{"source":578,"target":11},{"source":578,"target":105},{"source":578,"target":61},{"source":578,"target":488},{"source":578,"target":606},{"source":578,"target":607},{"source":578,"target":608},{"source":578,"target":609},{"source":606,"target":610},{"source":606,"target":578},{"source":607,"target":105},{"source":608,"target":61},{"source":609,"target":488},{"source":579,"target":11},{"source":579,"target":112},{"source":579,"target":611},{"source":579,"target":612},{"source":579,"target":110},{"source":579,"target":577},{"source":579,"target":114},{"source":579,"target":613},{"source":579,"target":614},{"source":579,"target":615},{"source":579,"target":616},{"source":579,"target":617},{"source":579,"target":618},{"source":613,"target":112},{"source":614,"target":611},{"source":615,"target":612},{"source":616,"target":110},{"source":617,"target":577},{"source":618,"target":114},{"source":580,"target":11},{"source":580,"target":112},{"source":580,"target":619},{"source":619,"target":112},{"source":581,"target":11},{"source":581,"target":112},{"source":581,"target":488},{"source":581,"target":620},{"source":581,"target":105},{"source":581,"target":114},{"source":581,"target":621},{"source":581,"target":622},{"source":581,"target":623},{"source":581,"target":624},{"source":581,"target":625},{"source":581,"target":626},{"source":621,"target":578},{"source":621,"target":627},{"source":621,"target":581},{"source":627,"target":578},{"source":622,"target":112},{"source":623,"target":488},{"source":624,"target":620},{"source":625,"target":105},{"source":626,"target":114},{"source":582,"target":11},{"source":582,"target":112},{"source":582,"target":81},{"source":582,"target":61},{"source":582,"target":110},{"source":582,"target":612},{"source":582,"target":105},{"source":582,"target":577},{"source":582,"target":114},{"source":582,"target":628},{"source":582,"target":629},{"source":582,"target":630},{"source":582,"target":631},{"source":582,"target":632},{"source":582,"target":633},{"source":582,"target":634},{"source":582,"target":635},{"source":582,"target":636},{"source":582,"target":637},{"source":582,"target":638},{"source":582,"target":639},{"source":628,"target":640},{"source":628,"target":582},{"source":628,"target":641},{"source":628,"target":642},{"source":641,"target":643},{"source":641,"target":644},{"source":641,"target":628},{"source":644,"target":643},{"source":642,"target":645},{"source":642,"target":628},{"source":629,"target":646},{"source":629,"target":582},{"source":629,"target":647},{"source":647,"target":643},{"source":647,"target":648},{"source":647,"target":629},{"source":648,"target":643},{"source":630,"target":649},{"source":630,"target":582},{"source":630,"target":650},{"source":630,"target":651},{"source":650,"target":582},{"source":650,"target":652},{"source":650,"target":630},{"source":652,"target":582},{"source":651,"target":643},{"source":651,"target":653},{"source":651,"target":630},{"source":653,"target":643},{"source":631,"target":654},{"source":631,"target":582},{"source":632,"target":112},{"source":633,"target":81},{"source":634,"target":61},{"source":635,"target":110},{"source":636,"target":612},{"source":637,"target":105},{"source":638,"target":577},{"source":639,"target":114},{"source":53,"target":11},{"source":53,"target":582},{"source":53,"target":655},{"source":655,"target":582},{"source":583,"target":11},{"source":583,"target":582},{"source":583,"target":611},{"source":583,"target":656},{"source":583,"target":657},{"source":656,"target":582},{"source":657,"target":611},{"source":163,"target":11},{"source":163,"target":105},{"source":163,"target":495},{"source":163,"target":20},{"source":163,"target":658},{"source":163,"target":659},{"source":163,"target":660},{"source":163,"target":661},{"source":658,"target":103},{"source":658,"target":662},{"source":658,"target":163},{"source":662,"target":103},{"source":659,"target":105},{"source":660,"target":495},{"source":661,"target":20},{"source":12,"target":663},{"source":12,"target":33},{"source":12,"target":114},{"source":12,"target":664},{"source":12,"target":665},{"source":12,"target":666},{"source":12,"target":667},{"source":12,"target":668},{"source":12,"target":669},{"source":12,"target":670},{"source":12,"target":478},{"source":12,"target":671},{"source":12,"target":672},{"source":12,"target":673},{"source":12,"target":674},{"source":12,"target":0},{"source":663,"target":12},{"source":663,"target":33},{"source":663,"target":675},{"source":675,"target":33},{"source":33,"target":12},{"source":33,"target":28},{"source":33,"target":676},{"source":676,"target":28},{"source":114,"target":12},{"source":114,"target":28},{"source":114,"target":677},{"source":114,"target":678},{"source":114,"target":679},{"source":114,"target":680},{"source":677,"target":681},{"source":677,"target":114},{"source":677,"target":682},{"source":682,"target":28},{"source":682,"target":683},{"source":682,"target":677},{"source":683,"target":28},{"source":678,"target":684},{"source":678,"target":114},{"source":679,"target":33},{"source":679,"target":685},{"source":679,"target":114},{"source":685,"target":33},{"source":680,"target":28},{"source":664,"target":12},{"source":664,"target":28},{"source":664,"target":686},{"source":664,"target":687},{"source":686,"target":663},{"source":686,"target":688},{"source":686,"target":664},{"source":688,"target":663},{"source":687,"target":28},{"source":665,"target":12},{"source":665,"target":663},{"source":665,"target":689},{"source":689,"target":663},{"source":666,"target":12},{"source":666,"target":663},{"source":666,"target":690},{"source":690,"target":663},{"source":667,"target":12},{"source":667,"target":663},{"source":667,"target":691},{"source":691,"target":663},{"source":668,"target":12},{"source":668,"target":663},{"source":668,"target":692},{"source":692,"target":663},{"source":669,"target":12},{"source":669,"target":663},{"source":669,"target":693},{"source":693,"target":663},{"source":670,"target":12},{"source":670,"target":663},{"source":670,"target":694},{"source":694,"target":663},{"source":478,"target":12},{"source":478,"target":663},{"source":478,"target":695},{"source":695,"target":663},{"source":671,"target":12},{"source":671,"target":663},{"source":671,"target":696},{"source":696,"target":663},{"source":672,"target":12},{"source":672,"target":663},{"source":672,"target":697},{"source":697,"target":663},{"source":673,"target":12},{"source":673,"target":663},{"source":673,"target":698},{"source":698,"target":663},{"source":674,"target":12},{"source":674,"target":663},{"source":674,"target":699},{"source":699,"target":663},{"source":13,"target":700},{"source":13,"target":379},{"source":13,"target":316},{"source":13,"target":351},{"source":13,"target":386},{"source":13,"target":365},{"source":13,"target":372},{"source":13,"target":392},{"source":13,"target":400},{"source":13,"target":701},{"source":13,"target":702},{"source":13,"target":703},{"source":13,"target":704},{"source":13,"target":705},{"source":13,"target":706},{"source":13,"target":707},{"source":13,"target":708},{"source":13,"target":709},{"source":13,"target":710},{"source":13,"target":711},{"source":13,"target":712},{"source":13,"target":713},{"source":13,"target":714},{"source":13,"target":715},{"source":13,"target":716},{"source":13,"target":717},{"source":13,"target":718},{"source":13,"target":719},{"source":13,"target":720},{"source":13,"target":721},{"source":13,"target":722},{"source":13,"target":723},{"source":13,"target":724},{"source":13,"target":725},{"source":13,"target":726},{"source":13,"target":727},{"source":13,"target":728},{"source":13,"target":729},{"source":13,"target":730},{"source":13,"target":0},{"source":700,"target":13},{"source":700,"target":28},{"source":700,"target":731},{"source":731,"target":28},{"source":379,"target":13},{"source":379,"target":700},{"source":379,"target":732},{"source":732,"target":700},{"source":316,"target":13},{"source":316,"target":700},{"source":316,"target":733},{"source":733,"target":700},{"source":351,"target":13},{"source":351,"target":700},{"source":351,"target":734},{"source":734,"target":700},{"source":386,"target":13},{"source":386,"target":700},{"source":386,"target":735},{"source":735,"target":700},{"source":365,"target":13},{"source":365,"target":700},{"source":365,"target":736},{"source":736,"target":700},{"source":372,"target":13},{"source":372,"target":700},{"source":372,"target":737},{"source":737,"target":700},{"source":392,"target":13},{"source":392,"target":700},{"source":392,"target":738},{"source":738,"target":700},{"source":400,"target":13},{"source":400,"target":700},{"source":400,"target":739},{"source":739,"target":700},{"source":701,"target":13},{"source":701,"target":316},{"source":701,"target":740},{"source":740,"target":316},{"source":702,"target":13},{"source":702,"target":316},{"source":702,"target":741},{"source":741,"target":316},{"source":703,"target":13},{"source":703,"target":316},{"source":703,"target":742},{"source":742,"target":316},{"source":704,"target":13},{"source":704,"target":316},{"source":704,"target":743},{"source":743,"target":316},{"source":705,"target":13},{"source":705,"target":316},{"source":705,"target":744},{"source":744,"target":316},{"source":706,"target":13},{"source":706,"target":316},{"source":706,"target":745},{"source":745,"target":316},{"source":707,"target":13},{"source":707,"target":316},{"source":707,"target":746},{"source":746,"target":316},{"source":708,"target":13},{"source":708,"target":316},{"source":708,"target":747},{"source":747,"target":316},{"source":709,"target":13},{"source":709,"target":316},{"source":709,"target":748},{"source":748,"target":316},{"source":710,"target":13},{"source":710,"target":316},{"source":710,"target":749},{"source":749,"target":316},{"source":711,"target":13},{"source":711,"target":316},{"source":711,"target":750},{"source":750,"target":316},{"source":712,"target":13},{"source":712,"target":316},{"source":712,"target":751},{"source":751,"target":316},{"source":713,"target":13},{"source":713,"target":351},{"source":713,"target":752},{"source":752,"target":351},{"source":714,"target":13},{"source":714,"target":351},{"source":714,"target":753},{"source":753,"target":351},{"source":715,"target":13},{"source":715,"target":365},{"source":715,"target":754},{"source":754,"target":365},{"source":716,"target":13},{"source":716,"target":365},{"source":716,"target":755},{"source":755,"target":365},{"source":717,"target":13},{"source":717,"target":365},{"source":717,"target":756},{"source":756,"target":365},{"source":718,"target":13},{"source":718,"target":365},{"source":718,"target":757},{"source":757,"target":365},{"source":719,"target":13},{"source":719,"target":379},{"source":719,"target":392},{"source":719,"target":758},{"source":719,"target":759},{"source":758,"target":379},{"source":759,"target":392},{"source":720,"target":13},{"source":720,"target":379},{"source":720,"target":392},{"source":720,"target":760},{"source":720,"target":761},{"source":760,"target":379},{"source":761,"target":392},{"source":721,"target":13},{"source":721,"target":386},{"source":721,"target":762},{"source":762,"target":386},{"source":722,"target":13},{"source":722,"target":386},{"source":722,"target":763},{"source":763,"target":386},{"source":723,"target":13},{"source":723,"target":386},{"source":723,"target":764},{"source":764,"target":386},{"source":724,"target":13},{"source":724,"target":392},{"source":724,"target":765},{"source":765,"target":392},{"source":725,"target":13},{"source":725,"target":400},{"source":725,"target":766},{"source":766,"target":400},{"source":726,"target":13},{"source":726,"target":392},{"source":726,"target":767},{"source":767,"target":392},{"source":727,"target":13},{"source":727,"target":400},{"source":727,"target":768},{"source":768,"target":400},{"source":728,"target":13},{"source":728,"target":372},{"source":728,"target":769},{"source":769,"target":372},{"source":729,"target":13},{"source":729,"target":372},{"source":729,"target":770},{"source":770,"target":372},{"source":730,"target":13},{"source":730,"target":372},{"source":730,"target":771},{"source":771,"target":372},{"source":14,"target":772},{"source":14,"target":612},{"source":14,"target":773},{"source":14,"target":774},{"source":14,"target":0},{"source":772,"target":14},{"source":772,"target":620},{"source":772,"target":114},{"source":772,"target":775},{"source":772,"target":776},{"source":775,"target":620},{"source":776,"target":114},{"source":612,"target":14},{"source":612,"target":28},{"source":612,"target":777},{"source":612,"target":778},{"source":777,"target":772},{"source":777,"target":779},{"source":777,"target":612},{"source":779,"target":772},{"source":778,"target":28},{"source":773,"target":14},{"source":773,"target":772},{"source":773,"target":780},{"source":780,"target":772},{"source":774,"target":14},{"source":774,"target":772},{"source":774,"target":781},{"source":781,"target":772},{"source":15,"target":32},{"source":15,"target":495},{"source":15,"target":105},{"source":15,"target":782},{"source":15,"target":783},{"source":15,"target":643},{"source":15,"target":784},{"source":15,"target":785},{"source":15,"target":786},{"source":15,"target":787},{"source":15,"target":0},{"source":32,"target":15},{"source":32,"target":293},{"source":32,"target":415},{"source":32,"target":788},{"source":32,"target":789},{"source":32,"target":790},{"source":32,"target":791},{"source":32,"target":792},{"source":32,"target":793},{"source":788,"target":104},{"source":788,"target":794},{"source":788,"target":32},{"source":794,"target":104},{"source":789,"target":32},{"source":789,"target":795},{"source":789,"target":32},{"source":795,"target":32},{"source":790,"target":32},{"source":790,"target":796},{"source":790,"target":32},{"source":796,"target":32},{"source":791,"target":67},{"source":791,"target":797},{"source":791,"target":32},{"source":797,"target":67},{"source":792,"target":293},{"source":793,"target":415},{"source":495,"target":15},{"source":495,"target":28},{"source":495,"target":798},{"source":495,"target":799},{"source":495,"target":800},{"source":798,"target":104},{"source":798,"target":801},{"source":798,"target":495},{"source":801,"target":104},{"source":799,"target":59},{"source":799,"target":802},{"source":799,"target":495},{"source":802,"target":59},{"source":800,"target":28},{"source":105,"target":15},{"source":105,"target":178},{"source":105,"target":803},{"source":803,"target":178},{"source":782,"target":15},{"source":782,"target":32},{"source":782,"target":804},{"source":782,"target":805},{"source":804,"target":105},{"source":804,"target":806},{"source":804,"target":782},{"source":806,"target":105},{"source":805,"target":32},{"source":783,"target":15},{"source":783,"target":782},{"source":783,"target":807},{"source":807,"target":782},{"source":643,"target":15},{"source":643,"target":782},{"source":643,"target":495},{"source":643,"target":416},{"source":643,"target":808},{"source":643,"target":809},{"source":643,"target":810},{"source":808,"target":782},{"source":809,"target":495},{"source":810,"target":416},{"source":784,"target":15},{"source":784,"target":32},{"source":784,"target":811},{"source":811,"target":32},{"source":785,"target":15},{"source":785,"target":32},{"source":785,"target":812},{"source":785,"target":813},{"source":812,"target":147},{"source":812,"target":814},{"source":812,"target":785},{"source":814,"target":147},{"source":813,"target":32},{"source":786,"target":15},{"source":786,"target":32},{"source":786,"target":815},{"source":786,"target":816},{"source":815,"target":817},{"source":815,"target":786},{"source":816,"target":32},{"source":787,"target":15},{"source":787,"target":32},{"source":787,"target":818},{"source":787,"target":819},{"source":818,"target":506},{"source":818,"target":820},{"source":818,"target":787},{"source":820,"target":506},{"source":819,"target":32},{"source":16,"target":821},{"source":16,"target":611},{"source":16,"target":822},{"source":16,"target":295},{"source":16,"target":113},{"source":16,"target":823},{"source":16,"target":824},{"source":16,"target":825},{"source":16,"target":826},{"source":16,"target":827},{"source":16,"target":828},{"source":16,"target":829},{"source":16,"target":830},{"source":16,"target":831},{"source":16,"target":832},{"source":16,"target":833},{"source":16,"target":834},{"source":16,"target":835},{"source":16,"target":836},{"source":16,"target":837},{"source":16,"target":838},{"source":16,"target":839},{"source":16,"target":840},{"source":16,"target":841},{"source":16,"target":842},{"source":16,"target":843},{"source":16,"target":844},{"source":16,"target":845},{"source":16,"target":0},{"source":821,"target":16},{"source":821,"target":28},{"source":821,"target":846},{"source":821,"target":847},{"source":846,"target":113},{"source":846,"target":848},{"source":846,"target":821},{"source":848,"target":113},{"source":847,"target":28},{"source":611,"target":16},{"source":611,"target":28},{"source":611,"target":849},{"source":611,"target":850},{"source":849,"target":113},{"source":849,"target":851},{"source":849,"target":611},{"source":851,"target":113},{"source":850,"target":28},{"source":822,"target":16},{"source":822,"target":28},{"source":822,"target":852},{"source":822,"target":853},{"source":852,"target":59},{"source":852,"target":854},{"source":852,"target":822},{"source":854,"target":59},{"source":853,"target":28},{"source":295,"target":16},{"source":295,"target":28},{"source":295,"target":855},{"source":855,"target":28},{"source":113,"target":16},{"source":113,"target":28},{"source":113,"target":856},{"source":856,"target":28},{"source":823,"target":16},{"source":823,"target":611},{"source":823,"target":857},{"source":857,"target":611},{"source":824,"target":16},{"source":824,"target":113},{"source":824,"target":822},{"source":824,"target":858},{"source":824,"target":859},{"source":824,"target":860},{"source":858,"target":59},{"source":858,"target":861},{"source":858,"target":824},{"source":861,"target":59},{"source":859,"target":113},{"source":860,"target":822},{"source":825,"target":16},{"source":825,"target":836},{"source":825,"target":862},{"source":862,"target":836},{"source":826,"target":16},{"source":826,"target":112},{"source":826,"target":113},{"source":826,"target":611},{"source":826,"target":664},{"source":826,"target":863},{"source":826,"target":864},{"source":826,"target":865},{"source":826,"target":866},{"source":863,"target":112},{"source":864,"target":113},{"source":865,"target":611},{"source":866,"target":664},{"source":827,"target":16},{"source":827,"target":611},{"source":827,"target":867},{"source":827,"target":868},{"source":867,"target":773},{"source":867,"target":869},{"source":867,"target":827},{"source":869,"target":773},{"source":868,"target":611},{"source":828,"target":16},{"source":828,"target":113},{"source":828,"target":821},{"source":828,"target":822},{"source":828,"target":870},{"source":828,"target":871},{"source":828,"target":872},{"source":828,"target":873},{"source":870,"target":113},{"source":870,"target":874},{"source":870,"target":828},{"source":874,"target":113},{"source":871,"target":113},{"source":872,"target":821},{"source":873,"target":822},{"source":829,"target":16},{"source":829,"target":836},{"source":829,"target":875},{"source":875,"target":836},{"source":830,"target":16},{"source":830,"target":823},{"source":830,"target":876},{"source":876,"target":823},{"source":831,"target":16},{"source":831,"target":845},{"source":831,"target":877},{"source":877,"target":845},{"source":832,"target":16},{"source":832,"target":113},{"source":832,"target":878},{"source":878,"target":113},{"source":833,"target":16},{"source":833,"target":113},{"source":833,"target":879},{"source":833,"target":880},{"source":879,"target":59},{"source":879,"target":881},{"source":879,"target":833},{"source":881,"target":59},{"source":880,"target":113},{"source":834,"target":16},{"source":834,"target":113},{"source":834,"target":821},{"source":834,"target":822},{"source":834,"target":882},{"source":834,"target":883},{"source":834,"target":884},{"source":834,"target":885},{"source":834,"target":886},{"source":882,"target":295},{"source":882,"target":887},{"source":882,"target":834},{"source":887,"target":295},{"source":883,"target":59},{"source":883,"target":888},{"source":883,"target":834},{"source":888,"target":59},{"source":884,"target":113},{"source":885,"target":821},{"source":886,"target":822},{"source":835,"target":16},{"source":835,"target":113},{"source":835,"target":821},{"source":835,"target":889},{"source":835,"target":890},{"source":835,"target":891},{"source":835,"target":892},{"source":889,"target":773},{"source":889,"target":893},{"source":889,"target":835},{"source":893,"target":773},{"source":890,"target":59},{"source":890,"target":894},{"source":890,"target":835},{"source":894,"target":59},{"source":891,"target":113},{"source":892,"target":821},{"source":836,"target":16},{"source":836,"target":113},{"source":836,"target":895},{"source":836,"target":896},{"source":895,"target":837},{"source":895,"target":897},{"source":895,"target":836},{"source":897,"target":837},{"source":896,"target":113},{"source":837,"target":16},{"source":837,"target":113},{"source":837,"target":821},{"source":837,"target":178},{"source":837,"target":898},{"source":837,"target":899},{"source":837,"target":900},{"source":898,"target":113},{"source":899,"target":821},{"source":900,"target":178},{"source":838,"target":16},{"source":838,"target":113},{"source":838,"target":901},{"source":838,"target":902},{"source":901,"target":903},{"source":901,"target":904},{"source":901,"target":838},{"source":904,"target":903},{"source":902,"target":113},{"source":839,"target":16},{"source":839,"target":823},{"source":839,"target":822},{"source":839,"target":905},{"source":839,"target":906},{"source":905,"target":823},{"source":906,"target":822},{"source":840,"target":16},{"source":840,"target":113},{"source":840,"target":907},{"source":840,"target":908},{"source":907,"target":59},{"source":907,"target":909},{"source":907,"target":840},{"source":909,"target":59},{"source":908,"target":113},{"source":841,"target":16},{"source":841,"target":113},{"source":841,"target":910},{"source":841,"target":911},{"source":841,"target":912},{"source":910,"target":823},{"source":910,"target":913},{"source":910,"target":841},{"source":913,"target":823},{"source":911,"target":59},{"source":911,"target":914},{"source":911,"target":841},{"source":914,"target":59},{"source":912,"target":113},{"source":842,"target":16},{"source":842,"target":113},{"source":842,"target":611},{"source":842,"target":915},{"source":842,"target":916},{"source":842,"target":917},{"source":915,"target":59},{"source":915,"target":918},{"source":915,"target":842},{"source":918,"target":59},{"source":916,"target":113},{"source":917,"target":611},{"source":843,"target":16},{"source":843,"target":113},{"source":843,"target":919},{"source":843,"target":920},{"source":919,"target":59},{"source":919,"target":921},{"source":919,"target":843},{"source":921,"target":59},{"source":920,"target":113},{"source":844,"target":16},{"source":844,"target":113},{"source":844,"target":611},{"source":844,"target":922},{"source":844,"target":923},{"source":844,"target":924},{"source":844,"target":925},{"source":922,"target":827},{"source":922,"target":926},{"source":922,"target":844},{"source":926,"target":827},{"source":923,"target":826},{"source":923,"target":927},{"source":923,"target":844},{"source":927,"target":826},{"source":924,"target":113},{"source":925,"target":611},{"source":845,"target":16},{"source":845,"target":113},{"source":845,"target":821},{"source":845,"target":928},{"source":845,"target":929},{"source":845,"target":930},{"source":928,"target":59},{"source":928,"target":931},{"source":928,"target":845},{"source":931,"target":59},{"source":929,"target":113},{"source":930,"target":821},{"source":17,"target":104},{"source":17,"target":81},{"source":17,"target":136},{"source":17,"target":128},{"source":17,"target":586},{"source":17,"target":147},{"source":17,"target":932},{"source":17,"target":933},{"source":17,"target":934},{"source":17,"target":935},{"source":17,"target":936},{"source":17,"target":937},{"source":17,"target":938},{"source":17,"target":939},{"source":17,"target":940},{"source":17,"target":0},{"source":104,"target":17},{"source":104,"target":28},{"source":104,"target":941},{"source":104,"target":942},{"source":104,"target":943},{"source":104,"target":944},{"source":941,"target":945},{"source":941,"target":104},{"source":941,"target":946},{"source":941,"target":947},{"source":941,"target":948},{"source":946,"target":949},{"source":946,"target":941},{"source":947,"target":104},{"source":947,"target":950},{"source":947,"target":941},{"source":950,"target":104},{"source":948,"target":951},{"source":948,"target":941},{"source":942,"target":952},{"source":942,"target":104},{"source":942,"target":953},{"source":942,"target":954},{"source":942,"target":955},{"source":953,"target":956},{"source":953,"target":942},{"source":954,"target":104},{"source":954,"target":957},{"source":954,"target":942},{"source":957,"target":104},{"source":955,"target":61},{"source":955,"target":958},{"source":955,"target":942},{"source":958,"target":61},{"source":943,"target":112},{"source":943,"target":959},{"source":943,"target":104},{"source":943,"target":960},{"source":959,"target":112},{"source":960,"target":28},{"source":960,"target":961},{"source":960,"target":943},{"source":961,"target":28},{"source":944,"target":28},{"source":81,"target":17},{"source":81,"target":28},{"source":81,"target":962},{"source":81,"target":963},{"source":962,"target":136},{"source":962,"target":964},{"source":962,"target":81},{"source":964,"target":136},{"source":963,"target":28},{"source":136,"target":17},{"source":136,"target":28},{"source":136,"target":965},{"source":136,"target":966},{"source":136,"target":967},{"source":136,"target":968},{"source":965,"target":104},{"source":965,"target":969},{"source":965,"target":136},{"source":969,"target":104},{"source":966,"target":104},{"source":966,"target":970},{"source":966,"target":136},{"source":966,"target":971},{"source":970,"target":104},{"source":971,"target":32},{"source":971,"target":972},{"source":971,"target":966},{"source":972,"target":32},{"source":967,"target":128},{"source":967,"target":973},{"source":967,"target":136},{"source":973,"target":128},{"source":968,"target":28},{"source":128,"target":17},{"source":128,"target":136},{"source":128,"target":415},{"source":128,"target":974},{"source":128,"target":975},{"source":128,"target":976},{"source":974,"target":40},{"source":974,"target":977},{"source":974,"target":128},{"source":977,"target":40},{"source":975,"target":136},{"source":976,"target":415},{"source":586,"target":17},{"source":586,"target":136},{"source":586,"target":34},{"source":586,"target":978},{"source":586,"target":979},{"source":586,"target":980},{"source":978,"target":128},{"source":978,"target":981},{"source":978,"target":586},{"source":981,"target":128},{"source":979,"target":136},{"source":980,"target":34},{"source":147,"target":17},{"source":147,"target":104},{"source":147,"target":136},{"source":147,"target":982},{"source":147,"target":983},{"source":147,"target":984},{"source":147,"target":985},{"source":982,"target":112},{"source":982,"target":986},{"source":982,"target":147},{"source":982,"target":987},{"source":986,"target":112},{"source":987,"target":28},{"source":987,"target":988},{"source":987,"target":982},{"source":988,"target":28},{"source":983,"target":99},{"source":983,"target":989},{"source":983,"target":147},{"source":989,"target":99},{"source":984,"target":104},{"source":985,"target":136},{"source":932,"target":17},{"source":932,"target":147},{"source":932,"target":990},{"source":990,"target":147},{"source":933,"target":17},{"source":933,"target":147},{"source":933,"target":991},{"source":991,"target":147},{"source":934,"target":17},{"source":934,"target":147},{"source":934,"target":992},{"source":992,"target":147},{"source":935,"target":17},{"source":935,"target":147},{"source":935,"target":993},{"source":993,"target":147},{"source":936,"target":17},{"source":936,"target":147},{"source":936,"target":994},{"source":994,"target":147},{"source":937,"target":17},{"source":937,"target":147},{"source":937,"target":995},{"source":995,"target":147},{"source":938,"target":17},{"source":938,"target":147},{"source":938,"target":996},{"source":996,"target":147},{"source":939,"target":17},{"source":939,"target":147},{"source":939,"target":997},{"source":997,"target":147},{"source":940,"target":17},{"source":940,"target":147},{"source":940,"target":998},{"source":998,"target":147},{"source":18,"target":620},{"source":18,"target":903},{"source":18,"target":999},{"source":18,"target":0},{"source":620,"target":18},{"source":620,"target":178},{"source":620,"target":81},{"source":620,"target":61},{"source":620,"target":105},{"source":620,"target":415},{"source":620,"target":1000},{"source":620,"target":1001},{"source":620,"target":1002},{"source":620,"target":1003},{"source":620,"target":1004},{"source":620,"target":1005},{"source":1000,"target":1006},{"source":1000,"target":620},{"source":1001,"target":178},{"source":1002,"target":81},{"source":1003,"target":61},{"source":1004,"target":105},{"source":1005,"target":415},{"source":903,"target":18},{"source":903,"target":620},{"source":903,"target":488},{"source":903,"target":295},{"source":903,"target":114},{"source":903,"target":1007},{"source":903,"target":1008},{"source":903,"target":1009},{"source":903,"target":1010},{"source":903,"target":1011},{"source":1007,"target":999},{"source":1007,"target":1012},{"source":1007,"target":903},{"source":1012,"target":999},{"source":1008,"target":620},{"source":1009,"target":488},{"source":1010,"target":295},{"source":1011,"target":114},{"source":999,"target":18},{"source":999,"target":105},{"source":999,"target":61},{"source":999,"target":488},{"source":999,"target":1013},{"source":999,"target":1014},{"source":999,"target":1015},{"source":999,"target":1016},{"source":1013,"target":1017},{"source":1013,"target":999},{"source":1014,"target":105},{"source":1015,"target":61},{"source":1016,"target":488},{"source":19,"target":1018},{"source":19,"target":1019},{"source":19,"target":1020},{"source":19,"target":1021},{"source":19,"target":1022},{"source":19,"target":1023},{"source":19,"target":1024},{"source":19,"target":1025},{"source":19,"target":1026},{"source":19,"target":1027},{"source":19,"target":1028},{"source":19,"target":1029},{"source":19,"target":224},{"source":19,"target":1030},{"source":19,"target":1031},{"source":19,"target":1032},{"source":19,"target":1033},{"source":19,"target":0},{"source":1018,"target":19},{"source":1018,"target":1034},{"source":1034,"target":1025},{"source":1034,"target":1035},{"source":1034,"target":1018},{"source":1035,"target":1025},{"source":1019,"target":19},{"source":1019,"target":1036},{"source":1036,"target":1020},{"source":1036,"target":1037},{"source":1036,"target":1019},{"source":1037,"target":1020},{"source":1020,"target":19},{"source":1020,"target":1038},{"source":1020,"target":1039},{"source":1038,"target":1040},{"source":1038,"target":1020},{"source":1039,"target":1025},{"source":1039,"target":1041},{"source":1039,"target":1020},{"source":1041,"target":1025},{"source":1021,"target":19},{"source":1021,"target":1042},{"source":1021,"target":1043},{"source":1042,"target":1022},{"source":1042,"target":1044},{"source":1042,"target":1021},{"source":1044,"target":1022},{"source":1043,"target":233},{"source":1043,"target":1045},{"source":1043,"target":1021},{"source":1045,"target":233},{"source":1022,"target":19},{"source":1022,"target":1046},{"source":1046,"target":1023},{"source":1046,"target":1047},{"source":1046,"target":1022},{"source":1047,"target":1023},{"source":1023,"target":19},{"source":1023,"target":1048},{"source":1023,"target":1049},{"source":1048,"target":1050},{"source":1048,"target":1023},{"source":1049,"target":1051},{"source":1049,"target":1023},{"source":1024,"target":19},{"source":1024,"target":1052},{"source":1024,"target":1053},{"source":1052,"target":1054},{"source":1052,"target":1024},{"source":1053,"target":1055},{"source":1053,"target":1024},{"source":1025,"target":19},{"source":1026,"target":19},{"source":1026,"target":1019},{"source":1026,"target":111},{"source":1026,"target":112},{"source":1026,"target":1056},{"source":1026,"target":1057},{"source":1026,"target":1058},{"source":1056,"target":1019},{"source":1057,"target":111},{"source":1058,"target":112},{"source":1027,"target":19},{"source":1027,"target":1019},{"source":1027,"target":611},{"source":1027,"target":113},{"source":1027,"target":1059},{"source":1027,"target":1060},{"source":1027,"target":1061},{"source":1059,"target":1019},{"source":1060,"target":611},{"source":1061,"target":113},{"source":1028,"target":19},{"source":1028,"target":1018},{"source":1028,"target":111},{"source":1028,"target":112},{"source":1028,"target":1062},{"source":1028,"target":1063},{"source":1028,"target":1064},{"source":1062,"target":1018},{"source":1063,"target":111},{"source":1064,"target":112},{"source":1029,"target":19},{"source":1029,"target":1018},{"source":1029,"target":611},{"source":1029,"target":113},{"source":1029,"target":1065},{"source":1029,"target":1066},{"source":1029,"target":1067},{"source":1065,"target":1018},{"source":1066,"target":611},{"source":1067,"target":113},{"source":224,"target":19},{"source":224,"target":1068},{"source":1068,"target":1025},{"source":1068,"target":1069},{"source":1068,"target":224},{"source":1069,"target":1025},{"source":1030,"target":19},{"source":1030,"target":224},{"source":1030,"target":293},{"source":1030,"target":1070},{"source":1030,"target":1071},{"source":1070,"target":224},{"source":1071,"target":293},{"source":1031,"target":19},{"source":1031,"target":1025},{"source":1031,"target":1072},{"source":1031,"target":1073},{"source":1072,"target":1025},{"source":1072,"target":1074},{"source":1072,"target":1031},{"source":1074,"target":1025},{"source":1073,"target":1025},{"source":1032,"target":19},{"source":1032,"target":1031},{"source":1032,"target":1075},{"source":1075,"target":1031},{"source":1033,"target":19},{"source":1033,"target":1025},{"source":1033,"target":1076},{"source":1033,"target":1077},{"source":1033,"target":1078},{"source":1076,"target":1079},{"source":1076,"target":1033},{"source":1077,"target":1024},{"source":1077,"target":1080},{"source":1077,"target":1033},{"source":1080,"target":1024},{"source":1078,"target":1025}],"multigraph":true}