java
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
ArrayInstantiation
ArrayInstantiationBySize
sizes
ArrayInstantiationByValues
arrayInitializer
ArrayInstantiationByValuesUntyped
ArrayInstantiationByValuesTyped
ArraySelector
position
classifiers
Classifier
getAllSuperClassifiers
ConcreteClassifier
getInnerClassifiers
getAllInnerClassifiers
getSuperTypeReferences
getAllMembers
context
Implementor
implements
Class
getAllSuperClassifiers
getSuperClass
unWrapPrimitiveType
extends
defaultExtends
Interface
getAllSuperClassifiers
extends
defaultExtends
Enumeration
getAllSuperClassifiers
getContainedConstant
name
constants
Annotation
getAllSuperClassifiers
AnonymousClass
getAllSuperClassifiers
getSuperClassifier
getAllMembers
context
commons
Commentable
getConcreteClassifier
name
getConcreteClassifierProxy
name
getConcreteClassifiers
packageName
classifierQuery
getConcreteClassifierProxies
packageName
classifierQuery
getLibClass
name
getLibInterface
name
getClassClass
getObjectClass
getStringClass
getAnnotationInterface
getContainingAnnotationInstance
getContainingAnonymousClass
getContainingConcreteClassifier
getContainingCompilationUnit
getContainingPackageName
getContainingContainerName
getParentConcreteClassifier
getParentByEType
type
getFirstChildByEType
type
getParentByType
T
type
getFirstChildByType
T
type
getChildrenByEType
type
getChildrenByType
T
type
getComments
addBeforeContainingStatement
statementToAdd
addAfterContainingStatement
statementToAdd
layoutInformations
NamedElement
name
NamespaceAwareElement
getNamespacesAsString
getClassifierAtNamespaces
namespaces
containers
JavaRoot
getClassifiersInSamePackage
CompilationUnit
getContainedClassifier
name
getClassifiersInSamePackage
getContainedClass
getContainedInterface
getContainedAnnotation
getContainedEnumeration
classifiers
Package
getNamespacesAsString
getClassifiersInSamePackage
compilationUnits
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
getMethods
removeMethods
name
getMembersByName
name
createField
name
qualifiedTypeName
getFields
getConstructors
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
removeModifier
modifierType
makePublic
makePrivate
makeProtected
getModifiers
removeAllModifiers
hasModifier
type
isPublic
isPrivate
isProtected
addModifier
newModifier
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
PackageReference
subpackages
statements
StatementContainer
statement
StatementListContainer
getLocalVariable
name
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
setTarget
type
getBoundTarget
reference
getPureClassifierReference
ClassifierReference
target
NamespaceClassifierReference
classifierReferences
PrimitiveType
getAllMembers
context
wrapPrimitiveType
Boolean
Byte
Char
Double
Float
Int
Long
Short
Void
variables
Variable
getArrayDimension
createMethodCallStatement
methodName
arguments
createMethodCall
methodName
arguments
LocalVariable
additionalLocalVariables
AdditionalLocalVariable
getArrayDimension
<?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" xmi:id="_WosmsNz1Ed2bJ_pQViWxFg" name="java" nsURI="http://www.emftext.org/java"
    nsPrefix="java">
  <eSubpackages xmi:id="_Wosmsdz1Ed2bJ_pQViWxFg" name="annotations" nsURI="http://www.emftext.org/java/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="#_Wosms9z1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wosms9z1Ed2bJ_pQViWxFg" 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" xmi:id="_Wosmttz1Ed2bJ_pQViWxFg"
          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="#_Wosmt9z1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wosmt9z1Ed2bJ_pQViWxFg" name="AnnotationAttributeSetting"
        eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_WosmuNz1Ed2bJ_pQViWxFg"
          name="attribute" lowerBound="1" eType="#//members/InterfaceMethod"/>
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wosmudz1Ed2bJ_pQViWxFg"
          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" xmi:id="_Wosmv9z1Ed2bJ_pQViWxFg" name="AnnotationAttribute"
        eSuperTypes="#//members/InterfaceMethod">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_WosmwNz1Ed2bJ_pQViWxFg"
          name="defaultValue" lowerBound="1" eType="#_Wo2YDNz1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
  </eSubpackages>
  <eSubpackages name="arrays" nsURI="http://www.emftext.org/java/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="ArrayInstantiation" abstract="true"
        eSuperTypes="#_Wo2YDNz1Ed2bJ_pQViWxFg #//references/Reference"/>
    <eClassifiers xsi:type="ecore:EClass" name="ArrayInstantiationBySize" eSuperTypes="#//arrays/ArrayInstantiation #_Wo2ZP9z1Ed2bJ_pQViWxFg #//arrays/ArrayTypeable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="sizes" lowerBound="1"
          upperBound="-1" eType="#_Wo2YDNz1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ArrayInstantiationByValues" abstract="true"
        eSuperTypes="#//arrays/ArrayInstantiation">
      <eStructuralFeatures xsi:type="ecore:EReference" name="arrayInitializer" lowerBound="1"
          eType="#//arrays/ArrayInitializer" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ArrayInstantiationByValuesUntyped"
        eSuperTypes="#//arrays/ArrayInstantiationByValues"/>
    <eClassifiers xsi:type="ecore:EClass" name="ArrayInstantiationByValuesTyped" eSuperTypes="#//arrays/ArrayInstantiationByValues #_Wo2ZP9z1Ed2bJ_pQViWxFg #//arrays/ArrayTypeable"/>
    <eClassifiers xsi:type="ecore:EClass" name="ArraySelector" eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="position" eType="#_Wo2YDNz1Ed2bJ_pQViWxFg"
          containment="true"/>
    </eClassifiers>
  </eSubpackages>
  <eSubpackages name="classifiers" nsURI="http://www.emftext.org/java/classifiers"
      nsPrefix="classifiers">
    <eClassifiers xsi:type="ecore:EClass" name="Classifier" abstract="true" eSuperTypes="#_Wo2ZO9z1Ed2bJ_pQViWxFg #//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();"/>
          <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 #_Wo2YzNz1Ed2bJ_pQViWxFg #//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( org.emftext.language.java.JavaUniquePathConstructor.JAVA_CLASSIFIER_PATHMAP.length(), &#xA;&#x9;&#x9;&#x9; uriString.length() - &quot;.java&quot;.length()) + &quot;$&quot;;&#xA;&#x9; return getConcreteClassifierProxies(fullName, &quot;*&quot;);&#xA;}&#xA;else {&#xA;&#x9;java.lang.String suffix = &quot;&quot;;&#xA;&#x9;org.emftext.language.java.classifiers.ConcreteClassifier containingClass = this;&#xA;&#x9;while (containingClass.eContainer() instanceof org.emftext.language.java.classifiers.ConcreteClassifier) {&#xA;&#x9;&#x9;containingClass = ( org.emftext.language.java.classifiers.ConcreteClassifier) containingClass.eContainer();&#xA;&#x9;&#x9;suffix = containingClass.getName() + org.emftext.language.java.JavaUniquePathConstructor.CLASSIFIER_SEPARATOR + suffix;&#xA;&#x9;}&#xA;&#x9;if (containingClass.eContainer() instanceof org.emftext.language.java.containers.CompilationUnit) {&#xA;&#x9;&#x9;org.emftext.language.java.containers.CompilationUnit compilationUnit = ( org.emftext.language.java.containers.CompilationUnit) containingClass.eContainer();&#xA;&#x9;    java.lang.String fullName = compilationUnit.getNamespacesAsString() + suffix + &#xA;&#x9;    &#x9;getName() + org.emftext.language.java.JavaUniquePathConstructor.CLASSIFIER_SEPARATOR;&#xA;&#x9;    return getConcreteClassifierProxies(fullName, &quot;*&quot;);&#xA;&#x9;}&#xA;}&#xA;&#xA;//for classes declared locally inside methods that are not registered in the class path&#xA;org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.classifiers.ConcreteClassifier> result = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.classifiers.ConcreteClassifier>();&#xA;//can not call ClassifierUtil.getAllMembers, because it will try to call this method!&#xA;for( org.emftext.language.java.members.Member member : getMembers()) {&#xA;&#x9;if(member instanceof org.emftext.language.java.classifiers.ConcreteClassifier) {&#xA;&#x9;&#x9;result.add(( org.emftext.language.java.classifiers.ConcreteClassifier) member);&#xA;&#x9;}&#xA;}&#xA;for( org.emftext.language.java.classifiers.ConcreteClassifier superClassifier : getAllSuperClassifiers()) {&#xA;&#x9;for( org.emftext.language.java.members.Member member : superClassifier.getMembers()) {&#xA;&#x9;&#x9;if(member instanceof org.emftext.language.java.classifiers.ConcreteClassifier) {&#xA;&#x9;&#x9;&#x9;result.add(( org.emftext.language.java.classifiers.ConcreteClassifier) member);&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;}&#xA;&#xA;return result;"/>
          <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; org.emftext.language.java.classifiers.ConcreteClassifier> innerClassifierList = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.classifiers.ConcreteClassifier>();&#xA;&#xA;innerClassifierList.addAll(getInnerClassifiers());&#xA;&#xA;for ( org.emftext.language.java.classifiers.ConcreteClassifier superClassifier : getAllSuperClassifiers()) {&#xA;&#x9;org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.classifiers.ConcreteClassifier> superInnerList = superClassifier&#xA;&#x9;&#x9;&#x9;.getInnerClassifiers();&#xA;&#xA;&#x9;for ( org.emftext.language.java.classifiers.ConcreteClassifier superInner : superInnerList) {&#xA;&#x9;&#x9;if (superInner.eIsProxy()) {&#xA;&#x9;&#x9;&#x9;superInner = ( org.emftext.language.java.classifiers.ConcreteClassifier) org.eclipse.emf.ecore.util.EcoreUtil.resolve(&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;superInner, this);&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;if (!superInner.isHidden(this)) {&#xA;&#x9;&#x9;&#x9;innerClassifierList.add(superInner);&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;}&#x9;&#xA;return innerClassifierList;"/>
          <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; org.emftext.language.java.types.ClassifierReference> typeReferenceList = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.types.ClassifierReference>();&#xA;if(this == null) {&#xA;&#x9;return typeReferenceList;&#xA;}&#xA;&#xA;if (this instanceof org.emftext.language.java.classifiers.Class) {&#xA;&#x9;org.emftext.language.java.classifiers.Class javaClass = ( org.emftext.language.java.classifiers.Class) this;&#xA;&#x9;if (javaClass.getExtends() != null) {&#xA;&#x9;&#x9;org.emftext.language.java.types.ClassifierReference classifierReference = javaClass.getExtends().getPureClassifierReference();&#xA;&#x9;&#x9;typeReferenceList.add(classifierReference);&#xA;&#x9;&#x9;org.emftext.language.java.classifiers.ConcreteClassifier target = ( org.emftext.language.java.classifiers.ConcreteClassifier) classifierReference.getTarget();&#xA;&#x9;&#x9;if (!target.equals(getObjectClass())) {&#xA;&#x9;&#x9;&#x9;typeReferenceList.addAll(target.getSuperTypeReferences());&#xA;&#x9;&#x9;}&#xA;&#x9;}&#x9;&#xA;&#x9;for( org.emftext.language.java.types.TypeReference interfaceReference : javaClass.getImplements()) {&#xA;&#x9;&#x9;org.emftext.language.java.types.ClassifierReference classifierReference = interfaceReference.getPureClassifierReference();&#xA;&#x9;&#x9;typeReferenceList.add(classifierReference);&#xA;&#x9;&#x9;typeReferenceList.addAll((( org.emftext.language.java.classifiers.ConcreteClassifier) classifierReference.getTarget()).getSuperTypeReferences());&#xA;&#x9;}&#xA;} else if (this instanceof org.emftext.language.java.classifiers.Interface) {&#xA;&#x9;org.emftext.language.java.classifiers.Interface javaInterface = ( org.emftext.language.java.classifiers.Interface) this;&#xA;&#x9;for( org.emftext.language.java.types.TypeReference interfaceReference : javaInterface.getExtends()) {&#xA;&#x9;&#x9;org.emftext.language.java.types.ClassifierReference classifierReference = interfaceReference.getPureClassifierReference();&#xA;&#x9;&#x9;typeReferenceList.add(classifierReference);&#xA;&#x9;&#x9;typeReferenceList.addAll((( org.emftext.language.java.classifiers.ConcreteClassifier) classifierReference.getTarget()).getSuperTypeReferences());&#xA;&#x9;}&#xA;}&#xA;return typeReferenceList;"/>
          <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; org.emftext.language.java.members.Member> memberList = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.members.Member>();&#xA;&#xA;org.emftext.language.java.classifiers.ConcreteClassifier concreteClassifier = ( org.emftext.language.java.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;&#xA;for ( org.emftext.language.java.classifiers.ConcreteClassifier superClassifier : getAllSuperClassifiers()) {&#xA;&#x9;for( org.emftext.language.java.members.Member member : superClassifier.getMembers()) {&#xA;&#x9;&#x9;if(member instanceof org.emftext.language.java.modifiers.AnnotableAndModifiable) {&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;org.emftext.language.java.modifiers.AnnotableAndModifiable modifiable = ( org.emftext.language.java.modifiers.AnnotableAndModifiable) member;&#xA;&#xA;&#x9;&#x9;&#x9;if(!modifiable.isHidden(context)) {&#xA;&#x9;&#x9;&#x9;&#x9;memberList.add(member);&#xA;&#x9;&#x9;&#x9;}&#xA;&#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;"/>
          <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>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Implementor" abstract="true" eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="implements" upperBound="-1"
          eType="#_Wo2ZPdz1Ed2bJ_pQViWxFg" 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; org.emftext.language.java.classifiers.ConcreteClassifier> result = &#xA;&#x9;new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.classifiers.ConcreteClassifier>();&#xA;&#x9;&#x9;&#x9;&#xA;//collects all superclasses first&#xA;org.emftext.language.java.classifiers.Class superClass = this;&#xA;while (superClass != null &amp;&amp; !superClass.eIsProxy() &amp;&amp; &#xA;&#x9;&#x9;!superClass.equals(getObjectClass())) {&#xA;&#x9;superClass = superClass.getSuperClass();&#xA;&#x9;if (superClass != null) {&#xA;&#x9;&#x9;result.add(superClass);&#xA;&#x9;}&#xA;}&#xA;&#xA;//collect all implemented interfaces&#xA;for ( org.emftext.language.java.types.TypeReference typeArg : this.getImplements()) {&#xA;&#x9;org.emftext.language.java.classifiers.ConcreteClassifier superInterface = ( org.emftext.language.java.classifiers.ConcreteClassifier) typeArg.getTarget();&#xA;&#x9;if (superInterface != null) {&#xA;&#x9;&#x9;result.add(superInterface);&#xA;&#x9;&#x9;if (superInterface instanceof org.emftext.language.java.classifiers.Interface) {&#xA;&#x9;&#x9;&#x9;result.addAll((( org.emftext.language.java.classifiers.Interface)superInterface).getAllSuperClassifiers());&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;}&#xA;&#xA;//collect all implemented interfaces of super classes&#xA;superClass = this.getSuperClass();&#x9;&#xA;if (superClass != null &amp;&amp; !superClass.eIsProxy() &amp;&amp; &#xA;&#x9;&#x9;!superClass.equals(getObjectClass())) {&#xA;&#x9;result.addAll(superClass.getAllSuperClassifiers());&#xA;}&#x9;&#xA;&#xA;return result;"/>
          <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="org.emftext.language.java.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;org.emftext.language.java.types.Type result = superClassReference.getTarget();&#xA;if (result instanceof org.emftext.language.java.classifiers.Class) {&#xA;&#x9;return ( org.emftext.language.java.classifiers.Class) result;&#xA;}&#xA;return null;"/>
          <details key="documentation" value="&#xA; @param this&#xA; @return the direct super class&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="unWrapPrimitiveType" eType="#_Wo2ZR9z1Ed2bJ_pQViWxFg">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="if (getLibClass(&quot;Boolean&quot;).equals(this)) {&#xA;&#x9;return org.emftext.language.java.types.TypesFactory.eINSTANCE.createBoolean();&#xA;}&#xA;if (getLibClass(&quot;Byte&quot;).equals(this)) {&#xA;&#x9;return org.emftext.language.java.types.TypesFactory.eINSTANCE.createByte();&#xA;}&#xA;if (getLibClass(&quot;Character&quot;).equals(this)) {&#xA;&#x9;return org.emftext.language.java.types.TypesFactory.eINSTANCE.createChar();&#xA;}&#xA;if (getLibClass(&quot;Float&quot;).equals(this)) {&#xA;&#x9;return org.emftext.language.java.types.TypesFactory.eINSTANCE.createFloat();&#xA;}&#xA;if (getLibClass(&quot;Double&quot;).equals(this)) {&#xA;&#x9;return org.emftext.language.java.types.TypesFactory.eINSTANCE.createDouble();&#xA;}&#xA;if (getLibClass(&quot;Integer&quot;).equals(this)) {&#xA;&#x9;return org.emftext.language.java.types.TypesFactory.eINSTANCE.createInt();&#xA;}&#xA;if (getLibClass(&quot;Long&quot;).equals(this)) {&#xA;&#x9;return org.emftext.language.java.types.TypesFactory.eINSTANCE.createLong();&#xA;}&#xA;if (getLibClass(&quot;Short&quot;).equals(this)) {&#xA;&#x9;return org.emftext.language.java.types.TypesFactory.eINSTANCE.createShort();&#xA;}&#xA;if (getLibClass(&quot;Void&quot;).equals(this)) {&#xA;&#x9;return org.emftext.language.java.types.TypesFactory.eINSTANCE.createVoid();&#xA;}&#xA;return null;"/>
          <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="#_Wo2ZPdz1Ed2bJ_pQViWxFg"
          containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="defaultExtends" eType="#_Wo2ZPdz1Ed2bJ_pQViWxFg"
          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; org.emftext.language.java.classifiers.ConcreteClassifier> result = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.classifiers.ConcreteClassifier>();&#xA;&#xA;for ( org.emftext.language.java.types.TypeReference typeArg : this.getExtends()) {&#xA;&#x9;//use ConcreteClassifier instead of Interface because java.lang.Object can also act as implemented interface&#xA;&#x9;org.emftext.language.java.classifiers.ConcreteClassifier superInterface = ( org.emftext.language.java.classifiers.ConcreteClassifier) typeArg.getTarget();&#xA;&#x9;if (superInterface != null) {&#xA;&#x9;&#x9;result.add(superInterface);&#xA;&#x9;&#x9;if (superInterface instanceof org.emftext.language.java.classifiers.Interface) {&#xA;&#x9;&#x9;&#x9;result.addAll((( org.emftext.language.java.classifiers.Interface)superInterface).getAllSuperClassifiers());&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;}&#xA;&#xA;for ( org.emftext.language.java.types.TypeReference typeArg : this.getDefaultExtends()) {&#xA;&#x9;//use ConcreteClassifier instead of Interface because java.lang.Object can also act as implemented interface&#xA;&#x9;org.emftext.language.java.classifiers.ConcreteClassifier superInterface = ( org.emftext.language.java.classifiers.ConcreteClassifier) typeArg.getTarget();&#xA;&#x9;if (superInterface != null) {&#xA;&#x9;&#x9;result.add(superInterface);&#xA;&#x9;&#x9;if (superInterface instanceof org.emftext.language.java.classifiers.Interface) {&#xA;&#x9;&#x9;&#x9;result.addAll((( org.emftext.language.java.classifiers.Interface)superInterface).getAllSuperClassifiers());&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;}&#xA;return result;"/>
          <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="#_Wo2ZPdz1Ed2bJ_pQViWxFg" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="defaultExtends" upperBound="-1"
          eType="#_Wo2ZPdz1Ed2bJ_pQViWxFg" 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; org.emftext.language.java.classifiers.ConcreteClassifier> result = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.classifiers.ConcreteClassifier>();&#xA;&#xA;//enumerations inherit from java.lang.Enum&#xA;org.emftext.language.java.classifiers.Class enumClass = getLibClass(&quot;Enum&quot;);&#xA;result.add(enumClass);&#xA;result.addAll(enumClass.getAllSuperClassifiers());&#xA;&#xA;//collect all implemented interfaces&#xA;for ( org.emftext.language.java.types.TypeReference typeArg : this.getImplements()) {&#xA;&#x9;org.emftext.language.java.classifiers.ConcreteClassifier superInterface = ( org.emftext.language.java.classifiers.ConcreteClassifier) typeArg.getTarget();&#xA;&#x9;if (superInterface != null) {&#xA;&#x9;&#x9;result.add(superInterface);&#xA;&#x9;&#x9;if (superInterface instanceof org.emftext.language.java.classifiers.Interface) {&#xA;&#x9;&#x9;&#x9;result.addAll((( org.emftext.language.java.classifiers.Interface)superInterface).getAllSuperClassifiers());&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;}&#xA;&#xA;return result;"/>
          <details key="documentation" value="&#xA; @return all interfaces extended by this enumeration.&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getContainedConstant" eType="#//members/EnumConstant">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="for( org.emftext.language.java.members.EnumConstant constant : getConstants()) {&#xA;&#x9;if (name.equals(constant.getName())) {&#xA;&#x9;&#x9;return constant;&#xA;&#x9;}&#xA; &#x9;&#x9;}&#xA;return null;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
        <eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      </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; org.emftext.language.java.classifiers.ConcreteClassifier> result = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.classifiers.ConcreteClassifier>();&#xA;result.add(getAnnotationInterface());&#xA;return result;"/>
          <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="#_Wo2ZO9z1Ed2bJ_pQViWxFg #//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; org.emftext.language.java.classifiers.ConcreteClassifier> superClassifierList = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.classifiers.ConcreteClassifier>();&#xA;&#xA;org.emftext.language.java.classifiers.ConcreteClassifier superClassifier = getSuperClassifier();&#xA;&#xA;if (superClassifier != null) {&#xA;&#x9;superClassifierList.add(superClassifier);&#xA;&#x9;superClassifierList.addAll(superClassifier.getAllSuperClassifiers());&#xA;}&#xA;else {&#xA;&#x9;superClassifierList.add(getObjectClass());&#xA;}&#xA;return superClassifierList;"/>
          <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="org.emftext.language.java.instantiations.NewConstructorCall ncCall = null;&#xA;if (this.eContainer() instanceof org.emftext.language.java.instantiations.NewConstructorCall) {&#xA;&#x9;ncCall = ( org.emftext.language.java.instantiations.NewConstructorCall) this.eContainer();&#xA;&#x9;org.emftext.language.java.classifiers.ConcreteClassifier superClassifier = ( org.emftext.language.java.classifiers.ConcreteClassifier) ncCall.getTypeReference().getTarget();&#xA;&#x9;return superClassifier;&#xA;}&#xA;else if (this.eContainer() instanceof org.emftext.language.java.members.EnumConstant) {&#xA;&#x9;if (this.eContainer().eContainer() instanceof org.emftext.language.java.classifiers.Enumeration) {&#xA;&#x9;&#x9;return ( org.emftext.language.java.classifiers.Enumeration) this.eContainer().eContainer();&#xA;&#x9;}&#xA;}&#xA;return null;"/>
          <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; org.emftext.language.java.members.Member> memberList = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.members.Member>();&#xA;memberList.addAll(this.getMembers());&#xA;memberList.addAll(this.getDefaultMembers());&#xA;&#xA;org.emftext.language.java.instantiations.NewConstructorCall ncCall = null;&#xA;if (this.eContainer() instanceof org.emftext.language.java.instantiations.NewConstructorCall) {&#xA;&#x9;ncCall = ( org.emftext.language.java.instantiations.NewConstructorCall) this.eContainer();;&#xA;}&#xA;if (ncCall == null) {&#xA;&#x9;return memberList;&#xA;}&#xA;else {&#xA;&#x9;org.emftext.language.java.classifiers.ConcreteClassifier classifier = ( org.emftext.language.java.classifiers.ConcreteClassifier) ncCall.getTypeReference().getTarget();&#xA;&#x9;if (classifier != null) {&#xA;&#x9;&#x9;org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.members.Member> superMemberList = classifier.getAllMembers(context);&#xA;&#x9;&#x9;for( org.emftext.language.java.members.Member superMember : superMemberList) {&#xA;&#x9;&#x9;&#x9;//exclude private members&#xA;&#x9;&#x9;&#x9;if(superMember instanceof org.emftext.language.java.modifiers.AnnotableAndModifiable) {&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;if (superMember.eIsProxy()) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;superMember = ( org.emftext.language.java.members.Member) org.eclipse.emf.ecore.util.EcoreUtil.resolve(superMember, this);&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;org.emftext.language.java.modifiers.AnnotableAndModifiable modifiable = ( org.emftext.language.java.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;}&#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;}"/>
          <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/java/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 ( org.emftext.language.java.classifiers.ConcreteClassifier) org.eclipse.emf.ecore.util.EcoreUtil.resolve(&#xA;&#x9;org.emftext.language.java.JavaClasspath.get(this).getClassifier(name), this);"/>
          <details key="documentation" value="&#xA; Finds the &lt;code>org.emftext.language.java.classifiers.ConcreteClassifier&lt;/code>&#xA; representing the class with the given classified name.&#xA; &#xA; @param name classified name of the ConcreteClassifier&#xA;"/>
        </eAnnotations>
        <eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      </eOperations>
      <eOperations name="getConcreteClassifierProxy" eType="#//classifiers/ConcreteClassifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="return ( org.emftext.language.java.classifiers.ConcreteClassifier) org.emftext.language.java.JavaClasspath.get(this).getClassifier(name);"/>
          <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; org.emftext.language.java.classifiers.ConcreteClassifier> result = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.classifiers.ConcreteClassifier>();&#xA;for( org.eclipse.emf.ecore.EObject classifier : org.emftext.language.java.JavaClasspath.get(this).getClassifiers(packageName, classifierQuery)) {&#xA;&#x9;result.add(( org.emftext.language.java.classifiers.ConcreteClassifier) org.eclipse.emf.ecore.util.EcoreUtil.resolve(classifier, this));&#xA;}&#xA;return result;"/>
          <details key="documentation" value="&#xA; Finds all &lt;code>org.emftext.language.java.classifiers.ConcreteClassifier&lt;/code>&#xA; representing the classes in the given package or a single class from that package.&#xA; &#xA; @param packageName name of the package&#xA; for all classifiers or name of a single classifier&#xA;"/>
        </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="getConcreteClassifierProxies" 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; org.emftext.language.java.classifiers.ConcreteClassifier> result = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.classifiers.ConcreteClassifier>();&#xA;for( org.eclipse.emf.ecore.EObject classifier : org.emftext.language.java.JavaClasspath.get(this).getClassifiers(packageName, classifierQuery)) {&#xA;&#x9;result.add(( org.emftext.language.java.classifiers.ConcreteClassifier)classifier);&#xA;}&#xA;return result;"/>
          <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="org.emftext.language.java.classifiers.Class classClass = ( org.emftext.language.java.classifiers.Class) getConcreteClassifierProxy(&#xA;&#x9;&#x9;&quot;java.lang.&quot; + name);&#xA;org.eclipse.emf.ecore.EObject resolved = ( org.emftext.language.java.classifiers.ConcreteClassifier) org.eclipse.emf.ecore.util.EcoreUtil.resolve(classClass, this);&#xA;if (resolved instanceof org.emftext.language.java.classifiers.Class) {&#xA;&#x9;return ( org.emftext.language.java.classifiers.Class) resolved;&#xA;}&#xA;return null;"/>
          <details key="documentation" value="&#xA; Finds the &lt;code>org.emftext.language.java.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="org.emftext.language.java.classifiers.ConcreteClassifier interfaceClass = getConcreteClassifierProxy(&#xA;&#x9;&#x9;&quot;java.lang.&quot; + name);&#xA;org.eclipse.emf.ecore.EObject resolved = org.eclipse.emf.ecore.util.EcoreUtil.resolve(interfaceClass, this);&#xA;if (resolved instanceof org.emftext.language.java.classifiers.Interface) {&#xA;&#x9;return ( org.emftext.language.java.classifiers.Interface) resolved;&#xA;}&#xA;return null;"/>
          <details key="documentation" value="&#xA; Finds the &lt;code>org.emftext.language.java.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;);"/>
          <details key="documentation" value="&#xA; Finds the &lt;code>org.emftext.language.java.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;);"/>
          <details key="documentation" value="&#xA; Finds the &lt;code>org.emftext.language.java.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;);"/>
          <details key="documentation" value="&#xA; Finds the &lt;code>org.emftext.language.java.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="org.emftext.language.java.classifiers.Interface annotationClass = ( org.emftext.language.java.classifiers.Interface) org.eclipse.emf.ecore.util.EcoreUtil.resolve(&#xA;&#x9;&#x9;getConcreteClassifierProxy(&quot;java.lang.annotation.Annotation&quot;), this);&#xA;org.eclipse.emf.ecore.EObject resolved = org.eclipse.emf.ecore.util.EcoreUtil.resolve(annotationClass, this);&#xA;if (resolved instanceof org.emftext.language.java.classifiers.Interface) {&#xA;&#x9;return ( org.emftext.language.java.classifiers.Interface) resolved;&#xA;}&#xA;return null;"/>
          <details key="documentation" value="&#xA; Finds the &lt;code>org.emftext.language.java.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="#_Wosms9z1Ed2bJ_pQViWxFg">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.ecore.EObject value = this;&#xA;while (!(value instanceof org.emftext.language.java.annotations.AnnotationInstance) &amp;&amp; value != null) {&#xA;&#x9;value = value.eContainer();&#xA;}&#xA;return ( org.emftext.language.java.annotations.AnnotationInstance) value;"/>
          <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 (!(value instanceof org.emftext.language.java.classifiers.AnonymousClass) &#xA;&#x9;&#x9;&amp;&amp; !(value instanceof org.emftext.language.java.classifiers.ConcreteClassifier) //do not jump over other classifiers &#xA;&#x9;&#x9;&amp;&amp; value != null) {&#xA;&#x9;value = value.eContainer();&#xA;}&#xA;if (!(value instanceof org.emftext.language.java.classifiers.AnonymousClass)) {&#xA;&#x9;return null;&#xA;}&#xA;return ( org.emftext.language.java.classifiers.AnonymousClass) value;"/>
          <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 org.emftext.language.java.classifiers.ConcreteClassifier) &amp;&amp; value != null) {&#xA;&#x9;value = value.eContainer();&#xA;}&#xA;return ( org.emftext.language.java.classifiers.ConcreteClassifier) value;"/>
          <details key="documentation" value=""/>
        </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 org.emftext.language.java.containers.CompilationUnit) &amp;&amp; value != null) {&#xA;&#x9;value = value.eContainer();&#xA;}&#xA;return ( org.emftext.language.java.containers.CompilationUnit) value;"/>
          <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="org.emftext.language.java.containers.CompilationUnit cu = getContainingCompilationUnit();&#xA;if (cu == null) {&#xA;&#x9;return null;&#xA;}&#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 org.eclipse.emf.common.util.ECollections.unmodifiableEList(new org.eclipse.emf.common.util.BasicEList&lt; java.lang.String>(&#xA;&#x9;&#x9;cu.getNamespaces().subList(0, idx)));"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getContainingContainerName" 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="org.emftext.language.java.containers.CompilationUnit cu = getContainingCompilationUnit();&#xA;if (cu == null) {&#xA;&#x9;return null;&#xA;}&#xA;return org.eclipse.emf.common.util.ECollections.unmodifiableEList(cu.getNamespaces());"/>
          <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="org.emftext.language.java.classifiers.ConcreteClassifier classifier = getContainingConcreteClassifier();&#xA;if(classifier == null) {&#xA;&#x9;org.emftext.language.java.containers.CompilationUnit cu = getContainingCompilationUnit();&#xA;&#x9;//maybe the outer classifier is in an extra cu&#xA;&#x9;if (cu != null &amp;&amp; cu.getName() != null &amp;&amp; cu.getName().contains(&quot;$&quot;)) {&#xA;&#x9;&#x9;classifier = ( org.emftext.language.java.classifiers.ConcreteClassifier) org.eclipse.emf.ecore.util.EcoreUtil.resolve(&#xA;&#x9;&#x9;getConcreteClassifierProxy(cu.getNamespacesAsString()), this);&#xA;&#x9;&#x9;if(classifier.eIsProxy())  {&#xA;&#x9;&#x9;&#x9;classifier = null;&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;}&#xA;return classifier;"/>
          <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>
      <eOperations name="getParentByEType" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.ecore.EObject container = this.eContainer();&#xA;while (container != null) {&#xA;&#x9;if (type.isInstance(container)) {&#xA;&#x9;&#x9;return container;&#xA;&#x9;}&#xA;&#x9;container = container.eContainer();&#xA;}&#xA;return null;"/>
          <details key="documentation" value="&#xA; Walks up the containment hierarchy and returns the first parent with the&#xA; given type. If no such parent is found, null is returned.&#xA;"/>
        </eAnnotations>
        <eParameters name="type" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass"/>
      </eOperations>
      <eOperations name="getFirstChildByEType" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="java.util.Iterator&lt; org.eclipse.emf.ecore.EObject> it = this.eAllContents();&#xA;while (it.hasNext()) {&#xA;&#x9;org.eclipse.emf.ecore.EObject next = it.next();&#xA;&#x9;if (type.isInstance(next)) {&#xA;&#x9;&#x9;return next;&#xA;&#x9;}&#xA;}&#xA;return null;"/>
          <details key="documentation" value="&#xA; Searches for the first child with the given type. If no such child is found, null is returned.&#xA;"/>
        </eAnnotations>
        <eParameters name="type" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass"/>
      </eOperations>
      <eOperations name="getParentByType">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.ecore.EObject container = this.eContainer();&#xA;while (container != null) {&#xA;&#x9;if (type.isInstance(container)) {&#xA;&#x9;&#x9;return type.cast(container);&#xA;&#x9;}&#xA;&#x9;container = container.eContainer();&#xA;}&#xA;return null;"/>
          <details key="documentation" value="&#xA; Walks up the containment hierarchy and returns the first parent with the&#xA; given type. If no such parent is found, null is returned.&#xA;"/>
        </eAnnotations>
        <eGenericType eTypeParameter="#//commons/Commentable/getParentByType/T"/>
        <eTypeParameters name="T"/>
        <eParameters name="type">
          <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
            <eTypeArguments eTypeParameter="#//commons/Commentable/getParentByType/T"/>
          </eGenericType>
        </eParameters>
      </eOperations>
      <eOperations name="getFirstChildByType">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="java.util.Iterator&lt; org.eclipse.emf.ecore.EObject> it = this.eAllContents();&#xA;while (it.hasNext()) {&#xA;&#x9;org.eclipse.emf.ecore.EObject next = it.next();&#xA;&#x9;if (type.isInstance(next)) {&#xA;&#x9;&#x9;return type.cast(next);&#xA;&#x9;}&#xA;}&#xA;return null;"/>
          <details key="documentation" value="&#xA; Searches for the first child with the given type. If no such child is found, null is returned.&#xA;"/>
        </eAnnotations>
        <eGenericType eTypeParameter="#//commons/Commentable/getFirstChildByType/T"/>
        <eTypeParameters name="T"/>
        <eParameters name="type">
          <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
            <eTypeArguments eTypeParameter="#//commons/Commentable/getFirstChildByType/T"/>
          </eGenericType>
        </eParameters>
      </eOperations>
      <eOperations name="getChildrenByEType" upperBound="-1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EObject">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList&lt; org.eclipse.emf.ecore.EObject> children = new org.eclipse.emf.common.util.BasicEList&lt; org.eclipse.emf.ecore.EObject>();&#xA;java.util.Iterator&lt; org.eclipse.emf.ecore.EObject> it = this.eAllContents();&#xA;while (it.hasNext()) {&#xA;&#x9;org.eclipse.emf.ecore.EObject next = it.next();&#xA;&#x9;if (type.isInstance(next)) {&#xA;&#x9;&#x9;children.add(next);&#xA;&#x9;}&#xA;}&#xA;return children;"/>
          <details key="documentation" value="&#xA; Returns all children of the given type.&#xA;"/>
        </eAnnotations>
        <eParameters name="type" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass"/>
      </eOperations>
      <eOperations name="getChildrenByType" upperBound="-1">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList&lt;T> children = new org.eclipse.emf.common.util.BasicEList&lt;T>();&#xA;java.util.Iterator&lt; org.eclipse.emf.ecore.EObject> it = this.eAllContents();&#xA;while (it.hasNext()) {&#xA;&#x9;org.eclipse.emf.ecore.EObject next = it.next();&#xA;&#x9;if (type.isInstance(next)) {&#xA;&#x9;&#x9;children.add(type.cast(next));&#xA;&#x9;}&#xA;}&#xA;return children;"/>
          <details key="documentation" value="&#xA; Returns all children of the given type.&#xA;"/>
        </eAnnotations>
        <eGenericType eTypeParameter="#//commons/Commentable/getChildrenByType/T"/>
        <eTypeParameters name="T"/>
        <eParameters name="type">
          <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
            <eTypeArguments eTypeParameter="#//commons/Commentable/getChildrenByType/T"/>
          </eGenericType>
        </eParameters>
      </eOperations>
      <eOperations name="getComments" 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="org.eclipse.emf.common.util.EList&lt; java.lang.String> comments = new org.eclipse.emf.common.util.BasicEList&lt; java.lang.String>();&#xA;if (this instanceof org.emftext.language.java.modifiers.AnnotableAndModifiable) {&#xA;&#x9;for ( org.emftext.language.java.modifiers.AnnotationInstanceOrModifier aom : (( org.emftext.language.java.modifiers.AnnotableAndModifiable) this).getAnnotationsAndModifiers()) {&#xA;&#x9;&#x9;comments.addAll(aom.getComments());&#xA;&#x9;}&#xA;}&#xA;for ( org.emftext.commons.layout.LayoutInformation layoutInformation : getLayoutInformations()) {&#xA;&#x9;java.lang.String text = layoutInformation.getHiddenTokenText();&#xA;&#x9;if (text.contains(&quot;/*&quot;) || text.contains(&quot;//&quot;)) {&#xA;&#x9;&#x9;comments.add(layoutInformation.getHiddenTokenText().trim());&#xA;&#x9;}&#xA;}&#xA;return org.eclipse.emf.common.util.ECollections.unmodifiableEList(comments);"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
      <eOperations name="addBeforeContainingStatement">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.ecore.EObject container = this.eContainer();&#xA;org.eclipse.emf.ecore.EObject statement = this;&#xA;while (container != null) {&#xA;&#x9;if (container instanceof org.emftext.language.java.statements.StatementListContainer) {&#xA;&#x9;&#x9;break;&#xA;&#x9;}&#xA;&#x9;container = container.eContainer();&#xA;&#x9;statement = statement.eContainer();&#xA;}&#xA;if (container == null) {&#xA;&#x9;throw new java.lang.IllegalArgumentException(&quot;Element &quot; + this + &quot; is not contained in a StatementListContainer.&quot;);&#xA;}&#xA;org.emftext.language.java.statements.StatementListContainer statementListContainer = ( org.emftext.language.java.statements.StatementListContainer) container;&#xA;org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.statements.Statement> statements = statementListContainer.getStatements();&#xA;int index = statements.indexOf(statement);&#xA;&#xA;statements.add(index, statementToAdd);"/>
          <details key="documentation" value="&#xA; Adds the given statement before the statement that contains this element.&#xA;/&#xA;"/>
        </eAnnotations>
        <eParameters name="statementToAdd" lowerBound="1" eType="#_Wo2YzNz1Ed2bJ_pQViWxFg"/>
      </eOperations>
      <eOperations name="addAfterContainingStatement">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.ecore.EObject container = this.eContainer();&#xA;org.eclipse.emf.ecore.EObject statement = this;&#xA;while (container != null) {&#xA;&#x9;if (container instanceof org.emftext.language.java.statements.StatementListContainer) {&#xA;&#x9;&#x9;break;&#xA;&#x9;}&#xA;&#x9;container = container.eContainer();&#xA;&#x9;statement = statement.eContainer();&#xA;}&#xA;if (container == null) {&#xA;&#x9;throw new java.lang.IllegalArgumentException(&quot;Element &quot; + this + &quot; is not contained in a StatementListContainer.&quot;);&#xA;}&#xA;org.emftext.language.java.statements.StatementListContainer statementListContainer = ( org.emftext.language.java.statements.StatementListContainer) container;&#xA;org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.statements.Statement> statements = statementListContainer.getStatements();&#xA;int index = statements.indexOf(statement);&#xA;&#xA;if (index == statements.size() - 1) {&#xA;&#x9;// statement is the last one&#xA;&#x9;statements.add(statementToAdd);&#xA;} else {&#xA;&#x9;statements.add(index + 1, statementToAdd);&#xA;}"/>
          <details key="documentation" value="&#xA; Adds the given statement after the statement that contains this element.&#xA;/&#xA;"/>
        </eAnnotations>
        <eParameters name="statementToAdd" lowerBound="1" eType="#_Wo2YzNz1Ed2bJ_pQViWxFg"/>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EReference" name="layoutInformations" upperBound="-1"
          eType="ecore:EClass layout.ecore#//LayoutInformation"
          containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true" eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1"
          eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    </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;&#x9;java.lang.String assumedPackageName    = containerName + namespaceFragment + org.emftext.language.java.JavaUniquePathConstructor.PACKAGE_SEPARATOR;&#xA;&#x9;java.lang.String assumedClassifierName = containerName + namespaceFragment + org.emftext.language.java.JavaUniquePathConstructor.CLASSIFIER_SEPARATOR;&#xA;&#x9;&#xA;&#x9;if (it.hasNext()) {&#xA;&#x9;&#x9;if ( org.emftext.language.java.JavaClasspath.get(this).existsPackage(assumedClassifierName)) {&#xA;&#x9;&#x9;&#x9;containerName = assumedClassifierName;&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;else {&#xA;&#x9;&#x9;&#x9;//assume package&#xA;&#x9;&#x9;&#x9;containerName = assumedPackageName;&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;&#x9;else {&#xA;&#x9;&#x9;if ( org.emftext.language.java.JavaClasspath.get(this).existsPackage(assumedPackageName)) {&#xA;&#x9;&#x9;&#x9;//a package is always available as key&#xA;&#x9;&#x9;&#x9;containerName = assumedPackageName;&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;else {&#xA;&#x9;&#x9;&#x9;//assume classifier that is not key, but value in the map&#xA;&#x9;&#x9;&#x9;containerName = assumedClassifierName;&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;}&#xA;&#xA;return containerName;"/>
          <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( org.emftext.language.java.JavaUniquePathConstructor.PACKAGE_SEPARATOR)) {&#xA;&#x9;return null;&#xA;}&#xA;//cut the trailing separator&#xA;fullQualifiedName = fullQualifiedName.substring(0,fullQualifiedName.length() - 1);&#xA;&#xA;return ( org.emftext.language.java.classifiers.ConcreteClassifier) org.eclipse.emf.ecore.util.EcoreUtil.resolve(&#xA;&#x9;&#x9;getConcreteClassifierProxy(fullQualifiedName), this);"/>
          <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/java/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; org.emftext.language.java.classifiers.ConcreteClassifier> defaultImportList = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.classifiers.ConcreteClassifier>();&#xA;&#xA;java.lang.String packageName = getNamespacesAsString();&#xA;&#xA;defaultImportList.addAll(getConcreteClassifierProxies(&#xA;&#x9;&#x9;packageName, &quot;*&quot;));&#xA;&#xA;return defaultImportList;"/>
          <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( org.emftext.language.java.classifiers.ConcreteClassifier candidate : getClassifiers()) {&#xA;&#x9;if(name.equals(candidate.getName())) {&#xA;&#x9;&#x9;return candidate;&#xA;&#x9;}&#xA;}&#xA;return null;"/>
          <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; org.emftext.language.java.classifiers.ConcreteClassifier> defaultImportList = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.classifiers.ConcreteClassifier>();&#xA;&#xA;java.lang.String packageName = getNamespacesAsString();&#xA;&#xA;//locally defined in this container&#xA;defaultImportList.addAll(getClassifiers());&#xA;&#xA;defaultImportList.addAll(getConcreteClassifierProxies(&#xA;&#x9;&#x9;packageName, &quot;*&quot;));&#xA;&#xA;return defaultImportList;"/>
          <details key="documentation" value="&#xA; @return all classes in the same package imports&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getContainedClass" eType="#//classifiers/Class">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="if (getClassifiers().size() != 1) {&#xA;&#x9;return null;&#xA;}&#xA;if (getClassifiers().get(0) instanceof org.emftext.language.java.classifiers.Class) {&#xA;&#x9;return ( org.emftext.language.java.classifiers.Class) getClassifiers().get(0);&#xA;}&#xA;return null;"/>
          <details key="documentation" value="&#xA; @return the only class contained directly in the compilation unit (if one exists)&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getContainedInterface" eType="#//classifiers/Interface">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="if (getClassifiers().size() != 1) {&#xA;&#x9;return null;&#xA;}&#xA;if (getClassifiers().get(0) instanceof org.emftext.language.java.classifiers.Interface) {&#xA;&#x9;return ( org.emftext.language.java.classifiers.Interface) getClassifiers().get(0);&#xA;}&#xA;return null;"/>
          <details key="documentation" value="&#xA; @return the only interface contained directly in the compilation unit (if one exists)&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getContainedAnnotation" eType="#//classifiers/Annotation">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="if (getClassifiers().size() != 1) {&#xA;&#x9;return null;&#xA;}&#xA;if (getClassifiers().get(0) instanceof org.emftext.language.java.classifiers.Annotation) {&#xA;&#x9;return ( org.emftext.language.java.classifiers.Annotation) getClassifiers().get(0);&#xA;}&#xA;return null;"/>
          <details key="documentation" value="&#xA; @return the only annotation contained directly in the compilation unit (if one exists)&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getContainedEnumeration" eType="#//classifiers/Enumeration">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="if (getClassifiers().size() != 1) {&#xA;&#x9;return null;&#xA;}&#xA;if (getClassifiers().get(0) instanceof org.emftext.language.java.classifiers.Enumeration) {&#xA;&#x9;return ( org.emftext.language.java.classifiers.Enumeration) getClassifiers().get(0);&#xA;}&#xA;return null;"/>
          <details key="documentation" value="&#xA; @return the only enumeration contained directly in the compilation unit (if one exists)&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EReference" name="classifiers" lowerBound="1"
          upperBound="-1" eType="#//classifiers/ConcreteClassifier" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Package" eSuperTypes="#//containers/JavaRoot #//annotations/Annotable">
      <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 packageName = &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;packageName = packageName + namespaceFragment + org.emftext.language.java.JavaUniquePathConstructor.PACKAGE_SEPARATOR;&#xA;}&#xA;return packageName;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </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; org.emftext.language.java.classifiers.ConcreteClassifier> defaultImportList = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.classifiers.ConcreteClassifier>();&#xA;&#xA;java.lang.String packageName = getNamespacesAsString();&#xA;&#xA;defaultImportList.addAll(getConcreteClassifierProxies(&#xA;&#x9;&#x9;packageName + getName(), &quot;*&quot;));&#xA;&#xA;return defaultImportList;"/>
          <details key="documentation" value="&#xA; @return all classes in the same package&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EReference" name="compilationUnits" upperBound="-1"
          eType="#//containers/CompilationUnit" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="EmptyModel" eSuperTypes="#//containers/JavaRoot"/>
  </eSubpackages>
  <eSubpackages xmi:id="_Wo2YC9z1Ed2bJ_pQViWxFg" name="expressions" nsURI="http://www.emftext.org/java/expressions"
      nsPrefix="expressions">
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2YF9z1Ed2bJ_pQViWxFg" name="ExpressionList"
        eSuperTypes="#_Wo2Y9tz1Ed2bJ_pQViWxFg">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2YGNz1Ed2bJ_pQViWxFg"
          name="expressions" upperBound="-1" eType="#_Wo2YDNz1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2YDNz1Ed2bJ_pQViWxFg" name="Expression"
        abstract="true" eSuperTypes="#//arrays/ArrayInitializationValue #//annotations/AnnotationValue">
      <eOperations name="getType" eType="#_Wo2ZO9z1Ed2bJ_pQViWxFg">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="return getOneType(false);"/>
          <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="#_Wo2ZO9z1Ed2bJ_pQViWxFg">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="return getOneType(true);"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getOneType" eType="#_Wo2ZO9z1Ed2bJ_pQViWxFg">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.emftext.language.java.classifiers.Class stringClass = getStringClass();&#xA;&#xA;org.emftext.language.java.types.Type type = null;&#xA;&#xA;if (this instanceof org.emftext.language.java.references.Reference) {&#xA;&#x9;org.emftext.language.java.references.Reference reference = ( org.emftext.language.java.references.Reference) this;&#xA;&#x9;//navigate down references&#xA;&#x9;while(reference.getNext() != null) {&#xA;&#x9;&#x9;reference = reference.getNext();&#xA;&#x9;}&#xA;&#x9;type = reference.getReferencedType();&#xA;}&#xA;else if (this instanceof org.emftext.language.java.literals.Literal) {&#xA;&#x9;type = (( org.emftext.language.java.literals.Literal) this).getType();&#xA;}&#xA;else if (this instanceof org.emftext.language.java.expressions.CastExpression) {&#xA;&#x9;type = (( org.emftext.language.java.expressions.CastExpression)this).getTypeReference().getTarget();&#xA;}&#xA;else if (this instanceof org.emftext.language.java.expressions.AssignmentExpression) {&#xA;&#x9;type = (( org.emftext.language.java.expressions.AssignmentExpression) this).getChild().getOneType(alternative);&#xA;}&#xA;else if (this instanceof org.emftext.language.java.expressions.ConditionalExpression &amp;&amp;&#xA;&#x9;&#x9;(( org.emftext.language.java.expressions.ConditionalExpression)this).getExpressionIf() != null) {&#xA;&#x9;if (alternative) {&#xA;&#x9;&#x9;type = (( org.emftext.language.java.expressions.ConditionalExpression)this).getExpressionElse().getOneType(alternative);&#xA;&#x9;}&#xA;&#x9;else {&#xA;&#x9;&#x9;type = (( org.emftext.language.java.expressions.ConditionalExpression)this).getExpressionIf().getOneType(alternative);&#xA;&#x9;}&#xA;&#x9;&#xA;}&#xA;else if (this instanceof org.emftext.language.java.expressions.EqualityExpression ||&#xA;&#x9;&#x9;this instanceof org.emftext.language.java.expressions.RelationExpression ||&#xA;&#x9;&#x9;this instanceof org.emftext.language.java.expressions.ConditionalOrExpression ||&#xA;&#x9;&#x9;this instanceof org.emftext.language.java.expressions.ConditionalAndExpression ||&#xA;&#x9;&#x9;this instanceof org.emftext.language.java.expressions.InstanceOfExpression ) {&#xA;&#x9;type = getLibClass(&quot;Boolean&quot;);&#xA;}&#xA;else if (this instanceof org.emftext.language.java.expressions.AdditiveExpression ||&#xA;&#x9;&#x9;this instanceof org.emftext.language.java.expressions.MultiplicativeExpression ||&#xA;&#x9;&#x9;this instanceof org.emftext.language.java.expressions.InclusiveOrExpression ||&#xA;&#x9;&#x9;this instanceof org.emftext.language.java.expressions.ExclusiveOrExpression ||&#xA;&#x9;&#x9;this instanceof org.emftext.language.java.expressions.AndExpression ||&#xA;&#x9;&#x9;this instanceof org.emftext.language.java.expressions.ShiftExpression ) {&#xA;&#x9;&#xA;&#x9;if (this instanceof org.emftext.language.java.expressions.AdditiveExpression) {&#xA;&#x9;&#x9;org.emftext.language.java.expressions.AdditiveExpression additiveExpression = ( org.emftext.language.java.expressions.AdditiveExpression) this;&#xA;&#x9;&#x9;for( org.emftext.language.java.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;&#x9;&#x9;&#x9;&#x9;return stringClass;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;@SuppressWarnings(&quot;unchecked&quot;)&#xA;&#x9;org.emftext.language.java.expressions.Expression subExp = (( org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.expressions.Expression>) &#xA;&#x9;&#x9;&#x9;this.eGet(this.eClass().getEStructuralFeature(&quot;children&quot;))).get(0);&#xA;&#x9;&#xA;&#x9;return subExp.getOneType(alternative);&#xA;}&#xA;else if (this instanceof org.emftext.language.java.expressions.UnaryExpression) {&#xA;&#x9;org.emftext.language.java.expressions.Expression subExp = (( org.emftext.language.java.expressions.UnaryExpression)this).getChild();&#xA;&#x9;&#xA;&#x9;return subExp.getOneType(alternative);&#xA;}&#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;org.emftext.language.java.types.Type nextType = null;&#xA;&#xA;&#x9;if (next instanceof org.emftext.language.java.expressions.PrimaryExpression) {&#xA;&#xA;&#x9;&#x9;if (next instanceof org.emftext.language.java.references.Reference) {&#xA;&#x9;&#x9;&#x9;org.emftext.language.java.references.Reference ref = ( org.emftext.language.java.references.Reference) next;&#xA;&#x9;&#x9;&#x9;//navigate down references&#xA;&#x9;&#x9;&#x9;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 org.emftext.language.java.literals.Literal) {&#xA;&#x9;&#x9;&#x9;nextType = (( org.emftext.language.java.literals.Literal) next).getType();&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;else if (next instanceof org.emftext.language.java.expressions.CastExpression) {&#xA;&#x9;&#x9;&#x9;nextType = (( org.emftext.language.java.expressions.CastExpression)next).getTypeReference().getTarget();&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;else {&#xA;&#x9;&#x9;&#x9;nextType = (( org.emftext.language.java.references.Reference) next).getReferencedType();&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;i.prune();&#xA;&#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;&#x9;&#x9;//some string included, everything is converted to string&#xA;&#x9;&#x9;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;"/>
          <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;org.emftext.language.java.arrays.ArrayTypeable arrayType = null;&#xA;if (this instanceof org.emftext.language.java.expressions.NestedExpression &amp;&amp; &#xA;&#x9;&#x9;(( org.emftext.language.java.expressions.NestedExpression)this).getNext() == null) {&#xA;&#x9;return (( org.emftext.language.java.expressions.NestedExpression) this).getExpression().getArrayDimension()&#xA;&#x9;&#x9;- (( org.emftext.language.java.expressions.NestedExpression)this).getArraySelectors().size();&#xA;}&#xA;if (this instanceof org.emftext.language.java.expressions.ConditionalExpression &amp;&amp;&#xA;&#x9;&#x9;(( org.emftext.language.java.expressions.ConditionalExpression)this).getExpressionIf() != null) {&#x9;&#x9;&#xA;&#x9;return (( org.emftext.language.java.expressions.ConditionalExpression)this).getExpressionIf().getArrayDimension();&#xA;}&#xA;if (this instanceof org.emftext.language.java.expressions.AssignmentExpression) {&#xA;&#x9;org.emftext.language.java.expressions.Expression value = (( org.emftext.language.java.expressions.AssignmentExpression) this).getValue();&#xA;&#x9;if (value == null) {&#xA;&#x9;&#x9;return 0;&#xA;&#x9;}&#xA;&#x9;return value.getArrayDimension();&#xA;}&#xA;if (this instanceof org.emftext.language.java.expressions.InstanceOfExpression) {&#xA;&#x9;return 0;&#xA;}&#xA;if (this instanceof org.emftext.language.java.references.Reference) {&#xA;&#x9;org.emftext.language.java.references.Reference reference = ( org.emftext.language.java.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;&#x9;if (reference instanceof org.emftext.language.java.references.ElementReference &amp;&amp; &#xA;&#x9;&#x9;&#x9;reference.getPrevious() != null) {&#xA;&#x9;&#x9;org.emftext.language.java.references.ReferenceableElement target = (( org.emftext.language.java.references.ElementReference)reference).getTarget();&#xA;&#x9;&#x9;if (target instanceof org.emftext.language.java.members.Method) {&#xA;&#x9;&#x9;&#x9;if(&quot;clone&quot;.equals((( org.emftext.language.java.members.Method)target).getName())) {&#xA;&#x9;&#x9;&#x9;&#x9;reference = ( org.emftext.language.java.references.Reference) reference.eContainer();&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;if (reference instanceof org.emftext.language.java.references.ElementReference) {&#xA;&#x9;&#x9;org.emftext.language.java.references.ElementReference elementReference = ( org.emftext.language.java.references.ElementReference) reference;&#xA;&#x9;&#x9;if (elementReference.getTarget() instanceof org.emftext.language.java.arrays.ArrayTypeable) {&#xA;&#x9;&#x9;&#x9;arrayType = ( org.emftext.language.java.arrays.ArrayTypeable) elementReference.getTarget();&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;if (elementReference.getTarget() instanceof org.emftext.language.java.variables.AdditionalLocalVariable) {&#xA;&#x9;&#x9;&#x9;org.emftext.language.java.variables.AdditionalLocalVariable additionalLocalVariable = ( org.emftext.language.java.variables.AdditionalLocalVariable) elementReference.getTarget();&#xA;&#x9;&#x9;&#x9;arrayType = ( org.emftext.language.java.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 org.emftext.language.java.members.AdditionalField) {&#xA;&#x9;&#x9;&#x9;org.emftext.language.java.members.AdditionalField additionalField = ( org.emftext.language.java.members.AdditionalField) elementReference.getTarget();&#xA;&#x9;&#x9;&#x9;arrayType = ( org.emftext.language.java.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;}&#xA;&#x9;else if (this instanceof org.emftext.language.java.arrays.ArrayTypeable) {&#xA;&#x9;&#x9;size += (( org.emftext.language.java.arrays.ArrayTypeable)this).getArrayDimensionsBefore().size() + (( org.emftext.language.java.arrays.ArrayTypeable)this).getArrayDimensionsAfter().size();&#xA;&#x9;&#x9;if (this instanceof org.emftext.language.java.parameters.VariableLengthParameter) {&#xA;&#x9;&#x9;&#x9;size++;&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;&#x9;size -= reference.getArraySelectors().size();&#xA;}&#xA;else if (this instanceof org.emftext.language.java.arrays.ArrayTypeable) {&#xA;&#x9;size += (( org.emftext.language.java.arrays.ArrayTypeable)this).getArrayDimensionsBefore().size() + (( org.emftext.language.java.arrays.ArrayTypeable)this).getArrayDimensionsAfter().size();&#xA;&#x9;if (this instanceof org.emftext.language.java.parameters.VariableLengthParameter) {&#xA;&#x9;&#x9;size++;&#xA;&#x9;}&#xA;}&#xA;&#xA;if(this instanceof org.emftext.language.java.arrays.ArrayInstantiationBySize) {&#xA;&#x9;size += (( org.emftext.language.java.arrays.ArrayInstantiationBySize)this).getSizes().size();&#xA;}&#xA;&#xA;if(arrayType != null) {&#xA;&#x9;size += arrayType.getArrayDimension();&#xA;}&#xA;&#xA;return size;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="AssignmentExpression" eSuperTypes="#_Wo2YDNz1Ed2bJ_pQViWxFg">
      <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="#_Wo2YDNz1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="AssignmentExpressionChild" abstract="true"
        eSuperTypes="#_Wo2YDNz1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2YIdz1Ed2bJ_pQViWxFg" name="ConditionalExpression"
        eSuperTypes="#//expressions/AssignmentExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2YI9z1Ed2bJ_pQViWxFg"
          name="child" eType="#//expressions/ConditionalExpressionChild" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2YJdz1Ed2bJ_pQViWxFg"
          name="expressionIf" lowerBound="1" eType="#_Wo2YDNz1Ed2bJ_pQViWxFg" 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" xmi:id="_Wo2YHdz1Ed2bJ_pQViWxFg" name="ConditionalOrExpression"
        eSuperTypes="#//expressions/ConditionalExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2YH9z1Ed2bJ_pQViWxFg"
          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" xmi:id="_Wo2YGtz1Ed2bJ_pQViWxFg" name="ConditionalAndExpression"
        eSuperTypes="#//expressions/ConditionalOrExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2YHNz1Ed2bJ_pQViWxFg"
          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" xmi:id="_Wo2YJ9z1Ed2bJ_pQViWxFg" name="InclusiveOrExpression"
        eSuperTypes="#//expressions/ConditionalAndExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2YKdz1Ed2bJ_pQViWxFg"
          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" xmi:id="_Wo2YLdz1Ed2bJ_pQViWxFg" name="AndExpression"
        eSuperTypes="#//expressions/ExclusiveOrExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2YL9z1Ed2bJ_pQViWxFg"
          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" xmi:id="_Wo2YMNz1Ed2bJ_pQViWxFg" name="EqualityExpression"
        eSuperTypes="#//expressions/AndExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2YM9z1Ed2bJ_pQViWxFg"
          name="equalityOperators" lowerBound="1" upperBound="-1" eType="#//operators/EqualityOperator"
          containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2YMtz1Ed2bJ_pQViWxFg"
          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" xmi:id="_Wo2YNdz1Ed2bJ_pQViWxFg" name="InstanceOfExpression"
        eSuperTypes="#//arrays/ArrayTypeable #_Wo2ZP9z1Ed2bJ_pQViWxFg #//expressions/EqualityExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2YONz1Ed2bJ_pQViWxFg"
          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" xmi:id="_Wo2YOtz1Ed2bJ_pQViWxFg" name="RelationExpression"
        eSuperTypes="#//expressions/InstanceOfExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2YPNz1Ed2bJ_pQViWxFg"
          name="children" lowerBound="1" upperBound="-1" eType="#//expressions/RelationExpressionChild"
          containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2YPdz1Ed2bJ_pQViWxFg"
          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" xmi:id="_Wo2YPtz1Ed2bJ_pQViWxFg" name="ShiftExpression"
        eSuperTypes="#//expressions/RelationExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2YQNz1Ed2bJ_pQViWxFg"
          name="children" lowerBound="1" upperBound="-1" eType="#//expressions/ShiftExpressionChild"
          containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2YQdz1Ed2bJ_pQViWxFg"
          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" xmi:id="_Wo2YQtz1Ed2bJ_pQViWxFg" name="AdditiveExpression"
        eSuperTypes="#//expressions/ShiftExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2YRNz1Ed2bJ_pQViWxFg"
          name="children" lowerBound="1" upperBound="-1" eType="#//expressions/AdditiveExpressionChild"
          containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2YRdz1Ed2bJ_pQViWxFg"
          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" xmi:id="_Wo2YRtz1Ed2bJ_pQViWxFg" name="MultiplicativeExpression"
        eSuperTypes="#//expressions/AdditiveExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2YSNz1Ed2bJ_pQViWxFg"
          name="children" lowerBound="1" upperBound="-1" eType="#//expressions/MultiplicativeExpressionChild"
          containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2YSdz1Ed2bJ_pQViWxFg"
          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" xmi:id="_Wo2YStz1Ed2bJ_pQViWxFg" name="UnaryExpression"
        eSuperTypes="#//expressions/MultiplicativeExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2YTNz1Ed2bJ_pQViWxFg"
          name="operators" lowerBound="1" upperBound="-1" eType="#//operators/UnaryOperator"
          containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2YT9z1Ed2bJ_pQViWxFg"
          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" xmi:id="_Wo2YWdz1Ed2bJ_pQViWxFg" name="CastExpression"
        eSuperTypes="#_Wo2ZP9z1Ed2bJ_pQViWxFg #//arrays/ArrayTypeable #//expressions/UnaryModificationExpressionChild">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2YXdz1Ed2bJ_pQViWxFg"
          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="#_Wo2YDNz1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
  </eSubpackages>
  <eSubpackages name="generics" nsURI="http://www.emftext.org/java/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="#_Wo2ZPdz1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="QualifiedTypeArgument" eSuperTypes="#//generics/TypeArgument #_Wo2ZP9z1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" name="SuperTypeArgument" eSuperTypes="#//generics/TypeArgument">
      <eStructuralFeatures xsi:type="ecore:EReference" name="superType" lowerBound="1"
          eType="#_Wo2ZPdz1Ed2bJ_pQViWxFg" 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; org.emftext.language.java.classifiers.ConcreteClassifier> result = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.classifiers.ConcreteClassifier>();&#xA;for( org.emftext.language.java.types.TypeReference typeRef : getExtendTypes()) {&#xA;&#x9;org.emftext.language.java.types.Type type = typeRef.getTarget();&#xA;&#x9;if (type instanceof org.emftext.language.java.classifiers.ConcreteClassifier) {&#xA;&#x9;&#x9;result.add(( org.emftext.language.java.classifiers.ConcreteClassifier)type);&#xA;&#x9;}&#xA;&#x9;if (type instanceof org.emftext.language.java.classifiers.Classifier) {&#xA;&#x9;&#x9;result.addAll((( org.emftext.language.java.classifiers.Classifier)type).getAllSuperClassifiers());&#x9;&#xA;&#x9;}&#xA;}&#x9;&#x9;&#xA;&#xA;return result;"/>
          <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; org.emftext.language.java.members.Member> memberList = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.members.Member>();&#xA;&#xA;org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.types.Type> possiblyVisibleSuperClassifier = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.types.Type>();&#xA;for( org.emftext.language.java.types.TypeReference typeReference : (( org.emftext.language.java.generics.TypeParameter)this).getExtendTypes()) {&#xA;&#x9;possiblyVisibleSuperClassifier.add(typeReference.getTarget());&#xA;}&#xA;&#xA;for ( org.emftext.language.java.classifiers.ConcreteClassifier superClassifier : getAllSuperClassifiers()) {&#xA;&#x9;for( org.emftext.language.java.members.Member member : superClassifier.getMembers()) {&#xA;&#x9;&#x9;if(member instanceof org.emftext.language.java.modifiers.AnnotableAndModifiable) {&#x9;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;org.emftext.language.java.modifiers.AnnotableAndModifiable modifiable = ( org.emftext.language.java.modifiers.AnnotableAndModifiable) member;&#xA;&#xA;&#x9;&#x9;&#x9;if(!modifiable.isHidden(context)) {&#xA;&#x9;&#x9;&#x9;&#x9;memberList.add(member);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;else if (possiblyVisibleSuperClassifier.contains(superClassifier)) {&#xA;&#x9;&#x9;&#x9;&#x9;memberList.add(member);&#xA;&#x9;&#x9;&#x9;}&#xA;&#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;"/>
          <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="#_Wo2ZO9z1Ed2bJ_pQViWxFg">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.types.Type> resultList = new org.eclipse.emf.common.util.BasicEList&lt; org.emftext.language.java.types.Type>();&#xA;org.emftext.language.java.generics.TypeParametrizable typeParameterDeclarator = ( org.emftext.language.java.generics.TypeParametrizable) this.eContainer();&#xA;org.emftext.language.java.references.Reference parentReference = null;&#xA;org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.types.Type> prevTypeList = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.types.Type>();&#xA;if (reference != null &amp;&amp; &#xA;&#x9;&#x9;reference.getPrevious() instanceof org.emftext.language.java.expressions.NestedExpression) {&#xA;&#x9;org.emftext.language.java.expressions.NestedExpression nestedExpression = ( org.emftext.language.java.expressions.NestedExpression) reference.getPrevious();&#xA;&#x9;org.emftext.language.java.expressions.Expression expression = null;&#xA;&#x9;if (nestedExpression.getExpression() instanceof org.emftext.language.java.references.Reference) {&#xA;&#x9;&#x9;expression = nestedExpression.getExpression();&#xA;&#x9;}&#xA;&#x9;else if (nestedExpression.getExpression() instanceof org.emftext.language.java.expressions.ConditionalExpression) {&#xA;&#x9;&#x9;expression = (( org.emftext.language.java.expressions.ConditionalExpression)nestedExpression.getExpression()).getExpressionIf();&#xA;&#x9;}&#xA;&#xA;&#x9;&#xA;&#x9;if (expression instanceof org.emftext.language.java.references.Reference) {&#xA;&#x9;&#x9;org.emftext.language.java.references.Reference expressionReference = ( org.emftext.language.java.references.Reference) expression;&#xA;&#x9;&#x9;//navigate down references&#xA;&#x9;&#x9;while(expressionReference.getNext() != null) {&#xA;&#x9;&#x9;&#x9;expressionReference = expressionReference.getNext();&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;parentReference = expressionReference;&#xA;&#x9;&#x9;org.emftext.language.java.types.Type prevType = nestedExpression.getExpression().getType();&#xA;&#x9;&#x9;if(prevType instanceof org.emftext.language.java.util.TemporalCompositeClassifier) {&#xA;&#x9;&#x9;&#x9;for( org.eclipse.emf.ecore.EObject aType : (( org.emftext.language.java.util.TemporalCompositeClassifier)prevType).getSuperTypes()) {&#xA;&#x9;&#x9;&#x9;&#x9;prevTypeList.add(( org.emftext.language.java.types.Type)aType);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;else {&#xA;&#x9;&#x9;&#x9;prevTypeList.add(prevType);&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;&#x9;else if (nestedExpression.getExpression() instanceof org.emftext.language.java.expressions.CastExpression) {&#xA;&#x9;&#x9;prevTypeList.add((( org.emftext.language.java.expressions.CastExpression)nestedExpression.getExpression()).getTypeReference().getTarget());&#xA;&#x9;}&#xA;}&#xA;else if (reference != null &amp;&amp; reference.getPrevious() != null) {&#xA;&#x9;parentReference = reference.getPrevious();&#xA;&#x9;while (parentReference instanceof org.emftext.language.java.references.SelfReference) {&#xA;&#x9;&#x9;if ((( org.emftext.language.java.references.SelfReference)parentReference).getSelf() instanceof org.emftext.language.java.literals.Super) {&#xA;&#x9;&#x9;&#x9;if (parentReference.eContainer() instanceof org.emftext.language.java.references.Reference) {&#xA;&#x9;&#x9;&#x9;&#x9;parentReference = ( org.emftext.language.java.references.Reference) parentReference.eContainer();&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;else {&#xA;&#x9;&#x9;&#x9;&#x9;org.emftext.language.java.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;}&#xA;&#x9;&#x9;else {&#xA;&#x9;&#x9;&#x9;break;&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;&#x9;if (parentReference != null) {&#xA;&#x9;&#x9;org.emftext.language.java.types.Type prevType = parentReference.getReferencedType();&#xA;&#x9;&#x9;if(prevType instanceof org.emftext.language.java.util.TemporalCompositeClassifier) {&#xA;&#x9;&#x9;&#x9;for( org.eclipse.emf.ecore.EObject aType : (( org.emftext.language.java.util.TemporalCompositeClassifier)prevType).getSuperTypes()) {&#xA;&#x9;&#x9;&#x9;&#x9;prevTypeList.add(( org.emftext.language.java.types.Type)aType);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;else {&#xA;&#x9;&#x9;&#x9;prevTypeList.add(prevType);&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;}&#xA;else if (reference != null) {&#xA;&#x9;//prev type is on of the containing classes which can still bind by inheritance&#xA;&#x9;org.emftext.language.java.classifiers.ConcreteClassifier containingClassifier = reference.getContainingConcreteClassifier();&#xA;&#x9;while (containingClassifier != null) {&#xA;&#x9;&#x9;prevTypeList.add(containingClassifier);&#xA;&#x9;&#x9;org.eclipse.emf.ecore.EObject container = containingClassifier.eContainer();&#xA;&#x9;&#x9;if (container instanceof org.emftext.language.java.commons.Commentable) {&#xA;&#x9;&#x9;&#x9;containingClassifier = (( org.emftext.language.java.commons.Commentable) container).getContainingConcreteClassifier();&#xA;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;containingClassifier = null;&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;}&#xA;&#xA;for( org.emftext.language.java.types.Type prevType : prevTypeList) {&#xA;&#x9;int typeParameterIndex = -1;&#xA;&#x9;if (typeParameterDeclarator instanceof org.emftext.language.java.classifiers.ConcreteClassifier) {&#xA;&#x9;&#x9;typeParameterIndex = typeParameterDeclarator.getTypeParameters().indexOf(this);&#xA;&#x9;&#x9;if(reference != null) {&#xA;&#x9;&#x9;&#x9;org.emftext.language.java.types.ClassifierReference classifierReference = null;&#xA;&#x9;&#x9;&#x9;if(parentReference instanceof org.emftext.language.java.references.ElementReference) {&#xA;&#x9;&#x9;&#x9;&#x9;org.emftext.language.java.references.ReferenceableElement prevReferenced = (( org.emftext.language.java.references.ElementReference) parentReference).getTarget();&#xA;&#x9;&#x9;&#x9;&#x9;if(prevReferenced instanceof org.emftext.language.java.types.TypedElement) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;org.emftext.language.java.types.TypeReference prevTypeReference = (( org.emftext.language.java.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 org.emftext.language.java.types.TypedElement) {&#xA;&#x9;&#x9;&#x9;&#x9;//e.g. New Constructor Call&#xA;&#x9;&#x9;&#x9;&#x9;org.emftext.language.java.types.TypeReference prevParentReference = (( org.emftext.language.java.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 org.emftext.language.java.classifiers.ConcreteClassifier) {&#xA;&#x9;&#x9;&#x9;&#x9;//bound through inheritance?&#xA;&#x9;&#x9;&#x9;&#x9;int idx = 0;&#xA;&#x9;&#x9;&#x9;&#x9;for( org.emftext.language.java.types.ClassifierReference superClassifierReference : (( org.emftext.language.java.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;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if (typeParameterDeclarator.equals(superClassifierReference.getTarget()) ||&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(( org.emftext.language.java.classifiers.Classifier)superClassifierReference.getTarget()).getAllSuperClassifiers().contains(&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;typeParameterDeclarator)) {&#x9;&#x9;&#x9;&#x9;&#x9; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;org.emftext.language.java.generics.TypeArgument arg = superClassifierReference.getTypeArguments().get(typeParameterIndex);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if (arg instanceof org.emftext.language.java.generics.QualifiedTypeArgument) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;resultList.add(idx, (( org.emftext.language.java.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;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.generics.TypeArgument> typeArgumentList;&#xA;&#x9;&#x9;&#x9;&#x9;org.emftext.language.java.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 org.emftext.language.java.util.TemporalTypeArgumentHolder) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;ttah = ( org.emftext.language.java.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;}&#xA;&#x9;&#x9;&#x9;&#x9;else if (classifierReference != null) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;typeArgumentList = classifierReference.getTypeArguments();&#xA;&#x9;&#x9;&#x9;&#x9;}&#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;&#xA;&#x9;&#x9;&#x9;&#x9;if (typeParameterIndex &lt; typeArgumentList.size())  {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;org.emftext.language.java.generics.TypeArgument arg = typeArgumentList.get(typeParameterIndex);&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if (arg instanceof org.emftext.language.java.generics.QualifiedTypeArgument) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;org.emftext.language.java.types.ClassifierReference theTypeRef = (( org.emftext.language.java.generics.QualifiedTypeArgument) arg).getTypeReference().getPureClassifierReference();&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if (theTypeRef != null) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;org.emftext.language.java.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 org.emftext.language.java.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 org.emftext.language.java.generics.ExtendsTypeArgument) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;for( org.emftext.language.java.types.TypeReference extendedType : (( org.emftext.language.java.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;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;else if (prevType instanceof org.emftext.language.java.generics.TypeParameter) {&#xA;&#x9;&#x9;&#x9;&#x9;//the prev. type parameter, although unbound, may contain type restrictions through extends &#xA;&#x9;&#x9;&#x9;&#x9;resultList.add(prevType);&#xA;&#x9;&#x9;&#x9;&#x9;for( org.emftext.language.java.types.TypeReference extendedRef : (( org.emftext.language.java.generics.TypeParameter) prevType).getExtendTypes()) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;org.emftext.language.java.classifiers.ConcreteClassifier extended = ( org.emftext.language.java.classifiers.ConcreteClassifier)extendedRef.getTarget();&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;int idx = (( org.emftext.language.java.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;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;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 org.emftext.language.java.references.ReflectiveClassReference) {&#xA;&#x9;&#x9;&#x9;if (reference.eContainer().eContainer() instanceof org.emftext.language.java.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;&#x9;&#x9;&#x9;&#x9;resultList.add(0, (( org.emftext.language.java.references.Reference)reference.eContainer().eContainer()).getReferencedType());&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;}&#xA;&#xA;if (typeParameterDeclarator instanceof org.emftext.language.java.members.Method) {&#xA;&#x9;if (reference instanceof org.emftext.language.java.references.MethodCall) {&#xA;&#x9;&#x9;org.emftext.language.java.members.Method method = ( org.emftext.language.java.members.Method) typeParameterDeclarator;&#xA;&#x9;&#x9;org.emftext.language.java.references.MethodCall methodCall = ( org.emftext.language.java.references.MethodCall) reference;&#xA;&#x9;&#x9;if(method.getTypeParameters().size() == methodCall.getCallTypeArguments().size()) {&#xA;&#x9;&#x9;&#x9;org.emftext.language.java.generics.TypeArgument typeArgument = methodCall.getCallTypeArguments().get(method.getTypeParameters().indexOf(this));&#xA;&#x9;&#x9;&#x9;if (typeArgument instanceof org.emftext.language.java.generics.QualifiedTypeArgument) {&#xA;&#x9;&#x9;&#x9;&#x9;resultList.add(0, (( org.emftext.language.java.generics.QualifiedTypeArgument)typeArgument).getTypeReference().getBoundTarget(parentReference)); &#xA;&#x9;&#x9;&#x9;} &#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;&#x9;//class type parameter&#xA;&#x9;&#x9;int idx = method.getParameters().indexOf(typeReference.eContainer());&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;//method type parameter&#xA;&#x9;&#x9;if (idx == -1) {&#xA;&#x9;&#x9;&#x9;for( org.emftext.language.java.parameters.Parameter parameter : method.getParameters()) {&#xA;&#x9;&#x9;&#x9;&#x9;for ( org.emftext.language.java.generics.TypeArgument typeArgument : parameter.getTypeArguments()) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if(typeArgument instanceof org.emftext.language.java.generics.QualifiedTypeArgument) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if((( org.emftext.language.java.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;org.emftext.language.java.types.ClassifierReference paramTypeReference = parameter.getTypeReference().getPureClassifierReference();&#xA;&#x9;&#x9;&#x9;&#x9;if (paramTypeReference != null) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;for ( org.emftext.language.java.generics.TypeArgument typeArgument : paramTypeReference.getTypeArguments()) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if(typeArgument instanceof org.emftext.language.java.generics.QualifiedTypeArgument) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if(this.equals((( org.emftext.language.java.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;&#xA;&#x9;&#x9;if (idx &lt; methodCall.getArguments().size() &amp;&amp; idx >= 0) {&#xA;&#x9;&#x9;&#x9;org.emftext.language.java.expressions.Expression argument = methodCall.getArguments().get(idx);&#xA;&#x9;&#x9;&#x9;org.emftext.language.java.parameters.Parameter parameter = method.getParameters().get(idx);&#xA;&#x9;&#x9;&#x9;org.emftext.language.java.types.ClassifierReference parameterType = parameter.getTypeReference().getPureClassifierReference();&#xA;&#x9;&#x9;&#x9;if (argument instanceof org.emftext.language.java.instantiations.NewConstructorCall) {&#xA;&#x9;&#x9;&#x9;&#x9;org.emftext.language.java.types.ClassifierReference argumentType = (( org.emftext.language.java.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( org.emftext.language.java.generics.TypeArgument typeArgument : parameterType.getTypeArguments()) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if(typeArgument instanceof org.emftext.language.java.generics.QualifiedTypeArgument) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if((( org.emftext.language.java.generics.QualifiedTypeArgument) typeArgument).getTypeReference().getTarget().equals(this)) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;resultList.add(0, (( org.emftext.language.java.generics.QualifiedTypeArgument)argumentType.getTypeArguments().get(parameterType.getTypeArguments().indexOf(typeArgument))).getTypeReference(&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;).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 org.emftext.language.java.generics.TypeParameter) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;resultList.add(0,argumentType.getTarget());&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;else if (parameterType != null &amp;&amp; argument instanceof org.emftext.language.java.references.Reference) {&#xA;&#x9;&#x9;&#x9;&#x9;org.emftext.language.java.references.Reference argReference = ( org.emftext.language.java.references.Reference) argument;&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;while (argReference.getNext() instanceof org.emftext.language.java.references.Reference &amp;&amp;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;!(argReference.getNext() instanceof org.emftext.language.java.references.ReflectiveClassReference) ) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;argReference = argReference.getNext();&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;&#x9;if (argReference instanceof org.emftext.language.java.references.ElementReference) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;org.emftext.language.java.references.ElementReference elementReference = ( org.emftext.language.java.references.ElementReference) argReference;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;while (elementReference.getNext() instanceof org.emftext.language.java.references.ElementReference) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;elementReference = ( org.emftext.language.java.references.ElementReference) elementReference.getNext();&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if (elementReference.getTarget() instanceof org.emftext.language.java.types.TypedElement) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;org.emftext.language.java.types.ClassifierReference argumentType = (( org.emftext.language.java.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( org.emftext.language.java.generics.TypeArgument typeArgument : parameterType.getTypeArguments()) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if(typeArgument instanceof org.emftext.language.java.generics.QualifiedTypeArgument) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if((( org.emftext.language.java.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 org.emftext.language.java.generics.QualifiedTypeArgument) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;resultList.add(0, (( org.emftext.language.java.generics.QualifiedTypeArgument)argumentType.getTypeArguments().get(idx2)).getTypeReference().getTarget());&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;else if (argumentType.getTypeArguments().get(idx2) instanceof org.emftext.language.java.generics.ExtendsTypeArgument) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;for( org.emftext.language.java.types.TypeReference extendedType : (( org.emftext.language.java.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 org.emftext.language.java.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 org.emftext.language.java.references.ReflectiveClassReference) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if (parameterType.getTypeArguments().size() == 1) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;for( org.emftext.language.java.generics.TypeArgument typeArgument : parameterType.getTypeArguments()) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if(typeArgument instanceof org.emftext.language.java.generics.QualifiedTypeArgument) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;if((( org.emftext.language.java.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;}&#xA;&#x9;&#x9;&#x9;&#x9;else {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;if (parameterType.getTarget() instanceof org.emftext.language.java.generics.TypeParameter) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;while (argReference.getNext() instanceof org.emftext.language.java.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, (( org.emftext.language.java.references.Reference) argReference).getReferencedType());&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;}&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;//return type&#xA;&#x9;&#x9;if(method.equals(typeReference.eContainer())) {&#xA;&#x9;&#x9;&#x9;//bound by the type of a method argument?&#xA;&#x9;&#x9;&#x9;org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.classifiers.Classifier> allSuperTypes = null;&#xA;&#x9;&#x9;&#x9;for( org.emftext.language.java.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;org.emftext.language.java.classifiers.Classifier argumentType = ( org.emftext.language.java.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 org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.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;}&#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; org.emftext.language.java.classifiers.Classifier> allOtherSuperTypes = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.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; org.emftext.language.java.classifiers.Classifier> temp = allSuperTypes;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;allSuperTypes = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.classifiers.Classifier>();&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;for( org.emftext.language.java.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;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;//all types given by all bindings&#xA;&#x9;&#x9;&#x9;if (allSuperTypes != null) {&#xA;&#x9;&#x9;&#x9;&#x9;resultList.addAll(allSuperTypes);&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;}&#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;&#xA;if(resultList.isEmpty() || &#xA;&#x9;&#x9;(resultList.size() == 1 &amp;&amp; resultList.get(0).equals(this))) {&#xA;&#x9;return this;&#xA;}&#xA;else {&#xA;&#x9;org.emftext.language.java.util.TemporalCompositeClassifier temp = new org.emftext.language.java.util.TemporalCompositeClassifier(this);&#xA;&#x9;for( org.emftext.language.java.types.Type aResult : resultList) {&#xA;&#x9;&#x9;if(aResult instanceof org.emftext.language.java.types.PrimitiveType) {&#xA;&#x9;&#x9;&#x9;aResult = (( org.emftext.language.java.types.PrimitiveType) aResult).wrapPrimitiveType();&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;if (aResult instanceof org.emftext.language.java.util.TemporalCompositeClassifier) {&#xA;&#x9;&#x9;&#x9;//flatten&#xA;&#x9;&#x9;&#x9;temp.getSuperTypes().addAll((( org.emftext.language.java.util.TemporalCompositeClassifier)aResult).getSuperTypes());&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;else {&#xA;&#x9;&#x9;&#x9;temp.getSuperTypes().add(( org.emftext.language.java.classifiers.Classifier) aResult);&#x9;&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;&#x9;temp.getSuperTypes().add(this);&#xA;&#x9;return temp;&#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="#_Wo2ZPdz1Ed2bJ_pQViWxFg"/>
        <eParameters name="reference" eType="#//references/Reference"/>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EReference" name="extendTypes" upperBound="-1"
          eType="#_Wo2ZPdz1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="UnknownTypeArgument" eSuperTypes="#//generics/TypeArgument"/>
  </eSubpackages>
  <eSubpackages name="imports" nsURI="http://www.emftext.org/java/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;&#xA;java.lang.String fullQualifiedName = containerName + name;&#xA;return getConcreteClassifierProxy(fullQualifiedName);"/>
          <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;&#xA;return getConcreteClassifierProxies(containerName, &quot;*&quot;);"/>
          <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="org.emftext.language.java.classifiers.ConcreteClassifier concreteClassifier = getClassifierAtNamespaces();&#xA;&#xA;if(concreteClassifier == null || concreteClassifier.eIsProxy()) {&#xA;&#x9;return org.eclipse.emf.common.util.ECollections.emptyEList();&#xA;}&#xA;&#xA;org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.commons.NamedElement> result = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.commons.NamedElement>();&#xA;result.addAll(concreteClassifier.getAllMembers(this));&#xA;if (concreteClassifier instanceof org.emftext.language.java.classifiers.Enumeration) {&#xA;&#x9;result.addAll((( org.emftext.language.java.classifiers.Enumeration)concreteClassifier).getConstants());&#xA;}&#xA;&#xA;return result;"/>
          <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; org.emftext.language.java.classifiers.ConcreteClassifier> result = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.classifiers.ConcreteClassifier>();&#xA;for( org.eclipse.emf.ecore.EObject classifier : org.emftext.language.java.JavaClasspath.get(this).getDefaultImports()) {&#xA;&#x9;result.add(( org.emftext.language.java.classifiers.ConcreteClassifier)classifier);&#xA;}&#xA;return result;"/>
          <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="#_Wo2Yv9z1Ed2bJ_pQViWxFg" 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/java/instantiations"
      nsPrefix="instantiations">
    <eClassifiers xsi:type="ecore:EClass" name="Initializable" abstract="true" eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="initialValue" eType="#_Wo2YDNz1Ed2bJ_pQViWxFg"
          containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Instantiation" abstract="true" eSuperTypes="#//references/Reference #//references/Argumentable"/>
    <eClassifiers xsi:type="ecore:EClass" name="NewConstructorCall" eSuperTypes="#_Wo2ZP9z1Ed2bJ_pQViWxFg #//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" lowerBound="1"
          eType="#//literals/Self" containment="true"/>
    </eClassifiers>
  </eSubpackages>
  <eSubpackages xmi:id="_Wo2Yntz1Ed2bJ_pQViWxFg" name="literals" nsURI="http://www.emftext.org/java/literals"
      nsPrefix="literals">
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2YsNz1Ed2bJ_pQViWxFg" name="Literal"
        abstract="true" eSuperTypes="#//expressions/PrimaryExpression">
      <eOperations name="getOneType" eType="#_Wo2ZO9z1Ed2bJ_pQViWxFg">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="//Overrides implementation in Expression&#xA;org.emftext.language.java.classifiers.Class javaClass = null;&#xA;&#xA;if (this instanceof org.emftext.language.java.literals.NullLiteral) {&#xA;&#x9;javaClass = getLibClass(&quot;Void&quot;);&#xA;}&#xA;else if (this instanceof org.emftext.language.java.literals.BooleanLiteral) {&#xA;&#x9;javaClass = getLibClass(&quot;Boolean&quot;);&#xA;}&#xA;else if (this instanceof org.emftext.language.java.literals.DoubleLiteral) {&#xA;&#x9;javaClass = getLibClass(&quot;Double&quot;);&#xA;}&#xA;else if (this instanceof org.emftext.language.java.literals.FloatLiteral) {&#xA;&#x9;javaClass = getLibClass(&quot;Float&quot;);&#xA;}&#xA;else if (this instanceof org.emftext.language.java.literals.IntegerLiteral) {&#xA;&#x9;javaClass = getLibClass(&quot;Integer&quot;);&#xA;}&#xA;else if (this instanceof org.emftext.language.java.literals.LongLiteral) {&#xA;&#x9;javaClass = getLibClass(&quot;Long&quot;);&#xA;}&#xA;else if (this instanceof org.emftext.language.java.literals.CharacterLiteral) {&#xA;&#x9;javaClass = getLibClass(&quot;Character&quot;);&#xA;}&#xA;&#xA;return javaClass;"/>
          <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" xmi:id="_Wo2YrNz1Ed2bJ_pQViWxFg" name="BooleanLiteral"
        eSuperTypes="#_Wo2YsNz1Ed2bJ_pQViWxFg">
      <eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="_Wo2Yrdz1Ed2bJ_pQViWxFg"
          name="value" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Ypdz1Ed2bJ_pQViWxFg" name="CharacterLiteral"
        eSuperTypes="#_Wo2YsNz1Ed2bJ_pQViWxFg">
      <eStructuralFeatures xsi:type="ecore:EAttribute" xmi:id="_Wo2Yptz1Ed2bJ_pQViWxFg"
          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="#_Wo2YsNz1Ed2bJ_pQViWxFg"/>
    <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" xmi:id="_Wo2Yotz1Ed2bJ_pQViWxFg" name="DoubleLiteral"
        abstract="true" eSuperTypes="#_Wo2YsNz1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" name="DecimalDoubleLiteral" eSuperTypes="#_Wo2Yotz1Ed2bJ_pQViWxFg">
      <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="#_Wo2Yotz1Ed2bJ_pQViWxFg">
      <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" xmi:id="_Wo2Yn9z1Ed2bJ_pQViWxFg" name="IntegerLiteral"
        abstract="true" eSuperTypes="#_Wo2YsNz1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" name="DecimalIntegerLiteral" eSuperTypes="#_Wo2Yn9z1Ed2bJ_pQViWxFg">
      <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="#_Wo2Yn9z1Ed2bJ_pQViWxFg">
      <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="#_Wo2Yn9z1Ed2bJ_pQViWxFg">
      <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="#_Wo2YsNz1Ed2bJ_pQViWxFg"/>
    <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" xmi:id="_Wo2Yr9z1Ed2bJ_pQViWxFg" name="NullLiteral"
        eSuperTypes="#_Wo2YsNz1Ed2bJ_pQViWxFg"/>
    <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/java/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="#_Wo2ZQ9z1Ed2bJ_pQViWxFg" 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( org.emftext.language.java.members.Member member : getMembers()) {&#xA;&#x9;if (member instanceof org.emftext.language.java.classifiers.ConcreteClassifier &amp;&amp; name.equals(member.getName())) {&#xA;&#x9;&#x9;return ( org.emftext.language.java.classifiers.ConcreteClassifier) member;&#xA;&#x9;}&#xA; &#x9;&#x9;}&#xA;for( org.emftext.language.java.members.Member member : getDefaultMembers()) {&#xA;&#x9;if (member instanceof org.emftext.language.java.classifiers.ConcreteClassifier &amp;&amp; name.equals(member.getName())) {&#xA;&#x9;&#x9;return ( org.emftext.language.java.classifiers.ConcreteClassifier) member;&#xA;&#x9;}&#xA; &#x9;&#x9;}&#xA;return null;"/>
          <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( org.emftext.language.java.members.Member member : getMembers()) {&#xA;&#x9;if (member instanceof org.emftext.language.java.members.Field &amp;&amp; name.equals(member.getName())) {&#xA;&#x9;&#x9;return ( org.emftext.language.java.members.Field) member;&#xA;&#x9;}&#xA; &#x9;&#x9;}&#xA;for( org.emftext.language.java.members.Member member : getDefaultMembers()) {&#xA;&#x9;if (member instanceof org.emftext.language.java.members.Field &amp;&amp; name.equals(member.getName())) {&#xA;&#x9;&#x9;return ( org.emftext.language.java.members.Field) member;&#xA;&#x9;}&#xA; &#x9;&#x9;}&#xA;return null;"/>
          <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="org.emftext.language.java.members.Method found = null;&#xA;for( org.emftext.language.java.members.Member member : getMembers()) {&#xA;&#x9;if (member instanceof org.emftext.language.java.members.Method &amp;&amp; name.equals(member.getName())) {&#xA;&#x9;&#x9;if(found != null) {&#xA;&#x9;&#x9;&#x9;return null;&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;else {&#xA;&#x9;&#x9;&#x9;found = ( org.emftext.language.java.members.Method) member;&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA; &#x9;&#x9;}&#xA; &#x9;&#x9;for( org.emftext.language.java.members.Member member : getDefaultMembers()) {&#xA;&#x9;if (member instanceof org.emftext.language.java.members.Method &amp;&amp; name.equals(member.getName())) {&#xA;&#x9;&#x9;if(found != null) {&#xA;&#x9;&#x9;&#x9;return null;&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;else {&#xA;&#x9;&#x9;&#x9;found = ( org.emftext.language.java.members.Method) member;&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA; &#x9;&#x9;}&#xA;return found;"/>
          <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>
      <eOperations name="getMethods" upperBound="-1" eType="#//members/Method">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.members.Method> methodList = new org.eclipse.emf.common.util.BasicEList&lt; org.emftext.language.java.members.Method>();&#xA;&#xA;for ( org.emftext.language.java.members.Member member : getMembers()) {&#xA;&#x9;if (member instanceof org.emftext.language.java.members.Method) {&#xA;&#x9;&#x9;methodList.add(( org.emftext.language.java.members.Method) member);&#xA;&#x9;}&#xA;}&#x9;&#xA;return org.eclipse.emf.common.util.ECollections.unmodifiableEList(methodList);"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
      <eOperations name="removeMethods">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.members.Method> methodsToRemove = new org.eclipse.emf.common.util.BasicEList&lt; org.emftext.language.java.members.Method>();&#xA;&#xA;for ( org.emftext.language.java.members.Member member : getMembers()) {&#xA;&#x9;if (member instanceof org.emftext.language.java.members.Method) {&#xA;&#x9;&#x9;if (name.equals(member.getName())) {&#xA;&#x9;&#x9;&#x9;methodsToRemove.add(( org.emftext.language.java.members.Method) member);&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;}&#xA;getMembers().removeAll(methodsToRemove);"/>
          <details key="documentation" value=""/>
        </eAnnotations>
        <eParameters name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      </eOperations>
      <eOperations name="getMembersByName" 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; org.emftext.language.java.members.Member> matchingMembers = new org.eclipse.emf.common.util.BasicEList&lt; org.emftext.language.java.members.Member>();&#xA;&#xA;for ( org.emftext.language.java.members.Member member : getMembers()) {&#xA;&#x9;if (name.equals(member.getName())) {&#xA;&#x9;&#x9;matchingMembers.add(member);&#xA;&#x9;}&#xA;}&#x9;&#xA;return org.eclipse.emf.common.util.ECollections.unmodifiableEList(matchingMembers);"/>
          <details key="documentation" value=""/>
        </eAnnotations>
        <eParameters name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      </eOperations>
      <eOperations name="createField" eType="#//members/Field">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.emftext.language.java.members.Field field = org.emftext.language.java.members.MembersFactory.eINSTANCE.createField();&#xA;field.setName(name);&#xA;org.emftext.language.java.types.ClassifierReference typeRef = org.emftext.language.java.types.TypesFactory.eINSTANCE.createClassifierReference();&#xA;typeRef.setTarget(getConcreteClassifier(qualifiedTypeName));&#xA;field.setTypeReference(typeRef);&#xA;getMembers().add(field);&#xA;return field;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
        <eParameters name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
        <eParameters name="qualifiedTypeName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      </eOperations>
      <eOperations name="getFields" upperBound="-1" eType="#//members/Field">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.members.Field> fieldList = new org.eclipse.emf.common.util.BasicEList&lt; org.emftext.language.java.members.Field>();&#xA;&#xA;for ( org.emftext.language.java.members.Member member : getMembers()) {&#xA;&#x9;if (member instanceof org.emftext.language.java.members.Field) {&#xA;&#x9;&#x9;fieldList.add(( org.emftext.language.java.members.Field) member);&#xA;&#x9;}&#xA;}&#x9;&#xA;return org.eclipse.emf.common.util.ECollections.unmodifiableEList(fieldList);"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getConstructors" upperBound="-1" eType="#//members/Constructor">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.members.Constructor> constructorList = new org.eclipse.emf.common.util.BasicEList&lt; org.emftext.language.java.members.Constructor>();&#xA;&#xA;for ( org.emftext.language.java.members.Member member : getMembers()) {&#xA;&#x9;if (member instanceof org.emftext.language.java.members.Constructor) {&#xA;&#x9;&#x9;constructorList.add(( org.emftext.language.java.members.Constructor) member);&#xA;&#x9;}&#xA;}&#x9;&#xA;return org.eclipse.emf.common.util.ECollections.unmodifiableEList(constructorList);"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </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" 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;"/>
          <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 #_Wo2ZP9z1Ed2bJ_pQViWxFg #//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; org.emftext.language.java.types.Type> argumentTypeList = methodCall.getArgumentTypes();&#xA;org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.parameters.Parameter> parameterList = new org.eclipse.emf.common.util.BasicEList&lt; org.emftext.language.java.parameters.Parameter>(this.getParameters());&#xA;&#xA;org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.types.Type> parameterTypeList = new org.eclipse.emf.common.util.BasicEList&lt; org.emftext.language.java.types.Type>();&#xA;for( org.emftext.language.java.parameters.Parameter parameter : parameterList)  {&#xA;&#x9;//determine types before messing with the parameters&#xA;&#x9;parameterTypeList.add(&#xA;&#x9;&#x9;&#x9;parameter.getTypeReference().getBoundTarget(methodCall));&#xA;}&#xA;&#xA;if (!parameterList.isEmpty()) {&#xA;&#x9;org.emftext.language.java.parameters.Parameter lastParameter = parameterList.get(parameterList.size() - 1);&#xA;&#x9;org.emftext.language.java.types.Type lastParameterType  = parameterTypeList.get(parameterTypeList.size() - 1);;&#xA;&#x9;if (lastParameter instanceof org.emftext.language.java.parameters.VariableLengthParameter) {&#xA;&#x9;&#x9;//in case of variable length add/remove some parameters&#xA;&#x9;&#x9;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;&#x9;&#xA;&#x9;}&#xA;}&#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;org.emftext.language.java.parameters.Parameter  parameter = parameterList.get(i);&#xA;&#x9;&#x9;org.emftext.language.java.expressions.Expression argument = methodCall.getArguments().get(i);&#xA;&#xA;&#x9;&#x9;org.emftext.language.java.types.Type parameterType = parameterTypeList.get(i);&#xA;&#x9;&#x9;org.emftext.language.java.types.Type argumentType  = argumentTypeList.get(i);&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;if (argumentType == null || parameterType == null) {&#xA;&#x9;&#x9;&#x9;return false;&#xA;&#x9;&#x9;}&#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&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&amp;&amp; argumentType.equalsType(argument.getArrayDimension(),&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;parameterType, parameter.getArrayDimension());&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#x9;else {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;parametersMatch = parametersMatch &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&amp;&amp; argumentType.isSuperType(argument.getArrayDimension(),&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;parameterType, parameter);&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;else {&#xA;&#x9;&#x9;&#x9;&#x9;return false;&#xA;&#x9;&#x9;&#x9;}&#xA;&#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;"/>
          <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);"/>
          <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;if (isMethodForCall(methodCall, true)) {&#xA;&#x9;&#x9;//we both match perfectly; lets compare our return types&#xA;&#x9;&#x9;org.emftext.language.java.types.Type target = getTypeReference().getTarget();&#xA;&#x9;&#x9;if (target instanceof org.emftext.language.java.classifiers.ConcreteClassifier) {&#xA;&#x9;&#x9;&#x9;if ((( org.emftext.language.java.classifiers.ConcreteClassifier) target).getAllSuperClassifiers().contains(&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;otherMethod.getTypeReference().getTarget())) {&#xA;&#x9;&#x9;&#x9;&#x9;// I am the more concrete type&#xA;&#x9;&#x9;&#x9;&#x9;return true;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;&#x9;//the other already matches perfectly; I am not better&#xA;&#x9;return false;&#xA;}&#xA;if (!otherMethod.isMethodForCall(methodCall, false)) {&#xA;&#x9;//I match, but the other does not&#xA;&#x9;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);"/>
          <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 org.emftext.language.java.parameters.VariableLengthParameter) {&#xA;&#x9;size++;&#xA;}&#xA;return size;"/>
          <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 xmi:id="_Wo2Ystz1Ed2bJ_pQViWxFg" name="modifiers" nsURI="http://www.emftext.org/java/modifiers"
      nsPrefix="modifiers">
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Ys9z1Ed2bJ_pQViWxFg" 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="if (this.eIsProxy()) {&#xA;&#x9;return false;&#xA;}&#xA;//all members of an interface are public by default&#xA;if (this.eContainer() instanceof org.emftext.language.java.classifiers.Interface) {&#xA;&#x9;return false;&#xA;}&#xA;&#xA;if(context.eIsProxy()) {&#xA;&#x9;context = ( org.emftext.language.java.commons.Commentable) org.eclipse.emf.ecore.util.EcoreUtil.resolve(context, this);&#xA;}&#xA;&#xA;org.emftext.language.java.classifiers.ConcreteClassifier contextClassifier = context.getContainingConcreteClassifier(); &#xA;if (!(eContainer() instanceof org.emftext.language.java.commons.Commentable)) {&#xA;&#x9;return true;&#xA;}&#xA;org.emftext.language.java.classifiers.ConcreteClassifier myClassifier = (( org.emftext.language.java.commons.Commentable) eContainer()).getParentConcreteClassifier();&#xA;//special case: self reference to outer instance&#xA;if(context instanceof org.emftext.language.java.references.Reference) {&#xA;&#x9;if ((( org.emftext.language.java.references.Reference)context).getPrevious() instanceof org.emftext.language.java.references.SelfReference) {&#xA;&#x9;&#x9;org.emftext.language.java.references.SelfReference selfReference = ( org.emftext.language.java.references.SelfReference) (( org.emftext.language.java.references.Reference)context).getPrevious();&#xA;&#x9;&#x9;if (selfReference.getSelf() instanceof org.emftext.language.java.literals.Self) {&#xA;&#x9;&#x9;&#x9;if(selfReference.getPrevious() != null) {&#xA;&#x9;&#x9;&#x9;&#x9;org.emftext.language.java.types.Type type = selfReference.getPrevious().getReferencedType();&#xA;&#x9;&#x9;&#x9;&#x9;if (type instanceof org.emftext.language.java.classifiers.ConcreteClassifier) {&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;contextClassifier = ( org.emftext.language.java.classifiers.ConcreteClassifier) type;&#xA;&#x9;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;}&#xA;&#xA;for( org.emftext.language.java.modifiers.AnnotationInstanceOrModifier modifier : this.getAnnotationsAndModifiers()) {&#xA;&#x9;if(modifier instanceof org.emftext.language.java.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 org.emftext.language.java.modifiers.Public) {&#xA;&#x9;&#x9;return false;&#xA;&#x9;}&#xA;&#x9;if(modifier instanceof org.emftext.language.java.modifiers.Protected) {&#xA;&#x9;&#x9;//package visibility&#xA;&#x9;&#x9;if (getContainingPackageName() != null &amp;&amp; &#xA;&#x9;&#x9;&#x9;&#x9;getContainingPackageName().equals(context.getContainingPackageName())) {&#xA;&#x9;&#x9;&#x9;return false;&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;//try outer classifiers as well &#xA;&#x9;&#x9;while(contextClassifier instanceof org.emftext.language.java.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;&#xA;&#x9;&#x9;&#x9;org.eclipse.emf.ecore.EObject container = contextClassifier.eContainer();&#xA;&#x9;&#x9;&#x9;if (container instanceof org.emftext.language.java.commons.Commentable) {&#xA;&#x9;&#x9;&#x9;&#x9;contextClassifier = (( org.emftext.language.java.commons.Commentable) container).getParentConcreteClassifier();&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;contextClassifier = null;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;if (contextClassifier != null &amp;&amp; !contextClassifier.eIsProxy() &amp;&amp; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;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;&#x9;&#x9;org.emftext.language.java.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;&#xA;&#x9;&#x9;&#x9;org.eclipse.emf.ecore.EObject container = anonymousClass.eContainer();&#xA;&#x9;&#x9;&#x9;if (container instanceof org.emftext.language.java.commons.Commentable) {&#xA;&#x9;&#x9;&#x9;&#x9;anonymousClass = (( org.emftext.language.java.commons.Commentable) container).getContainingAnonymousClass();&#xA;&#x9;&#x9;&#x9;} else {&#xA;&#x9;&#x9;&#x9;&#x9;anonymousClass = null;&#xA;&#x9;&#x9;&#x9;}&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;return true;&#xA;&#x9;}&#xA;}&#xA;//package visibility?&#xA;if (getContainingPackageName() != null &amp;&amp; &#xA;&#x9;&#x9;getContainingPackageName().equals(context.getContainingPackageName())) {&#xA;&#x9;return false;&#xA;}&#xA;&#xA;return true;"/>
          <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 are static by default&#xA;if (this.eContainer() instanceof org.emftext.language.java.classifiers.Interface) {&#xA;&#x9;return true;&#xA;}&#xA;&#xA;for( org.emftext.language.java.modifiers.AnnotationInstanceOrModifier modifier : this.getAnnotationsAndModifiers()) {&#xA;&#x9;if(modifier instanceof org.emftext.language.java.modifiers.Static) {&#xA;&#x9;&#x9;return true;&#xA;&#x9;}&#xA;}&#xA;return false;"/>
          <details key="documentation" value="&#xA; Returns true if this element is static (either by an explicit modifier &lt;code>static&lt;/code>&#xA; or because this element is part of an interface).&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="removeModifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="java.util.List&lt; org.emftext.language.java.modifiers.AnnotationInstanceOrModifier> modifiers = getAnnotationsAndModifiers();&#xA;java.util.List&lt; org.emftext.language.java.modifiers.AnnotationInstanceOrModifier> modifiersToRemove = new java.util.ArrayList&lt; org.emftext.language.java.modifiers.AnnotationInstanceOrModifier>();&#xA;for ( org.emftext.language.java.modifiers.AnnotationInstanceOrModifier modifier : modifiers) {&#xA;&#x9;if (modifierType.isInstance(modifier)) {&#xA;&#x9;&#x9;modifiersToRemove.add(modifier);&#xA;&#x9;}&#xA;}&#xA;modifiers.removeAll(modifiersToRemove);"/>
          <details key="documentation" value="&#xA; Removes the given type of modifier from this element.&#xA;"/>
        </eAnnotations>
        <eParameters name="modifierType">
          <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
            <eTypeArguments/>
          </eGenericType>
        </eParameters>
      </eOperations>
      <eOperations name="makePublic">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="if (isPublic()) {&#xA;&#x9;return;&#xA;}&#xA;removeModifier( org.emftext.language.java.modifiers.Private.class);&#xA;removeModifier( org.emftext.language.java.modifiers.Protected.class);&#xA;getAnnotationsAndModifiers().add( org.emftext.language.java.modifiers.ModifiersFactory.eINSTANCE.createPublic());"/>
          <details key="documentation" value="&#xA; Sets the visibility of this element to &lt;code>public&lt;/code>.&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="makePrivate">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="if (isPrivate()) {&#xA;&#x9;return;&#xA;}&#xA;removeModifier( org.emftext.language.java.modifiers.Public.class);&#xA;removeModifier( org.emftext.language.java.modifiers.Protected.class);&#xA;getAnnotationsAndModifiers().add( org.emftext.language.java.modifiers.ModifiersFactory.eINSTANCE.createPrivate());"/>
          <details key="documentation" value="&#xA; Sets the visibility of this element to &lt;code>private&lt;/code>.&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="makeProtected">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="if (isProtected()) {&#xA;&#x9;return;&#xA;}&#xA;removeModifier( org.emftext.language.java.modifiers.Private.class);&#xA;removeModifier( org.emftext.language.java.modifiers.Public.class);&#xA;getAnnotationsAndModifiers().add( org.emftext.language.java.modifiers.ModifiersFactory.eINSTANCE.createProtected());"/>
          <details key="documentation" value="&#xA; Sets the visibility of this element to &lt;code>protected&lt;/code>.&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getModifiers" upperBound="-1" eType="#_Wo2Ys9z1Ed2bJ_pQViWxFg">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.modifiers.AnnotationInstanceOrModifier> elements = getAnnotationsAndModifiers();&#xA;org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.modifiers.Modifier> modifiers = new org.eclipse.emf.common.util.BasicEList&lt; org.emftext.language.java.modifiers.Modifier>(); &#xA;for ( org.emftext.language.java.modifiers.AnnotationInstanceOrModifier next : elements) {&#xA;&#x9;if (next instanceof org.emftext.language.java.modifiers.Modifier) {&#xA;&#x9;&#x9;modifiers.add(( org.emftext.language.java.modifiers.Modifier) next);&#xA;&#x9;}&#xA;}&#xA;return org.eclipse.emf.common.util.ECollections.unmodifiableEList(modifiers);"/>
          <details key="documentation" value="&#xA; Returns an unmodifiable list of the modifiers that apply to this element.&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="removeAllModifiers">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="java.util.List&lt; org.emftext.language.java.modifiers.Modifier> modifiers = getModifiers();&#xA;org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.modifiers.AnnotationInstanceOrModifier> elements = getAnnotationsAndModifiers();&#xA;elements.removeAll(modifiers);"/>
          <details key="documentation" value="&#xA; Removes all modifiers from this element.&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="hasModifier" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="java.util.List&lt; org.emftext.language.java.modifiers.AnnotationInstanceOrModifier> modifiers = getAnnotationsAndModifiers();&#xA;for ( org.emftext.language.java.modifiers.AnnotationInstanceOrModifier modifier : modifiers) {&#xA;&#x9;if (type.isInstance(modifier)) {&#xA;&#x9;&#x9;return true;&#xA;&#x9;}&#xA;}&#xA;return false;"/>
          <details key="documentation" value="&#xA; Checks whether this element has an modifier of the given type.&#xA;"/>
        </eAnnotations>
        <eParameters name="type">
          <eGenericType eClassifier="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EJavaClass">
            <eTypeArguments/>
          </eGenericType>
        </eParameters>
      </eOperations>
      <eOperations name="isPublic" 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 hasModifier( org.emftext.language.java.modifiers.Public.class);"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
      <eOperations name="isPrivate" 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 hasModifier( org.emftext.language.java.modifiers.Private.class);"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
      <eOperations name="isProtected" 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 hasModifier( org.emftext.language.java.modifiers.Protected.class);"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
      <eOperations name="addModifier">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="getAnnotationsAndModifiers().add(newModifier);"/>
          <details key="documentation" value="&#xA; Adds the given type of modifier to this element. This method does not&#xA; check for duplicate modifiers!&#xA;"/>
        </eAnnotations>
        <eParameters name="newModifier" lowerBound="1" eType="#_Wo2Ys9z1Ed2bJ_pQViWxFg"/>
      </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="#_Wo2Ys9z1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Yt9z1Ed2bJ_pQViWxFg" name="Abstract"
        eSuperTypes="#_Wo2Ys9z1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Yvdz1Ed2bJ_pQViWxFg" name="Final"
        eSuperTypes="#_Wo2Ys9z1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Ywdz1Ed2bJ_pQViWxFg" name="Native"
        eSuperTypes="#_Wo2Ys9z1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Yudz1Ed2bJ_pQViWxFg" name="Protected"
        eSuperTypes="#_Wo2Ys9z1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Ytdz1Ed2bJ_pQViWxFg" name="Public"
        eSuperTypes="#_Wo2Ys9z1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Yu9z1Ed2bJ_pQViWxFg" name="Private"
        eSuperTypes="#_Wo2Ys9z1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Yv9z1Ed2bJ_pQViWxFg" name="Static"
        eSuperTypes="#_Wo2Ys9z1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Yydz1Ed2bJ_pQViWxFg" name="Strictfp"
        eSuperTypes="#_Wo2Ys9z1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Yw9z1Ed2bJ_pQViWxFg" name="Synchronized"
        eSuperTypes="#_Wo2Ys9z1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Yxdz1Ed2bJ_pQViWxFg" name="Transient"
        eSuperTypes="#_Wo2Ys9z1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Yx9z1Ed2bJ_pQViWxFg" name="Volatile"
        eSuperTypes="#_Wo2Ys9z1Ed2bJ_pQViWxFg"/>
  </eSubpackages>
  <eSubpackages name="operators" nsURI="http://www.emftext.org/java/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/java/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/java/references" nsPrefix="references">
    <eClassifiers xsi:type="ecore:EClass" name="Reference" abstract="true" eSuperTypes="#//expressions/PrimaryExpression #//generics/TypeArgumentable">
      <eOperations name="getReferencedType" eType="#_Wo2ZO9z1Ed2bJ_pQViWxFg">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="if (this instanceof org.emftext.language.java.literals.Literal) {&#xA;&#x9;return (( org.emftext.language.java.literals.Literal) this).getType();&#xA;}&#xA;&#xA;org.emftext.language.java.types.Type type = null;&#xA;&#xA;//referenced element point to a type&#xA;if (this instanceof org.emftext.language.java.types.TypedElement) {&#xA;&#x9;org.emftext.language.java.types.TypeReference typeRef = (( org.emftext.language.java.types.TypedElement) this).getTypeReference();&#xA;&#x9;type = typeRef.getBoundTarget(this);&#xA;}&#xA;//element points to this or super&#xA;else if (this instanceof org.emftext.language.java.references.SelfReference) {&#xA;&#x9;org.emftext.language.java.types.Type thisClass = null;&#xA;&#x9;if (this.getPrevious() != null) {&#xA;&#x9;&#x9;thisClass = this.getPrevious().getReferencedType();&#xA;&#x9;}&#xA;&#x9;else {&#xA;&#x9;&#x9;org.emftext.language.java.classifiers.AnonymousClass anonymousContainer = getContainingAnonymousClass();&#xA;&#x9;&#x9;if (anonymousContainer != null) {&#xA;&#x9;&#x9;&#x9;thisClass = anonymousContainer;&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;else {&#xA;&#x9;&#x9;&#x9;thisClass = getContainingConcreteClassifier();&#x9;&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;//find super class if &quot;self&quot; is &quot;super&quot;&#xA;&#x9;if ((( org.emftext.language.java.references.SelfReference) this).getSelf() instanceof org.emftext.language.java.literals.Super) {&#xA;&#x9;&#x9;if (thisClass instanceof org.emftext.language.java.classifiers.Class) {&#xA;&#x9;&#x9;&#x9;return (( org.emftext.language.java.classifiers.Class)thisClass).getSuperClass();&#xA;&#x9;&#x9;}&#xA;&#x9;&#x9;if (thisClass instanceof org.emftext.language.java.classifiers.AnonymousClass) {&#xA;&#x9;&#x9;&#x9;return (( org.emftext.language.java.classifiers.AnonymousClass)thisClass).getSuperClassifier();&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;return thisClass;&#xA;}&#xA;//element points to the object's class object&#xA;else if(this instanceof org.emftext.language.java.references.ReflectiveClassReference) {&#xA;&#x9;return getClassClass();&#xA;}&#xA;//referenced element points to an element with a type&#xA;else if (this instanceof org.emftext.language.java.references.ElementReference) {&#xA;&#x9;org.emftext.language.java.references.ReferenceableElement target = &#xA;&#x9;&#x9;( org.emftext.language.java.references.ReferenceableElement) (( org.emftext.language.java.references.ElementReference) this).getTarget();&#xA;&#x9;if (target.eIsProxy()) {&#xA;&#x9;&#x9;type = null;&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;//Navigate through AdditionalLocalVariable or Field&#xA;&#x9;if(target instanceof org.emftext.language.java.variables.AdditionalLocalVariable) {&#xA;&#x9;&#x9;target = ( org.emftext.language.java.references.ReferenceableElement) target.eContainer();&#xA;&#x9;}&#xA;&#x9;if(target instanceof org.emftext.language.java.members.AdditionalField) {&#xA;&#x9;&#x9;target = ( org.emftext.language.java.references.ReferenceableElement) target.eContainer();&#xA;&#x9;}&#xA;&#x9;if (target instanceof org.emftext.language.java.types.TypedElement) {&#xA;&#x9;&#x9;org.emftext.language.java.types.TypeReference typeRef = (( org.emftext.language.java.types.TypedElement) target).getTypeReference();&#xA;&#x9;&#x9;if (typeRef != null) {&#xA;&#x9;&#x9;&#x9;type = typeRef.getBoundTarget(this);&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;&#x9;else if (target instanceof org.emftext.language.java.types.Type /*e.g. Annotation*/ ) {&#xA;&#x9;&#x9;return ( org.emftext.language.java.types.Type) target;&#xA;&#x9;}&#xA;&#x9;else if(target instanceof org.emftext.language.java.members.EnumConstant) {&#xA;&#x9;&#x9;type = ( org.emftext.language.java.classifiers.Enumeration)target.eContainer();&#xA;&#x9;}&#x9;&#xA;}&#xA;//Strings may also appear as reference&#xA;else if (this instanceof org.emftext.language.java.references.StringReference) {&#xA;&#x9;return getStringClass();&#xA;}&#xA;else if (this instanceof org.emftext.language.java.expressions.NestedExpression) {&#xA;&#x9;type = (( org.emftext.language.java.expressions.NestedExpression) this).getExpression().getType();&#xA;}&#xA;else if (this instanceof org.emftext.language.java.references.PrimitiveTypeReference) {&#xA;&#x9;type = (( org.emftext.language.java.references.PrimitiveTypeReference)this).getPrimitiveType();&#xA;}&#xA;else {&#xA;&#x9;assert(false);&#xA;}&#xA;return type;"/>
          <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 org.emftext.language.java.references.Reference) { &#xA;&#x9; org.emftext.language.java.references.Reference container = ( org.emftext.language.java.references.Reference) eContainer( ) ; &#xA;&#x9;  if (this.equals(container.getNext())) {&#xA;&#x9;&#x9; return container;&#xA;&#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="#_Wo2ZO9z1Ed2bJ_pQViWxFg">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.types.Type> resultList = new org.eclipse.emf.common.util.BasicEList&lt; org.emftext.language.java.types.Type>();&#xA;&#xA;for( org.emftext.language.java.expressions.Expression exp : getArguments()) {&#xA;&#x9;org.emftext.language.java.types.Type type = exp.getType();&#xA;&#x9;resultList.add(type);&#xA;}&#xA;return resultList;"/>
          <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="#_Wo2YDNz1Ed2bJ_pQViWxFg" 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" lowerBound="1"
          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="#_Wo2ZR9z1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="StringReference" eSuperTypes="#//references/Reference">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" lowerBound="1"
          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" lowerBound="1"
          eType="#//literals/Self" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="PackageReference" eSuperTypes="#//references/ReferenceableElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="subpackages" upperBound="-1"
          eType="#//references/PackageReference" containment="true"/>
    </eClassifiers>
  </eSubpackages>
  <eSubpackages xmi:id="_Wo2Yy9z1Ed2bJ_pQViWxFg" name="statements" nsURI="http://www.emftext.org/java/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="#_Wo2YzNz1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="StatementListContainer" abstract="true"
        eSuperTypes="#//commons/Commentable">
      <eOperations name="getLocalVariable" lowerBound="1" eType="#//variables/LocalVariable">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.variables.LocalVariable> localVariables = getChildrenByType( org.emftext.language.java.variables.LocalVariable.class);&#xA;for ( org.emftext.language.java.variables.LocalVariable localVariable : localVariables) {&#xA;&#x9;if (localVariable.getName().equals(name)) {&#xA;&#x9;&#x9;return localVariable;&#xA;&#x9;}&#xA;}&#xA;return null;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
        <eParameters name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EReference" name="statements" upperBound="-1"
          eType="#_Wo2YzNz1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Conditional" abstract="true" eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="condition" eType="#_Wo2YDNz1Ed2bJ_pQViWxFg"
          containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Y9tz1Ed2bJ_pQViWxFg" name="ForLoopInitializer"
        abstract="true" eSuperTypes="#//commons/Commentable"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2YzNz1Ed2bJ_pQViWxFg" name="Statement"
        abstract="true" eSuperTypes="#//commons/Commentable"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Y4tz1Ed2bJ_pQViWxFg" name="SwitchCase"
        abstract="true" eSuperTypes="#//statements/StatementListContainer"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Yztz1Ed2bJ_pQViWxFg" name="Assert"
        eSuperTypes="#_Wo2YzNz1Ed2bJ_pQViWxFg #//statements/Conditional">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2Y0tz1Ed2bJ_pQViWxFg"
          name="errorMessage" eType="#_Wo2YDNz1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZI9z1Ed2bJ_pQViWxFg" name="Break"
        eSuperTypes="#//statements/Jump"/>
    <eClassifiers xsi:type="ecore:EClass" name="Block" eSuperTypes="#//members/Member #_Wo2YzNz1Ed2bJ_pQViWxFg #//statements/StatementListContainer #//modifiers/Modifiable"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZD9z1Ed2bJ_pQViWxFg" name="CatchBlock"
        eSuperTypes="#//statements/StatementListContainer">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2ZEdz1Ed2bJ_pQViWxFg"
          name="parameter" lowerBound="1" eType="#//parameters/OrdinaryParameter"
          containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Y1Nz1Ed2bJ_pQViWxFg" name="Condition"
        eSuperTypes="#_Wo2YzNz1Ed2bJ_pQViWxFg #//statements/StatementContainer #//statements/Conditional">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2Y2tz1Ed2bJ_pQViWxFg"
          name="elseStatement" eType="#_Wo2YzNz1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZJ9z1Ed2bJ_pQViWxFg" name="Continue"
        eSuperTypes="#//statements/Jump"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Y69z1Ed2bJ_pQViWxFg" name="DefaultSwitchCase"
        eSuperTypes="#_Wo2Y4tz1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZBtz1Ed2bJ_pQViWxFg" name="DoWhileLoop"
        eSuperTypes="#_Wo2ZANz1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZK9z1Ed2bJ_pQViWxFg" name="EmptyStatement"
        eSuperTypes="#_Wo2YzNz1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZMtz1Ed2bJ_pQViWxFg" name="ExpressionStatement"
        eSuperTypes="#_Wo2YzNz1Ed2bJ_pQViWxFg">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2ZNNz1Ed2bJ_pQViWxFg"
          name="expression" lowerBound="1" eType="#_Wo2YDNz1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Y7dz1Ed2bJ_pQViWxFg" name="ForLoop"
        eSuperTypes="#_Wo2YzNz1Ed2bJ_pQViWxFg #//statements/StatementContainer #//statements/Conditional">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2Y79z1Ed2bJ_pQViWxFg"
          name="init" eType="#_Wo2Y9tz1Ed2bJ_pQViWxFg" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2Y8tz1Ed2bJ_pQViWxFg"
          name="updates" upperBound="-1" eType="#_Wo2YDNz1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Y-Nz1Ed2bJ_pQViWxFg" name="ForEachLoop"
        eSuperTypes="#_Wo2YzNz1Ed2bJ_pQViWxFg #//statements/StatementContainer">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2Y-tz1Ed2bJ_pQViWxFg"
          name="next" lowerBound="1" eType="#//parameters/OrdinaryParameter" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2Y_Nz1Ed2bJ_pQViWxFg"
          name="collection" lowerBound="1" eType="#_Wo2YDNz1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Jump" abstract="true" eSuperTypes="#_Wo2YzNz1Ed2bJ_pQViWxFg">
      <eStructuralFeatures xsi:type="ecore:EReference" name="target" eType="#_Wo2ZLdz1Ed2bJ_pQViWxFg"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZLdz1Ed2bJ_pQViWxFg" name="JumpLabel"
        eSuperTypes="#_Wo2YzNz1Ed2bJ_pQViWxFg #//statements/StatementContainer #//commons/NamedElement"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZNtz1Ed2bJ_pQViWxFg" name="LocalVariableStatement"
        eSuperTypes="#_Wo2YzNz1Ed2bJ_pQViWxFg">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2ZONz1Ed2bJ_pQViWxFg"
          name="variable" lowerBound="1" eType="#//variables/LocalVariable" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Y6dz1Ed2bJ_pQViWxFg" name="NormalSwitchCase"
        eSuperTypes="#_Wo2Y4tz1Ed2bJ_pQViWxFg #//statements/Conditional"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZG9z1Ed2bJ_pQViWxFg" name="Return"
        eSuperTypes="#_Wo2YzNz1Ed2bJ_pQViWxFg">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2ZHdz1Ed2bJ_pQViWxFg"
          name="returnValue" eType="#_Wo2YDNz1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2Y3Nz1Ed2bJ_pQViWxFg" name="Switch"
        eSuperTypes="#_Wo2YzNz1Ed2bJ_pQViWxFg">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2Y3tz1Ed2bJ_pQViWxFg"
          name="cases" upperBound="-1" eType="#_Wo2Y4tz1Ed2bJ_pQViWxFg" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2Y4Nz1Ed2bJ_pQViWxFg"
          name="variable" lowerBound="1" eType="#_Wo2YDNz1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZFdz1Ed2bJ_pQViWxFg" name="SynchronizedBlock"
        eSuperTypes="#_Wo2YzNz1Ed2bJ_pQViWxFg #//statements/StatementListContainer">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2ZF9z1Ed2bJ_pQViWxFg"
          name="lockProvider" lowerBound="1" eType="#_Wo2YDNz1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZH9z1Ed2bJ_pQViWxFg" name="Throw"
        eSuperTypes="#_Wo2YzNz1Ed2bJ_pQViWxFg">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2ZIdz1Ed2bJ_pQViWxFg"
          name="throwable" lowerBound="1" eType="#_Wo2YDNz1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZCNz1Ed2bJ_pQViWxFg" name="TryBlock"
        eSuperTypes="#_Wo2YzNz1Ed2bJ_pQViWxFg #//statements/StatementListContainer">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2ZDtz1Ed2bJ_pQViWxFg"
          name="catcheBlocks" upperBound="-1" eType="#_Wo2ZD9z1Ed2bJ_pQViWxFg" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2ZDNz1Ed2bJ_pQViWxFg"
          name="finallyBlock" eType="#//statements/Block" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZANz1Ed2bJ_pQViWxFg" name="WhileLoop"
        eSuperTypes="#_Wo2YzNz1Ed2bJ_pQViWxFg #//statements/StatementContainer">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2ZAtz1Ed2bJ_pQViWxFg"
          name="condition" lowerBound="1" eType="#_Wo2YDNz1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
  </eSubpackages>
  <eSubpackages xmi:id="_Wo2ZOtz1Ed2bJ_pQViWxFg" name="types" nsURI="http://www.emftext.org/java/types"
      nsPrefix="types">
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZO9z1Ed2bJ_pQViWxFg" 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="org.emftext.language.java.types.Type _this = this;&#xA;//comparison for type parameters&#xA;if (_this instanceof org.emftext.language.java.generics.TypeParameter) {&#xA;&#x9;org.emftext.language.java.generics.TypeParameter typeParameter = ( org.emftext.language.java.generics.TypeParameter) _this;&#xA;&#x9;for ( org.emftext.language.java.types.TypeReference referencedType : typeParameter.getExtendTypes()) {&#xA;&#x9;&#x9;if (referencedType.getTarget() != null &amp;&amp; !referencedType.getTarget().eIsProxy() &amp;&amp; referencedType.getTarget().equalsType(arrayDimension, otherType, otherArrayDimension)) {&#xA;&#x9;&#x9;&#x9;return true;&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;&#x9;if (typeParameter.getExtendTypes().isEmpty()) {&#xA;&#x9;&#x9;if (getObjectClass().equalsType(arrayDimension, otherType, otherArrayDimension)) {&#xA;&#x9;&#x9;&#x9;return true;&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;} &#xA;if (otherType instanceof org.emftext.language.java.generics.TypeParameter) {&#xA;&#x9;org.emftext.language.java.generics.TypeParameter typeParameter = ( org.emftext.language.java.generics.TypeParameter) otherType;&#xA;&#x9;for ( org.emftext.language.java.types.TypeReference referencedType : typeParameter.getExtendTypes()) {&#xA;&#x9;&#x9;if (referencedType.getTarget() != null &amp;&amp; !referencedType.getTarget().eIsProxy() &amp;&amp; equalsType(arrayDimension, referencedType.getTarget(), otherArrayDimension)) {&#xA;&#x9;&#x9;&#x9;return true;&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;&#x9;if (typeParameter.getExtendTypes().isEmpty()) {&#xA;&#x9;&#x9;if (equalsType(arrayDimension, getObjectClass(), otherArrayDimension)) {&#xA;&#x9;&#x9;&#x9;return true;&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;}&#xA;&#xA;//do comparison on the classifier level&#xA;if (_this instanceof org.emftext.language.java.types.PrimitiveType) {&#xA;&#x9;_this = (( org.emftext.language.java.types.PrimitiveType)_this).wrapPrimitiveType();&#xA;}&#xA;if (otherType instanceof org.emftext.language.java.types.PrimitiveType) {&#xA;&#x9;otherType = (( org.emftext.language.java.types.PrimitiveType) otherType).wrapPrimitiveType();&#xA;}&#xA;&#xA;if (arrayDimension == otherArrayDimension &amp;&amp;&#xA;&#x9;&#x9;otherType instanceof org.emftext.language.java.classifiers.Classifier &amp;&amp; _this instanceof org.emftext.language.java.classifiers.Classifier &amp;&amp;&#xA;&#x9;&#x9;(otherType.equals(_this))) {&#x9;&#xA;&#x9;return true;&#xA;}&#xA;&#xA;return false;"/>
          <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="#_Wo2ZO9z1Ed2bJ_pQViWxFg"/>
        <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;&#xA;org.emftext.language.java.types.Type _this = this;&#xA;&#xA;if (_this instanceof org.emftext.language.java.util.TemporalCompositeClassifier || otherType instanceof org.emftext.language.java.util.TemporalCompositeClassifier) {&#xA;&#x9;org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.types.Type> _thisTypeList = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.types.Type>();&#xA;&#x9;org.eclipse.emf.common.util.EList&lt; org.emftext.language.java.types.Type> otherTypeList = new org.emftext.language.java.util.UniqueEList&lt; org.emftext.language.java.types.Type>();&#xA;&#x9;if (_this instanceof org.emftext.language.java.util.TemporalCompositeClassifier) {&#xA;&#x9;&#x9;for( org.eclipse.emf.ecore.EObject aType : (( org.emftext.language.java.util.TemporalCompositeClassifier)_this).getSuperTypes()) {&#xA;&#x9;&#x9;&#x9;_thisTypeList.add(( org.emftext.language.java.types.Type)aType);&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;&#x9;else {&#xA;&#x9;&#x9;_thisTypeList.add(_this);&#xA;&#x9;}&#xA;&#x9;if (otherType instanceof org.emftext.language.java.util.TemporalCompositeClassifier) {&#xA;&#x9;&#x9;for( org.eclipse.emf.ecore.EObject aType : (( org.emftext.language.java.util.TemporalCompositeClassifier)otherType).getSuperTypes()) {&#xA;&#x9;&#x9;&#x9;otherTypeList.add(( org.emftext.language.java.types.Type)aType);&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;&#x9;else {&#xA;&#x9;&#x9;otherTypeList.add(_this);&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;&#xA;&#x9;for( org.emftext.language.java.types.Type one_thisType : _thisTypeList) {&#xA;&#x9;&#x9;for( org.emftext.language.java.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;}&#x9;&#xA;&#x9;&#x9;}&#xA;&#x9;}&#xA;&#x9;return false;&#xA;}&#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;&#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;&#xA;//String, primitives, and arrays are serializable&#xA;org.emftext.language.java.classifiers.ConcreteClassifier serializableClass = ( org.emftext.language.java.classifiers.ConcreteClassifier) org.eclipse.emf.ecore.util.EcoreUtil.resolve(&#xA;&#x9;&#x9;getConcreteClassifierProxy(&quot;java.io.Serializable&quot;), _this);&#xA;if (otherType.equals(serializableClass)) {&#xA;&#x9;if (_this.equals(serializableClass)) {&#xA;&#x9; &#x9;&#x9;&#x9;return true;&#xA;&#x9;}&#xA;&#x9;else if (_this.equals(getStringClass())) {&#xA;&#x9; &#x9;&#x9;&#x9;return true;&#xA;&#x9;}&#xA;&#x9;else if (_this instanceof org.emftext.language.java.types.PrimitiveType) {&#xA;&#x9;&#x9;return true;&#xA;&#x9;}&#xA;&#x9;else if (arrayDimension > 0) {&#xA;&#x9;&#x9;//all arrays are serializable&#xA;&#x9;&#x9;return true;&#xA;&#x9;}&#xA;}&#xA;&#xA;//if one of us is a parameter to the best of my knowledge, we might match&#xA;if(_this instanceof org.emftext.language.java.generics.TypeParameter) {&#xA;&#x9;return true;&#xA;}&#xA;if(otherType instanceof org.emftext.language.java.generics.TypeParameter ) {&#xA;&#x9;return true;&#xA;}&#xA;&#xA;//if array dimensions do not match, I am no subtype&#xA;boolean isTypeParameter = false;&#x9;&#x9;&#xA;if (otherArrayType instanceof org.emftext.language.java.types.TypedElement) {&#xA;&#x9;org.emftext.language.java.types.Type type = (( org.emftext.language.java.types.TypedElement)otherArrayType).getTypeReference().getTarget();&#xA;&#x9;isTypeParameter = type instanceof org.emftext.language.java.generics.TypeParameter;&#xA;}&#xA;boolean isVariableLengthParameter = otherArrayType instanceof org.emftext.language.java.parameters.VariableLengthParameter;&#xA;&#xA;long otherArrayDim = 0;&#xA;if(otherArrayType != null) {&#xA;&#x9;otherArrayDim = otherArrayType.getArrayDimension();&#xA;}&#xA;&#xA;if (isTypeParameter &amp;&amp; isVariableLengthParameter) {&#xA;&#x9;if(arrayDimension != otherArrayDim &amp;&amp; &#xA;&#x9;&#x9;arrayDimension != otherArrayDim- 1 &amp;&amp; &#xA;&#x9;&#x9;arrayDimension &lt; otherArrayDim) {&#xA;&#x9;&#x9;&#xA;&#x9;&#x9;return false;&#xA;&#x9;}&#xA;}&#xA;else if (isTypeParameter) {&#xA;&#x9;if(arrayDimension &lt; otherArrayDim) {&#xA;&#x9;&#x9;return false;&#xA;&#x9;}&#xA;}&#xA;else if (isVariableLengthParameter) {&#xA;&#x9;if(arrayDimension != otherArrayDim &amp;&amp; arrayDimension != otherArrayDim- 1) {&#xA;&#x9;&#x9;return false;&#xA;&#x9;}&#xA;}&#xA;else {&#xA;&#x9;if(arrayDimension != otherArrayDim) {&#xA;&#x9;&#x9;return false;&#xA;&#x9;}&#xA;}&#xA;&#xA;//annotations&#xA;if(_this instanceof org.emftext.language.java.classifiers.Annotation &amp;&amp; &#xA;&#x9;&#x9;(otherType.equals(getAnnotationInterface()) ||&#xA;&#x9;&#x9;&#x9;&#x9;(( org.emftext.language.java.classifiers.ConcreteClassifier)_this).getAllSuperClassifiers(&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;).contains(getAnnotationInterface()))) {&#xA;&#x9;return true;&#xA;}&#xA;&#xA;//do comparison on the classifier level&#xA;if (_this instanceof org.emftext.language.java.types.PrimitiveType) {&#xA;&#x9;_this = (( org.emftext.language.java.types.PrimitiveType) _this).wrapPrimitiveType();&#xA;}&#xA;if (otherType instanceof org.emftext.language.java.types.PrimitiveType) {&#xA;&#x9;otherType = (( org.emftext.language.java.types.PrimitiveType) otherType).wrapPrimitiveType();&#xA;}&#xA;&#xA;//compare in type hierarchy&#xA;if (otherType instanceof org.emftext.language.java.classifiers.ConcreteClassifier &amp;&amp; _this instanceof org.emftext.language.java.classifiers.ConcreteClassifier &amp;&amp;&#xA;&#x9;&#x9;(otherType.equals(_this) || &#xA;&#x9;&#x9;&#x9;&#x9;(( org.emftext.language.java.classifiers.ConcreteClassifier)_this).getAllSuperClassifiers(&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;).contains(otherType))) {&#xA;&#x9;return true;&#xA;}&#xA;&#xA;if (otherType instanceof org.emftext.language.java.classifiers.ConcreteClassifier &amp;&amp; _this instanceof org.emftext.language.java.classifiers.AnonymousClass &amp;&amp;&#xA;&#x9;&#x9;(( org.emftext.language.java.classifiers.AnonymousClass)_this).getAllSuperClassifiers(&#xA;&#x9;&#x9;&#x9;&#x9;).contains(otherType)) {&#xA;&#x9;&#xA;&#x9;return true;&#xA;}&#xA;&#xA;//everything can be implicitly casted to CharSequence, so I match when the other type is a CharSequence&#xA;org.emftext.language.java.classifiers.Interface charSequenceClass = getLibInterface(&quot;CharSequence&quot;);&#xA;&#xA;if (otherType instanceof org.emftext.language.java.classifiers.ConcreteClassifier) {&#xA;&#x9;if(otherType.equals(charSequenceClass) ||&#xA;&#x9;&#x9;&#x9;(( org.emftext.language.java.classifiers.ConcreteClassifier)otherType).getAllSuperClassifiers(&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;).contains(charSequenceClass)) {&#xA;&#x9;&#x9;return true;&#xA;&#x9;}&#xA;}&#xA;&#xA;//there are some specifics for primitive types not reflected in the type hierarchy&#xA;if (otherType instanceof org.emftext.language.java.classifiers.Class) {&#xA;&#x9;org.emftext.language.java.types.PrimitiveType primitiveType = (( org.emftext.language.java.classifiers.Class) otherType).unWrapPrimitiveType();&#xA;&#x9;if(primitiveType == null) {&#xA;&#x9;&#x9;return false;&#xA;&#x9;}&#xA;&#x9;otherType = primitiveType;&#xA;}&#xA;&#xA;if (_this instanceof org.emftext.language.java.classifiers.Class) {&#xA;&#x9;org.emftext.language.java.types.PrimitiveType primitiveType = (( org.emftext.language.java.classifiers.Class) _this).unWrapPrimitiveType();&#xA;&#x9;if(primitiveType == null) {&#xA;&#x9;&#x9;return false;&#xA;&#x9;}&#xA;&#x9;_this = primitiveType;&#xA;}&#xA;&#xA;if (_this instanceof org.emftext.language.java.types.Boolean) {&#xA;&#x9;if (otherType instanceof org.emftext.language.java.types.Boolean) {&#xA;&#x9;&#x9;return true;&#xA;&#x9;}&#xA;&#x9;else {&#xA;&#x9;&#x9;return false;&#xA;&#x9;}&#xA;}&#xA;if (_this instanceof org.emftext.language.java.types.Byte ||&#xA;&#x9;&#x9;_this instanceof org.emftext.language.java.types.Int ||&#xA;&#x9;&#x9;_this instanceof org.emftext.language.java.types.Short ||&#xA;&#x9;&#x9;_this instanceof org.emftext.language.java.types.Long ||&#xA;&#x9;&#x9;_this instanceof org.emftext.language.java.types.Char) {&#xA;&#x9;if (otherType instanceof org.emftext.language.java.types.Byte ||&#xA;&#x9;&#x9;&#x9;otherType instanceof org.emftext.language.java.types.Int ||&#xA;&#x9;&#x9;&#x9;otherType instanceof org.emftext.language.java.types.Short ||&#xA;&#x9;&#x9;&#x9;otherType instanceof org.emftext.language.java.types.Long ||&#xA;&#x9;&#x9;&#x9;otherType instanceof org.emftext.language.java.types.Char ||&#xA;&#x9;&#x9;&#x9;otherType instanceof org.emftext.language.java.types.Float ||&#xA;&#x9;&#x9;&#x9;otherType instanceof org.emftext.language.java.types.Double) {&#xA;&#x9;&#x9;return true;&#xA;&#x9;}&#xA;&#x9;else {&#xA;&#x9;&#x9;return false;&#xA;&#x9;}&#xA;}&#xA;if (_this instanceof org.emftext.language.java.types.Float ||&#xA;&#x9;&#x9;_this instanceof org.emftext.language.java.types.Double) {&#xA;&#x9;if (otherType instanceof org.emftext.language.java.types.Float ||&#xA;&#x9;&#x9;&#x9;otherType instanceof org.emftext.language.java.types.Double) {&#xA;&#x9;&#x9;return true;&#xA;&#x9;}&#xA;&#x9;else {&#xA;&#x9;&#x9;return false;&#xA;&#x9;}&#xA;}&#xA;&#xA;return false;"/>
          <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="#_Wo2ZO9z1Ed2bJ_pQViWxFg"/>
        <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();"/>
          <details key="documentation" value=""/>
        </eAnnotations>
        <eParameters name="context" eType="#//commons/Commentable"/>
      </eOperations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZP9z1Ed2bJ_pQViWxFg" name="TypedElement"
        abstract="true" eSuperTypes="#//commons/Commentable">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2ZQdz1Ed2bJ_pQViWxFg"
          name="typeReference" lowerBound="1" eType="#_Wo2ZPdz1Ed2bJ_pQViWxFg" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZPdz1Ed2bJ_pQViWxFg" name="TypeReference"
        abstract="true" eSuperTypes="#//commons/Commentable">
      <eOperations name="getTarget" eType="#_Wo2ZO9z1Ed2bJ_pQViWxFg">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="return getBoundTarget(null);"/>
          <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; @return the type&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="setTarget">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="if (type == null) {&#xA;&#x9;return;&#xA;}&#xA;&#xA;if (type.eIsProxy()) {&#xA;&#x9;return;&#xA;}&#xA;&#xA;if (this instanceof org.emftext.language.java.types.NamespaceClassifierReference) {&#xA;&#x9;org.emftext.language.java.types.NamespaceClassifierReference nsClassifierReference = ( org.emftext.language.java.types.NamespaceClassifierReference) this;&#xA;&#x9;nsClassifierReference.getClassifierReferences().clear();&#xA;&#x9;nsClassifierReference.getNamespaces().clear();&#xA;&#x9;nsClassifierReference.getNamespaces().addAll(type.getContainingContainerName());&#xA;&#x9;org.emftext.language.java.types.ClassifierReference classifierRef = org.emftext.language.java.types.TypesFactory.eINSTANCE.createClassifierReference();&#xA;&#x9;classifierRef.setTarget(type);&#xA;&#x9;nsClassifierReference.getClassifierReferences().add(classifierRef);&#x9;&#x9;&#x9;&#xA;}"/>
          <details key="documentation" value="&#xA; Sets the type targeted by this type reference&#xA; &#xA; @param type the type&#xA;"/>
        </eAnnotations>
        <eParameters name="type" eType="#//classifiers/Classifier"/>
      </eOperations>
      <eOperations name="getBoundTarget" eType="#_Wo2ZO9z1Ed2bJ_pQViWxFg">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.emftext.language.java.types.Type type = null;&#xA;if (this instanceof org.emftext.language.java.types.ClassifierReference || &#xA;&#x9;&#x9;this instanceof org.emftext.language.java.types.NamespaceClassifierReference) {&#xA;&#x9;org.emftext.language.java.types.ClassifierReference classifierRef = getPureClassifierReference();&#xA;&#x9;if (classifierRef != null) {&#xA;&#x9;&#x9;type = classifierRef.getTarget();&#xA;&#x9;}&#xA;&#x9;&#xA;&#x9;if (reference instanceof org.emftext.language.java.references.MethodCall) {&#xA;&#x9;&#x9;org.emftext.language.java.references.MethodCall potentialCloneCall = ( org.emftext.language.java.references.MethodCall) reference;&#xA;&#x9;&#x9;//clone returns the type of the cloned in the case of arrays&#xA;&#x9;&#x9;org.emftext.language.java.references.ReferenceableElement potentialCloneCallTarget = potentialCloneCall.getTarget();&#xA;&#x9;&#x9;if (potentialCloneCallTarget != null &amp;&amp; &#xA;&#x9;&#x9;&#x9;&#x9;!potentialCloneCallTarget.eIsProxy() &amp;&amp; &#xA;&#x9;&#x9;&#x9;&#x9;&quot;clone&quot;.equals(potentialCloneCallTarget.getName()))  {&#xA;&#x9;&#x9;&#x9;if (potentialCloneCall.getPrevious() instanceof org.emftext.language.java.references.ElementReference) {&#xA;&#x9;&#x9;&#x9;&#x9;org.emftext.language.java.references.ElementReference prevRef = ( org.emftext.language.java.references.ElementReference) potentialCloneCall.getPrevious();&#xA;&#x9;&#x9;&#x9;&#x9;if (prevRef.getTarget() instanceof org.emftext.language.java.arrays.ArrayTypeable &amp;&amp; &#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&#x9;(( org.emftext.language.java.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;}&#xA;&#xA;else if(this instanceof org.emftext.language.java.types.PrimitiveType) {&#xA;&#x9;return ( org.emftext.language.java.types.PrimitiveType) this;&#xA;}&#xA;&#xA;//resolve parameter to real type&#xA;if (type instanceof org.emftext.language.java.generics.TypeParameter) {&#xA;&#x9;type = (( org.emftext.language.java.generics.TypeParameter) type).getBoundType(this, reference);&#xA;}&#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;&#x9;return null;&#xA;}&#xA;&#xA;return type;"/>
          <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="org.emftext.language.java.types.ClassifierReference classifierReference = null;&#xA;if (this instanceof org.emftext.language.java.types.ClassifierReference) {&#xA;&#x9;classifierReference = ( org.emftext.language.java.types.ClassifierReference) this;&#xA;}&#xA;if (this instanceof org.emftext.language.java.types.NamespaceClassifierReference) {&#xA;&#x9;org.emftext.language.java.types.NamespaceClassifierReference nsClassifierReference = ( org.emftext.language.java.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;"/>
          <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="#_Wo2ZPdz1Ed2bJ_pQViWxFg #//generics/TypeArgumentable">
      <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
          eType="#//classifiers/Classifier"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZQ9z1Ed2bJ_pQViWxFg" name="NamespaceClassifierReference"
        eSuperTypes="#_Wo2ZPdz1Ed2bJ_pQViWxFg #//commons/NamespaceAwareElement">
      <eStructuralFeatures xsi:type="ecore:EReference" xmi:id="_Wo2ZRdz1Ed2bJ_pQViWxFg"
          name="classifierReferences" lowerBound="1" upperBound="-1" eType="#//types/ClassifierReference"
          containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZR9z1Ed2bJ_pQViWxFg" name="PrimitiveType"
        abstract="true" eSuperTypes="#_Wo2ZO9z1Ed2bJ_pQViWxFg #_Wo2ZPdz1Ed2bJ_pQViWxFg">
      <eOperations name="getAllMembers" upperBound="-1" eType="#//members/Member">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.emftext.language.java.classifiers.Class javaClass = wrapPrimitiveType();&#x9;&#xA;return javaClass.getAllMembers(context);"/>
          <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="org.emftext.language.java.classifiers.Class javaClass = null;&#xA;&#xA;if (this instanceof org.emftext.language.java.types.Boolean) {&#xA;&#x9;javaClass = getLibClass(&quot;Boolean&quot;);&#xA;}&#xA;if (this instanceof org.emftext.language.java.types.Byte) {&#xA;&#x9;javaClass = getLibClass(&quot;Byte&quot;);&#xA;}&#xA;if (this instanceof org.emftext.language.java.types.Char) {&#xA;&#x9;javaClass = getLibClass(&quot;Character&quot;);&#xA;}&#xA;if (this instanceof org.emftext.language.java.types.Double) {&#xA;&#x9;javaClass = getLibClass(&quot;Double&quot;);&#xA;}&#xA;if (this instanceof org.emftext.language.java.types.Float) {&#xA;&#x9;javaClass = getLibClass(&quot;Float&quot;);&#xA;}&#xA;if (this instanceof org.emftext.language.java.types.Int) {&#xA;&#x9;javaClass = getLibClass(&quot;Integer&quot;);&#xA;}&#xA;if (this instanceof org.emftext.language.java.types.Long) {&#xA;&#x9;javaClass = getLibClass(&quot;Long&quot;);&#xA;}&#xA;if (this instanceof org.emftext.language.java.types.Short) {&#xA;&#x9;javaClass = getLibClass(&quot;Short&quot;);&#xA;}&#xA;if (this instanceof org.emftext.language.java.types.Void) {&#xA;&#x9;javaClass = getLibClass(&quot;Void&quot;);&#xA;}&#xA;return javaClass;"/>
          <details key="documentation" value="&#xA; @return primitive type as a class representation&#xA;"/>
        </eAnnotations>
      </eOperations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZS9z1Ed2bJ_pQViWxFg" name="Boolean"
        eSuperTypes="#_Wo2ZR9z1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZT9z1Ed2bJ_pQViWxFg" name="Byte"
        eSuperTypes="#_Wo2ZR9z1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZTdz1Ed2bJ_pQViWxFg" name="Char"
        eSuperTypes="#_Wo2ZR9z1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZWdz1Ed2bJ_pQViWxFg" name="Double"
        eSuperTypes="#_Wo2ZR9z1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZV9z1Ed2bJ_pQViWxFg" name="Float"
        eSuperTypes="#_Wo2ZR9z1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZU9z1Ed2bJ_pQViWxFg" name="Int"
        eSuperTypes="#_Wo2ZR9z1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZVdz1Ed2bJ_pQViWxFg" name="Long"
        eSuperTypes="#_Wo2ZR9z1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" xmi:id="_Wo2ZUdz1Ed2bJ_pQViWxFg" name="Short"
        eSuperTypes="#_Wo2ZR9z1Ed2bJ_pQViWxFg"/>
    <eClassifiers xsi:type="ecore:EClass" name="Void" eSuperTypes="#_Wo2ZR9z1Ed2bJ_pQViWxFg"/>
  </eSubpackages>
  <eSubpackages name="variables" nsURI="http://www.emftext.org/java/variables" nsPrefix="variables">
    <eClassifiers xsi:type="ecore:EClass" name="Variable" abstract="true" eSuperTypes="#//commons/NamedElement #_Wo2ZP9z1Ed2bJ_pQViWxFg #//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 org.emftext.language.java.parameters.VariableLengthParameter) {&#xA;&#x9;size++;&#xA;}&#xA;return size;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
      <eOperations name="createMethodCallStatement" eType="#_Wo2YzNz1Ed2bJ_pQViWxFg">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.emftext.language.java.statements.ExpressionStatement callStatement = org.emftext.language.java.statements.StatementsFactory.eINSTANCE.createExpressionStatement();&#xA;callStatement.setExpression(createMethodCall(methodName, arguments));&#xA;return callStatement;"/>
          <details key="documentation" value="&#xA; Creates a statement that calls the method with the given name on this&#xA; variable. If the variable's type does not offer such a method, null is&#xA; returned.&#xA;"/>
        </eAnnotations>
        <eParameters name="methodName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
        <eParameters name="arguments" upperBound="-1" eType="#_Wo2YDNz1Ed2bJ_pQViWxFg"/>
      </eOperations>
      <eOperations name="createMethodCall" eType="#_Wo2YDNz1Ed2bJ_pQViWxFg">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="body" value="org.emftext.language.java.references.IdentifierReference thisRef = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createIdentifierReference();&#xA;thisRef.setTarget(this);&#xA;org.emftext.language.java.references.MethodCall methodCall = org.emftext.language.java.references.ReferencesFactory.eINSTANCE.createMethodCall();&#xA;org.emftext.language.java.types.Type thisType = getTypeReference().getTarget();&#xA;if (thisType instanceof org.emftext.language.java.members.MemberContainer) {&#xA;&#x9;org.emftext.language.java.members.MemberContainer castedType = ( org.emftext.language.java.members.MemberContainer) thisType;&#xA;&#x9;org.emftext.language.java.members.Method method = castedType.getContainedMethod(methodName);&#xA;&#x9;if (method == null) {&#xA;&#x9;&#x9;return null;&#xA;&#x9;}&#xA;&#x9;methodCall.setTarget(method);&#xA;&#x9;// add arguments&#xA;&#x9;methodCall.getArguments().addAll(arguments);&#xA;&#x9;thisRef.setNext(methodCall);&#xA;&#x9;return thisRef;&#xA;} else {&#xA;&#x9;return null;&#xA;}"/>
          <details key="documentation" value="&#xA; Creates an expression that calls the method with the given name on this&#xA; variable. If the variable's type does not offer such a method, null is&#xA; returned.&#xA;"/>
        </eAnnotations>
        <eParameters name="methodName" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
        <eParameters name="arguments" upperBound="-1" eType="#_Wo2YDNz1Ed2bJ_pQViWxFg"/>
      </eOperations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="LocalVariable" eSuperTypes="#//variables/Variable #//instantiations/Initializable #_Wo2Y9tz1Ed2bJ_pQViWxFg #//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;"/>
          <details key="documentation" value=""/>
        </eAnnotations>
      </eOperations>
    </eClassifiers>
  </eSubpackages>
</ecore:EPackage>
{"directed":true,"nodes":[{"nsPrefix":"java","nsURI":"http://www.emftext.org/java","name":"java","id":0,"eClass":"EPackage"},{"nsPrefix":"annotations","nsURI":"http://www.emftext.org/java/annotations","name":"annotations","id":1,"eClass":"EPackage"},{"nsPrefix":"arrays","nsURI":"http://www.emftext.org/java/arrays","name":"arrays","id":2,"eClass":"EPackage"},{"nsPrefix":"classifiers","nsURI":"http://www.emftext.org/java/classifiers","name":"classifiers","id":3,"eClass":"EPackage"},{"nsPrefix":"commons","nsURI":"http://www.emftext.org/java/commons","name":"commons","id":4,"eClass":"EPackage"},{"nsPrefix":"containers","nsURI":"http://www.emftext.org/java/containers","name":"containers","id":5,"eClass":"EPackage"},{"nsPrefix":"expressions","nsURI":"http://www.emftext.org/java/expressions","name":"expressions","id":6,"eClass":"EPackage"},{"nsPrefix":"generics","nsURI":"http://www.emftext.org/java/generics","name":"generics","id":7,"eClass":"EPackage"},{"nsPrefix":"imports","nsURI":"http://www.emftext.org/java/imports","name":"imports","id":8,"eClass":"EPackage"},{"nsPrefix":"instantiations","nsURI":"http://www.emftext.org/java/instantiations","name":"instantiations","id":9,"eClass":"EPackage"},{"nsPrefix":"literals","nsURI":"http://www.emftext.org/java/literals","name":"literals","id":10,"eClass":"EPackage"},{"nsPrefix":"members","nsURI":"http://www.emftext.org/java/members","name":"members","id":11,"eClass":"EPackage"},{"nsPrefix":"modifiers","nsURI":"http://www.emftext.org/java/modifiers","name":"modifiers","id":12,"eClass":"EPackage"},{"nsPrefix":"operators","nsURI":"http://www.emftext.org/java/operators","name":"operators","id":13,"eClass":"EPackage"},{"nsPrefix":"parameters","nsURI":"http://www.emftext.org/java/parameters","name":"parameters","id":14,"eClass":"EPackage"},{"nsPrefix":"references","nsURI":"http://www.emftext.org/java/references","name":"references","id":15,"eClass":"EPackage"},{"nsPrefix":"statements","nsURI":"http://www.emftext.org/java/statements","name":"statements","id":16,"eClass":"EPackage"},{"nsPrefix":"types","nsURI":"http://www.emftext.org/java/types","name":"types","id":17,"eClass":"EPackage"},{"nsPrefix":"variables","nsURI":"http://www.emftext.org/java/variables","name":"variables","id":18,"eClass":"EPackage"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Annotable","instanceClass":null,"abstract":true,"id":19,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnnotationInstance","instanceClass":null,"abstract":false,"id":20,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnnotationParameter","instanceClass":null,"abstract":true,"id":21,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"SingleAnnotationParameter","instanceClass":null,"abstract":false,"id":22,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnnotationParameterList","instanceClass":null,"abstract":false,"id":23,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnnotationAttributeSetting","instanceClass":null,"abstract":false,"id":24,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnnotationValue","instanceClass":null,"abstract":true,"id":25,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnnotationAttribute","instanceClass":null,"abstract":false,"id":26,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Commentable","instanceClass":null,"abstract":true,"id":27,"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":28,"derived":false},{"id":29,"eClass":"EGenericType"},{"id":30,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Reference","instanceClass":null,"abstract":true,"id":31,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnnotationInstanceOrModifier","instanceClass":null,"abstract":true,"id":32,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"NamespaceAwareElement","instanceClass":null,"abstract":true,"id":33,"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":34,"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":35,"derived":false},{"id":36,"eClass":"EGenericType"},{"id":37,"eClass":"EGenericType"},{"id":38,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Classifier","instanceClass":null,"abstract":true,"id":39,"interface":false,"eClass":"EClass"},{"id":40,"eClass":"EGenericType"},{"id":41,"eClass":"EGenericType"},{"id":42,"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":43,"derived":false},{"id":44,"eClass":"EGenericType"},{"id":45,"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":46,"derived":false},{"id":47,"eClass":"EGenericType"},{"id":48,"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":49,"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":50,"derived":false},{"id":51,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"InterfaceMethod","instanceClass":null,"abstract":false,"id":52,"interface":false,"eClass":"EClass"},{"id":53,"eClass":"EGenericType"},{"id":54,"eClass":"EGenericType"},{"id":55,"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":"defaultValue","changeable":true,"resolveProxies":true,"lowerBound":1,"id":56,"derived":false},{"id":57,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Expression","instanceClass":null,"abstract":true,"id":58,"interface":false,"eClass":"EClass"},{"id":59,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ArrayTypeable","instanceClass":null,"abstract":true,"id":60,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ArrayDimension","instanceClass":null,"abstract":false,"id":61,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ArrayInitializer","instanceClass":null,"abstract":false,"id":62,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ArrayInitializationValue","instanceClass":null,"abstract":true,"id":63,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ArrayInstantiation","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":true,"id":66,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ArrayInstantiationByValuesUntyped","instanceClass":null,"abstract":false,"id":67,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ArrayInstantiationByValuesTyped","instanceClass":null,"abstract":false,"id":68,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ArraySelector","instanceClass":null,"abstract":false,"id":69,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":1,"unique":true,"name":"getArrayDimension","lowerBound":0,"id":70,"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":71,"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":72,"derived":false},{"id":73,"eClass":"EGenericType"},{"id":74,"eClass":"EGenericType"},{"id":75,"eClass":"EGenericType"},{"id":76,"eClass":"EGenericType"},{"id":77,"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":78,"derived":false},{"id":79,"eClass":"EGenericType"},{"id":80,"eClass":"EGenericType"},{"id":81,"eClass":"EGenericType"},{"id":82,"eClass":"EGenericType"},{"id":83,"eClass":"EGenericType"},{"id":84,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TypedElement","instanceClass":null,"abstract":true,"id":85,"interface":false,"eClass":"EClass"},{"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":"sizes","changeable":true,"resolveProxies":true,"lowerBound":1,"id":86,"derived":false},{"id":87,"eClass":"EGenericType"},{"id":88,"eClass":"EGenericType"},{"id":89,"eClass":"EGenericType"},{"id":90,"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":"arrayInitializer","changeable":true,"resolveProxies":true,"lowerBound":1,"id":91,"derived":false},{"id":92,"eClass":"EGenericType"},{"id":93,"eClass":"EGenericType"},{"id":94,"eClass":"EGenericType"},{"id":95,"eClass":"EGenericType"},{"id":96,"eClass":"EGenericType"},{"id":97,"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":98,"derived":false},{"id":99,"eClass":"EGenericType"},{"id":100,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ConcreteClassifier","instanceClass":null,"abstract":true,"id":101,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Implementor","instanceClass":null,"abstract":true,"id":102,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Class","instanceClass":null,"abstract":false,"id":103,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Interface","instanceClass":null,"abstract":false,"id":104,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Enumeration","instanceClass":null,"abstract":false,"id":105,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Annotation","instanceClass":null,"abstract":false,"id":106,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnonymousClass","instanceClass":null,"abstract":false,"id":107,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Type","instanceClass":null,"abstract":true,"id":108,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ReferenceableElement","instanceClass":null,"abstract":true,"id":109,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllSuperClassifiers","lowerBound":0,"id":110,"many":true,"required":false,"eClass":"EOperation"},{"id":111,"eClass":"EGenericType"},{"id":112,"eClass":"EGenericType"},{"id":113,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TypeParametrizable","instanceClass":null,"abstract":true,"id":114,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"MemberContainer","instanceClass":null,"abstract":true,"id":115,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Member","instanceClass":null,"abstract":true,"id":116,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Statement","instanceClass":null,"abstract":true,"id":117,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AnnotableAndModifiable","instanceClass":null,"abstract":true,"id":118,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getInnerClassifiers","lowerBound":0,"id":119,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllInnerClassifiers","lowerBound":0,"id":120,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getSuperTypeReferences","lowerBound":0,"id":121,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllMembers","lowerBound":0,"id":122,"many":true,"required":false,"eClass":"EOperation"},{"id":123,"eClass":"EGenericType"},{"id":124,"eClass":"EGenericType"},{"id":125,"eClass":"EGenericType"},{"id":126,"eClass":"EGenericType"},{"id":127,"eClass":"EGenericType"},{"id":128,"eClass":"EGenericType"},{"id":129,"eClass":"EGenericType"},{"id":130,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ClassifierReference","instanceClass":null,"abstract":false,"id":131,"interface":false,"eClass":"EClass"},{"id":132,"eClass":"EGenericType"},{"id":133,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"context","lowerBound":0,"id":134,"many":false,"required":false,"eClass":"EParameter"},{"id":135,"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":136,"derived":false},{"id":137,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TypeReference","instanceClass":null,"abstract":true,"id":138,"interface":false,"eClass":"EClass"},{"id":139,"eClass":"EGenericType"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllSuperClassifiers","lowerBound":0,"id":140,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getSuperClass","lowerBound":0,"id":141,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"unWrapPrimitiveType","lowerBound":0,"id":142,"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":143,"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":"defaultExtends","changeable":true,"resolveProxies":true,"lowerBound":0,"id":144,"derived":false},{"id":145,"eClass":"EGenericType"},{"id":146,"eClass":"EGenericType"},{"id":147,"eClass":"EGenericType"},{"id":148,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"PrimitiveType","instanceClass":null,"abstract":true,"id":149,"interface":false,"eClass":"EClass"},{"id":150,"eClass":"EGenericType"},{"id":151,"eClass":"EGenericType"},{"id":152,"eClass":"EGenericType"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllSuperClassifiers","lowerBound":0,"id":153,"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":154,"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":"defaultExtends","changeable":true,"resolveProxies":true,"lowerBound":0,"id":155,"derived":false},{"id":156,"eClass":"EGenericType"},{"id":157,"eClass":"EGenericType"},{"id":158,"eClass":"EGenericType"},{"id":159,"eClass":"EGenericType"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllSuperClassifiers","lowerBound":0,"id":160,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getContainedConstant","lowerBound":0,"id":161,"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":"constants","changeable":true,"resolveProxies":true,"lowerBound":0,"id":162,"derived":false},{"id":163,"eClass":"EGenericType"},{"id":164,"eClass":"EGenericType"},{"id":165,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"EnumConstant","instanceClass":null,"abstract":false,"id":166,"interface":false,"eClass":"EClass"},{"id":167,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":0,"id":168,"many":false,"required":false,"eClass":"EParameter"},{"id":169,"eClass":"EGenericType"},{"id":170,"eClass":"EGenericType"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllSuperClassifiers","lowerBound":0,"id":171,"many":true,"required":false,"eClass":"EOperation"},{"id":172,"eClass":"EGenericType"},{"id":173,"eClass":"EGenericType"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllSuperClassifiers","lowerBound":0,"id":174,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getSuperClassifier","lowerBound":0,"id":175,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllMembers","lowerBound":0,"id":176,"many":true,"required":false,"eClass":"EOperation"},{"id":177,"eClass":"EGenericType"},{"id":178,"eClass":"EGenericType"},{"id":179,"eClass":"EGenericType"},{"id":180,"eClass":"EGenericType"},{"id":181,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"context","lowerBound":0,"id":182,"many":false,"required":false,"eClass":"EParameter"},{"id":183,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"NamedElement","instanceClass":null,"abstract":true,"id":184,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":1,"unique":true,"name":"getConcreteClassifier","lowerBound":0,"id":185,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getConcreteClassifierProxy","lowerBound":0,"id":186,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getConcreteClassifiers","lowerBound":0,"id":187,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getConcreteClassifierProxies","lowerBound":0,"id":188,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getLibClass","lowerBound":0,"id":189,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getLibInterface","lowerBound":0,"id":190,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getClassClass","lowerBound":0,"id":191,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getObjectClass","lowerBound":0,"id":192,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getStringClass","lowerBound":0,"id":193,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getAnnotationInterface","lowerBound":0,"id":194,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getContainingAnnotationInstance","lowerBound":0,"id":195,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getContainingAnonymousClass","lowerBound":0,"id":196,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getContainingConcreteClassifier","lowerBound":0,"id":197,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getContainingCompilationUnit","lowerBound":0,"id":198,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getContainingPackageName","lowerBound":0,"id":199,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getContainingContainerName","lowerBound":0,"id":200,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getParentConcreteClassifier","lowerBound":0,"id":201,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getParentByEType","lowerBound":0,"id":202,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getFirstChildByEType","lowerBound":0,"id":203,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getParentByType","lowerBound":0,"id":204,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getFirstChildByType","lowerBound":0,"id":205,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getChildrenByEType","lowerBound":0,"id":206,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getChildrenByType","lowerBound":0,"id":207,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getComments","lowerBound":0,"id":208,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"addBeforeContainingStatement","lowerBound":0,"id":209,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"addAfterContainingStatement","lowerBound":0,"id":210,"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":"layoutInformations","changeable":true,"resolveProxies":true,"lowerBound":0,"id":211,"derived":false},{"id":212,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":0,"id":213,"many":false,"required":false,"eClass":"EParameter"},{"id":214,"eClass":"EGenericType"},{"id":215,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":0,"id":216,"many":false,"required":false,"eClass":"EParameter"},{"id":217,"eClass":"EGenericType"},{"id":218,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"packageName","lowerBound":0,"id":219,"many":false,"required":false,"eClass":"EParameter"},{"ordered":true,"upperBound":1,"unique":true,"name":"classifierQuery","lowerBound":0,"id":220,"many":false,"required":false,"eClass":"EParameter"},{"id":221,"eClass":"EGenericType"},{"id":222,"eClass":"EGenericType"},{"id":223,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"packageName","lowerBound":0,"id":224,"many":false,"required":false,"eClass":"EParameter"},{"ordered":true,"upperBound":1,"unique":true,"name":"classifierQuery","lowerBound":0,"id":225,"many":false,"required":false,"eClass":"EParameter"},{"id":226,"eClass":"EGenericType"},{"id":227,"eClass":"EGenericType"},{"id":228,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":0,"id":229,"many":false,"required":false,"eClass":"EParameter"},{"id":230,"eClass":"EGenericType"},{"id":231,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":0,"id":232,"many":false,"required":false,"eClass":"EParameter"},{"id":233,"eClass":"EGenericType"},{"id":234,"eClass":"EGenericType"},{"id":235,"eClass":"EGenericType"},{"id":236,"eClass":"EGenericType"},{"id":237,"eClass":"EGenericType"},{"id":238,"eClass":"EGenericType"},{"id":239,"eClass":"EGenericType"},{"id":240,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"CompilationUnit","instanceClass":null,"abstract":false,"id":241,"interface":false,"eClass":"EClass"},{"id":242,"eClass":"EGenericType"},{"id":243,"eClass":"EGenericType"},{"id":244,"eClass":"EGenericType"},{"id":245,"eClass":"EGenericType"},{"id":246,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"type","lowerBound":0,"id":247,"many":false,"required":false,"eClass":"EParameter"},{"id":248,"eClass":"EGenericType"},{"id":249,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"type","lowerBound":0,"id":250,"many":false,"required":false,"eClass":"EParameter"},{"id":251,"eClass":"EGenericType"},{"id":252,"eClass":"EGenericType"},{"name":"T","id":253,"eClass":"ETypeParameter"},{"ordered":true,"upperBound":1,"unique":true,"name":"type","lowerBound":0,"id":254,"many":false,"required":false,"eClass":"EParameter"},{"id":255,"eClass":"EGenericType"},{"id":256,"eClass":"EGenericType"},{"id":257,"eClass":"EGenericType"},{"name":"T","id":258,"eClass":"ETypeParameter"},{"ordered":true,"upperBound":1,"unique":true,"name":"type","lowerBound":0,"id":259,"many":false,"required":false,"eClass":"EParameter"},{"id":260,"eClass":"EGenericType"},{"id":261,"eClass":"EGenericType"},{"id":262,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"type","lowerBound":0,"id":263,"many":false,"required":false,"eClass":"EParameter"},{"id":264,"eClass":"EGenericType"},{"id":265,"eClass":"EGenericType"},{"name":"T","id":266,"eClass":"ETypeParameter"},{"ordered":true,"upperBound":1,"unique":true,"name":"type","lowerBound":0,"id":267,"many":false,"required":false,"eClass":"EParameter"},{"id":268,"eClass":"EGenericType"},{"id":269,"eClass":"EGenericType"},{"id":270,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"statementToAdd","lowerBound":1,"id":271,"many":false,"required":true,"eClass":"EParameter"},{"id":272,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"statementToAdd","lowerBound":1,"id":273,"many":false,"required":true,"eClass":"EParameter"},{"id":274,"eClass":"EGenericType"},{"id":275,"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":276,"derived":false},{"id":277,"eClass":"EGenericType"},{"id":278,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"getNamespacesAsString","lowerBound":0,"id":279,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getClassifierAtNamespaces","lowerBound":0,"id":280,"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":281,"derived":false},{"id":282,"eClass":"EGenericType"},{"id":283,"eClass":"EGenericType"},{"id":284,"eClass":"EGenericType"},{"id":285,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"JavaRoot","instanceClass":null,"abstract":true,"id":286,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Package","instanceClass":null,"abstract":false,"id":287,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"EmptyModel","instanceClass":null,"abstract":false,"id":288,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ImportingElement","instanceClass":null,"abstract":true,"id":289,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getClassifiersInSamePackage","lowerBound":0,"id":290,"many":true,"required":false,"eClass":"EOperation"},{"id":291,"eClass":"EGenericType"},{"id":292,"eClass":"EGenericType"},{"id":293,"eClass":"EGenericType"},{"id":294,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"getContainedClassifier","lowerBound":0,"id":295,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getClassifiersInSamePackage","lowerBound":0,"id":296,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getContainedClass","lowerBound":0,"id":297,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getContainedInterface","lowerBound":0,"id":298,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getContainedAnnotation","lowerBound":0,"id":299,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getContainedEnumeration","lowerBound":0,"id":300,"many":false,"required":false,"eClass":"EOperation"},{"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":"classifiers","changeable":true,"resolveProxies":true,"lowerBound":1,"id":301,"derived":false},{"id":302,"eClass":"EGenericType"},{"id":303,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":0,"id":304,"many":false,"required":false,"eClass":"EParameter"},{"id":305,"eClass":"EGenericType"},{"id":306,"eClass":"EGenericType"},{"id":307,"eClass":"EGenericType"},{"id":308,"eClass":"EGenericType"},{"id":309,"eClass":"EGenericType"},{"id":310,"eClass":"EGenericType"},{"id":311,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"getNamespacesAsString","lowerBound":0,"id":312,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getClassifiersInSamePackage","lowerBound":0,"id":313,"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":"compilationUnits","changeable":true,"resolveProxies":true,"lowerBound":0,"id":314,"derived":false},{"id":315,"eClass":"EGenericType"},{"id":316,"eClass":"EGenericType"},{"id":317,"eClass":"EGenericType"},{"id":318,"eClass":"EGenericType"},{"id":319,"eClass":"EGenericType"},{"id":320,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ExpressionList","instanceClass":null,"abstract":false,"id":321,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentExpression","instanceClass":null,"abstract":false,"id":322,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentExpressionChild","instanceClass":null,"abstract":true,"id":323,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ConditionalExpression","instanceClass":null,"abstract":false,"id":324,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ConditionalExpressionChild","instanceClass":null,"abstract":true,"id":325,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ConditionalOrExpression","instanceClass":null,"abstract":false,"id":326,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ConditionalOrExpressionChild","instanceClass":null,"abstract":true,"id":327,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ConditionalAndExpression","instanceClass":null,"abstract":false,"id":328,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ConditionalAndExpressionChild","instanceClass":null,"abstract":true,"id":329,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"InclusiveOrExpression","instanceClass":null,"abstract":false,"id":330,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"InclusiveOrExpressionChild","instanceClass":null,"abstract":true,"id":331,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ExclusiveOrExpression","instanceClass":null,"abstract":false,"id":332,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ExclusiveOrExpressionChild","instanceClass":null,"abstract":true,"id":333,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AndExpression","instanceClass":null,"abstract":false,"id":334,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AndExpressionChild","instanceClass":null,"abstract":true,"id":335,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"EqualityExpression","instanceClass":null,"abstract":false,"id":336,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"EqualityExpressionChild","instanceClass":null,"abstract":true,"id":337,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"InstanceOfExpression","instanceClass":null,"abstract":false,"id":338,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"InstanceOfExpressionChild","instanceClass":null,"abstract":true,"id":339,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"RelationExpression","instanceClass":null,"abstract":false,"id":340,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"RelationExpressionChild","instanceClass":null,"abstract":true,"id":341,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ShiftExpression","instanceClass":null,"abstract":false,"id":342,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ShiftExpressionChild","instanceClass":null,"abstract":true,"id":343,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AdditiveExpression","instanceClass":null,"abstract":false,"id":344,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AdditiveExpressionChild","instanceClass":null,"abstract":true,"id":345,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"MultiplicativeExpression","instanceClass":null,"abstract":false,"id":346,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"MultiplicativeExpressionChild","instanceClass":null,"abstract":true,"id":347,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"UnaryExpression","instanceClass":null,"abstract":false,"id":348,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"UnaryExpressionChild","instanceClass":null,"abstract":true,"id":349,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"UnaryModificationExpression","instanceClass":null,"abstract":true,"id":350,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"PrefixUnaryModificationExpression","instanceClass":null,"abstract":false,"id":351,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"SuffixUnaryModificationExpression","instanceClass":null,"abstract":false,"id":352,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"UnaryModificationExpressionChild","instanceClass":null,"abstract":true,"id":353,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"CastExpression","instanceClass":null,"abstract":false,"id":354,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"PrimaryExpression","instanceClass":null,"abstract":true,"id":355,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"NestedExpression","instanceClass":null,"abstract":false,"id":356,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ForLoopInitializer","instanceClass":null,"abstract":true,"id":357,"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":358,"derived":false},{"id":359,"eClass":"EGenericType"},{"id":360,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"getType","lowerBound":0,"id":361,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getAlternativeType","lowerBound":0,"id":362,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getOneType","lowerBound":0,"id":363,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getArrayDimension","lowerBound":0,"id":364,"many":false,"required":false,"eClass":"EOperation"},{"id":365,"eClass":"EGenericType"},{"id":366,"eClass":"EGenericType"},{"id":367,"eClass":"EGenericType"},{"id":368,"eClass":"EGenericType"},{"id":369,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"alternative","lowerBound":0,"id":370,"many":false,"required":false,"eClass":"EParameter"},{"id":371,"eClass":"EGenericType"},{"id":372,"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":373,"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":374,"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":375,"derived":false},{"id":376,"eClass":"EGenericType"},{"id":377,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentOperator","instanceClass":null,"abstract":true,"id":378,"interface":false,"eClass":"EClass"},{"id":379,"eClass":"EGenericType"},{"id":380,"eClass":"EGenericType"},{"id":381,"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":382,"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":383,"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":384,"derived":false},{"id":385,"eClass":"EGenericType"},{"id":386,"eClass":"EGenericType"},{"id":387,"eClass":"EGenericType"},{"id":388,"eClass":"EGenericType"},{"id":389,"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":390,"derived":false},{"id":391,"eClass":"EGenericType"},{"id":392,"eClass":"EGenericType"},{"id":393,"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":394,"derived":false},{"id":395,"eClass":"EGenericType"},{"id":396,"eClass":"EGenericType"},{"id":397,"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":398,"derived":false},{"id":399,"eClass":"EGenericType"},{"id":400,"eClass":"EGenericType"},{"id":401,"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":402,"derived":false},{"id":403,"eClass":"EGenericType"},{"id":404,"eClass":"EGenericType"},{"id":405,"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":406,"derived":false},{"id":407,"eClass":"EGenericType"},{"id":408,"eClass":"EGenericType"},{"id":409,"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":410,"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":411,"derived":false},{"id":412,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"EqualityOperator","instanceClass":null,"abstract":true,"id":413,"interface":false,"eClass":"EClass"},{"id":414,"eClass":"EGenericType"},{"id":415,"eClass":"EGenericType"},{"id":416,"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":417,"derived":false},{"id":418,"eClass":"EGenericType"},{"id":419,"eClass":"EGenericType"},{"id":420,"eClass":"EGenericType"},{"id":421,"eClass":"EGenericType"},{"id":422,"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":423,"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":424,"derived":false},{"id":425,"eClass":"EGenericType"},{"id":426,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"RelationOperator","instanceClass":null,"abstract":true,"id":427,"interface":false,"eClass":"EClass"},{"id":428,"eClass":"EGenericType"},{"id":429,"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":430,"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":431,"derived":false},{"id":432,"eClass":"EGenericType"},{"id":433,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ShiftOperator","instanceClass":null,"abstract":true,"id":434,"interface":false,"eClass":"EClass"},{"id":435,"eClass":"EGenericType"},{"id":436,"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":437,"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":438,"derived":false},{"id":439,"eClass":"EGenericType"},{"id":440,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AdditiveOperator","instanceClass":null,"abstract":true,"id":441,"interface":false,"eClass":"EClass"},{"id":442,"eClass":"EGenericType"},{"id":443,"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":444,"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":445,"derived":false},{"id":446,"eClass":"EGenericType"},{"id":447,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"MultiplicativeOperator","instanceClass":null,"abstract":true,"id":448,"interface":false,"eClass":"EClass"},{"id":449,"eClass":"EGenericType"},{"id":450,"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":451,"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":452,"derived":false},{"id":453,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"UnaryOperator","instanceClass":null,"abstract":true,"id":454,"interface":false,"eClass":"EClass"},{"id":455,"eClass":"EGenericType"},{"id":456,"eClass":"EGenericType"},{"id":457,"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":458,"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":459,"derived":false},{"id":460,"eClass":"EGenericType"},{"id":461,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"UnaryModificationOperator","instanceClass":null,"abstract":true,"id":462,"interface":false,"eClass":"EClass"},{"id":463,"eClass":"EGenericType"},{"id":464,"eClass":"EGenericType"},{"id":465,"eClass":"EGenericType"},{"id":466,"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":467,"derived":false},{"id":468,"eClass":"EGenericType"},{"id":469,"eClass":"EGenericType"},{"id":470,"eClass":"EGenericType"},{"id":471,"eClass":"EGenericType"},{"id":472,"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":473,"derived":false},{"id":474,"eClass":"EGenericType"},{"id":475,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TypeArgument","instanceClass":null,"abstract":true,"id":476,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TypeArgumentable","instanceClass":null,"abstract":true,"id":477,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"CallTypeArgumentable","instanceClass":null,"abstract":true,"id":478,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ExtendsTypeArgument","instanceClass":null,"abstract":false,"id":479,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"QualifiedTypeArgument","instanceClass":null,"abstract":false,"id":480,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"SuperTypeArgument","instanceClass":null,"abstract":false,"id":481,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TypeParameter","instanceClass":null,"abstract":false,"id":482,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"UnknownTypeArgument","instanceClass":null,"abstract":false,"id":483,"interface":false,"eClass":"EClass"},{"id":484,"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":485,"derived":false},{"id":486,"eClass":"EGenericType"},{"id":487,"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":488,"derived":false},{"id":489,"eClass":"EGenericType"},{"id":490,"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":491,"derived":false},{"id":492,"eClass":"EGenericType"},{"id":493,"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":494,"derived":false},{"id":495,"eClass":"EGenericType"},{"id":496,"eClass":"EGenericType"},{"id":497,"eClass":"EGenericType"},{"id":498,"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":499,"derived":false},{"id":500,"eClass":"EGenericType"},{"id":501,"eClass":"EGenericType"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllSuperClassifiers","lowerBound":0,"id":502,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllMembers","lowerBound":0,"id":503,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getBoundType","lowerBound":0,"id":504,"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":505,"derived":false},{"id":506,"eClass":"EGenericType"},{"id":507,"eClass":"EGenericType"},{"id":508,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"context","lowerBound":0,"id":509,"many":false,"required":false,"eClass":"EParameter"},{"id":510,"eClass":"EGenericType"},{"id":511,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"typeReference","lowerBound":0,"id":512,"many":false,"required":false,"eClass":"EParameter"},{"ordered":true,"upperBound":1,"unique":true,"name":"reference","lowerBound":0,"id":513,"many":false,"required":false,"eClass":"EParameter"},{"id":514,"eClass":"EGenericType"},{"id":515,"eClass":"EGenericType"},{"id":516,"eClass":"EGenericType"},{"id":517,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Import","instanceClass":null,"abstract":true,"id":518,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"StaticImport","instanceClass":null,"abstract":true,"id":519,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ClassifierImport","instanceClass":null,"abstract":false,"id":520,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"PackageImport","instanceClass":null,"abstract":false,"id":521,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"StaticClassifierImport","instanceClass":null,"abstract":false,"id":522,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"StaticMemberImport","instanceClass":null,"abstract":false,"id":523,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":1,"unique":true,"name":"getImportedClassifier","lowerBound":0,"id":524,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getImportedClassifiers","lowerBound":0,"id":525,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getImportedMembers","lowerBound":0,"id":526,"many":true,"required":false,"eClass":"EOperation"},{"id":527,"eClass":"EGenericType"},{"id":528,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":0,"id":529,"many":false,"required":false,"eClass":"EParameter"},{"id":530,"eClass":"EGenericType"},{"id":531,"eClass":"EGenericType"},{"id":532,"eClass":"EGenericType"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getDefaultImports","lowerBound":0,"id":533,"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":534,"derived":false},{"id":535,"eClass":"EGenericType"},{"id":536,"eClass":"EGenericType"},{"id":537,"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":538,"derived":false},{"id":539,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Static","instanceClass":null,"abstract":false,"id":540,"interface":false,"eClass":"EClass"},{"id":541,"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":542,"derived":false},{"id":543,"eClass":"EGenericType"},{"id":544,"eClass":"EGenericType"},{"id":545,"eClass":"EGenericType"},{"id":546,"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":547,"derived":false},{"id":548,"eClass":"EGenericType"},{"id":549,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Initializable","instanceClass":null,"abstract":true,"id":550,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Instantiation","instanceClass":null,"abstract":true,"id":551,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"NewConstructorCall","instanceClass":null,"abstract":false,"id":552,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ExplicitConstructorCall","instanceClass":null,"abstract":false,"id":553,"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":554,"derived":false},{"id":555,"eClass":"EGenericType"},{"id":556,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Argumentable","instanceClass":null,"abstract":true,"id":557,"interface":false,"eClass":"EClass"},{"id":558,"eClass":"EGenericType"},{"id":559,"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":560,"derived":false},{"id":561,"eClass":"EGenericType"},{"id":562,"eClass":"EGenericType"},{"id":563,"eClass":"EGenericType"},{"id":564,"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":"callTarget","changeable":true,"resolveProxies":true,"lowerBound":1,"id":565,"derived":false},{"id":566,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Self","instanceClass":null,"abstract":true,"id":567,"interface":false,"eClass":"EClass"},{"id":568,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Literal","instanceClass":null,"abstract":true,"id":569,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"BooleanLiteral","instanceClass":null,"abstract":false,"id":570,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"CharacterLiteral","instanceClass":null,"abstract":false,"id":571,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"FloatLiteral","instanceClass":null,"abstract":true,"id":572,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DecimalFloatLiteral","instanceClass":null,"abstract":false,"id":573,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"HexFloatLiteral","instanceClass":null,"abstract":false,"id":574,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DoubleLiteral","instanceClass":null,"abstract":true,"id":575,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DecimalDoubleLiteral","instanceClass":null,"abstract":false,"id":576,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"HexDoubleLiteral","instanceClass":null,"abstract":false,"id":577,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"IntegerLiteral","instanceClass":null,"abstract":true,"id":578,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DecimalIntegerLiteral","instanceClass":null,"abstract":false,"id":579,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"HexIntegerLiteral","instanceClass":null,"abstract":false,"id":580,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"OctalIntegerLiteral","instanceClass":null,"abstract":false,"id":581,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LongLiteral","instanceClass":null,"abstract":true,"id":582,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DecimalLongLiteral","instanceClass":null,"abstract":false,"id":583,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"HexLongLiteral","instanceClass":null,"abstract":false,"id":584,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"OctalLongLiteral","instanceClass":null,"abstract":false,"id":585,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"NullLiteral","instanceClass":null,"abstract":false,"id":586,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Super","instanceClass":null,"abstract":false,"id":587,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"This","instanceClass":null,"abstract":false,"id":588,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":1,"unique":true,"name":"getOneType","lowerBound":0,"id":589,"many":false,"required":false,"eClass":"EOperation"},{"id":590,"eClass":"EGenericType"},{"id":591,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"alternative","lowerBound":0,"id":592,"many":false,"required":false,"eClass":"EParameter"},{"id":593,"eClass":"EGenericType"},{"id":594,"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":595,"derived":false},{"id":596,"eClass":"EGenericType"},{"id":597,"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":598,"derived":false},{"id":599,"eClass":"EGenericType"},{"id":600,"eClass":"EGenericType"},{"id":601,"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":602,"derived":false},{"id":603,"eClass":"EGenericType"},{"id":604,"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":605,"derived":false},{"id":606,"eClass":"EGenericType"},{"id":607,"eClass":"EGenericType"},{"id":608,"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":609,"derived":false},{"id":610,"eClass":"EGenericType"},{"id":611,"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":612,"derived":false},{"id":613,"eClass":"EGenericType"},{"id":614,"eClass":"EGenericType"},{"id":615,"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":616,"derived":false},{"id":617,"eClass":"EGenericType"},{"id":618,"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":619,"derived":false},{"id":620,"eClass":"EGenericType"},{"id":621,"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":622,"derived":false},{"id":623,"eClass":"EGenericType"},{"id":624,"eClass":"EGenericType"},{"id":625,"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":626,"derived":false},{"id":627,"eClass":"EGenericType"},{"id":628,"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":629,"derived":false},{"id":630,"eClass":"EGenericType"},{"id":631,"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":632,"derived":false},{"id":633,"eClass":"EGenericType"},{"id":634,"eClass":"EGenericType"},{"id":635,"eClass":"EGenericType"},{"id":636,"eClass":"EGenericType"},{"id":637,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ExceptionThrower","instanceClass":null,"abstract":true,"id":638,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AdditionalField","instanceClass":null,"abstract":false,"id":639,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Constructor","instanceClass":null,"abstract":false,"id":640,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"EmptyMember","instanceClass":null,"abstract":false,"id":641,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Field","instanceClass":null,"abstract":false,"id":642,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Method","instanceClass":null,"abstract":true,"id":643,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ClassMethod","instanceClass":null,"abstract":false,"id":644,"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":645,"derived":false},{"id":646,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"NamespaceClassifierReference","instanceClass":null,"abstract":false,"id":647,"interface":false,"eClass":"EClass"},{"id":648,"eClass":"EGenericType"},{"id":649,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"getContainedClassifier","lowerBound":0,"id":650,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getContainedField","lowerBound":0,"id":651,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getContainedMethod","lowerBound":0,"id":652,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getMethods","lowerBound":0,"id":653,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"removeMethods","lowerBound":0,"id":654,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getMembersByName","lowerBound":0,"id":655,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"createField","lowerBound":0,"id":656,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getFields","lowerBound":0,"id":657,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getConstructors","lowerBound":0,"id":658,"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":"members","changeable":true,"resolveProxies":true,"lowerBound":0,"id":659,"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":"defaultMembers","changeable":true,"resolveProxies":true,"lowerBound":0,"id":660,"derived":false},{"id":661,"eClass":"EGenericType"},{"id":662,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":0,"id":663,"many":false,"required":false,"eClass":"EParameter"},{"id":664,"eClass":"EGenericType"},{"id":665,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":0,"id":666,"many":false,"required":false,"eClass":"EParameter"},{"id":667,"eClass":"EGenericType"},{"id":668,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":0,"id":669,"many":false,"required":false,"eClass":"EParameter"},{"id":670,"eClass":"EGenericType"},{"id":671,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":1,"id":672,"many":false,"required":true,"eClass":"EParameter"},{"id":673,"eClass":"EGenericType"},{"id":674,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":1,"id":675,"many":false,"required":true,"eClass":"EParameter"},{"id":676,"eClass":"EGenericType"},{"id":677,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":1,"id":678,"many":false,"required":true,"eClass":"EParameter"},{"ordered":true,"upperBound":1,"unique":true,"name":"qualifiedTypeName","lowerBound":1,"id":679,"many":false,"required":true,"eClass":"EParameter"},{"id":680,"eClass":"EGenericType"},{"id":681,"eClass":"EGenericType"},{"id":682,"eClass":"EGenericType"},{"id":683,"eClass":"EGenericType"},{"id":684,"eClass":"EGenericType"},{"id":685,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"getArrayDimension","lowerBound":0,"id":686,"many":false,"required":false,"eClass":"EOperation"},{"id":687,"eClass":"EGenericType"},{"id":688,"eClass":"EGenericType"},{"id":689,"eClass":"EGenericType"},{"id":690,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"StatementListContainer","instanceClass":null,"abstract":true,"id":691,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Parametrizable","instanceClass":null,"abstract":true,"id":692,"interface":false,"eClass":"EClass"},{"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":"Variable","instanceClass":null,"abstract":true,"id":700,"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":701,"derived":false},{"id":702,"eClass":"EGenericType"},{"id":703,"eClass":"EGenericType"},{"id":704,"eClass":"EGenericType"},{"id":705,"eClass":"EGenericType"},{"id":706,"eClass":"EGenericType"},{"id":707,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"isMethodForCall","lowerBound":0,"id":708,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"isSomeMethodForCall","lowerBound":0,"id":709,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"isBetterMethodForCall","lowerBound":0,"id":710,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getArrayDimension","lowerBound":0,"id":711,"many":false,"required":false,"eClass":"EOperation"},{"id":712,"eClass":"EGenericType"},{"id":713,"eClass":"EGenericType"},{"id":714,"eClass":"EGenericType"},{"id":715,"eClass":"EGenericType"},{"id":716,"eClass":"EGenericType"},{"id":717,"eClass":"EGenericType"},{"id":718,"eClass":"EGenericType"},{"id":719,"eClass":"EGenericType"},{"id":720,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"methodCall","lowerBound":0,"id":721,"many":false,"required":false,"eClass":"EParameter"},{"ordered":true,"upperBound":1,"unique":true,"name":"needsPerfectMatch","lowerBound":0,"id":722,"many":false,"required":false,"eClass":"EParameter"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"MethodCall","instanceClass":null,"abstract":false,"id":723,"interface":false,"eClass":"EClass"},{"id":724,"eClass":"EGenericType"},{"id":725,"eClass":"EGenericType"},{"id":726,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"methodCall","lowerBound":0,"id":727,"many":false,"required":false,"eClass":"EParameter"},{"id":728,"eClass":"EGenericType"},{"id":729,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"otherMethod","lowerBound":0,"id":730,"many":false,"required":false,"eClass":"EParameter"},{"ordered":true,"upperBound":1,"unique":true,"name":"methodCall","lowerBound":0,"id":731,"many":false,"required":false,"eClass":"EParameter"},{"id":732,"eClass":"EGenericType"},{"id":733,"eClass":"EGenericType"},{"id":734,"eClass":"EGenericType"},{"id":735,"eClass":"EGenericType"},{"id":736,"eClass":"EGenericType"},{"id":737,"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":738,"derived":false},{"id":739,"eClass":"EGenericType"},{"id":740,"eClass":"EGenericType"},{"id":741,"eClass":"EGenericType"},{"id":742,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Modifier","instanceClass":null,"abstract":true,"id":743,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Modifiable","instanceClass":null,"abstract":true,"id":744,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Abstract","instanceClass":null,"abstract":false,"id":745,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Final","instanceClass":null,"abstract":false,"id":746,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Native","instanceClass":null,"abstract":false,"id":747,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Protected","instanceClass":null,"abstract":false,"id":748,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Public","instanceClass":null,"abstract":false,"id":749,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Private","instanceClass":null,"abstract":false,"id":750,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Strictfp","instanceClass":null,"abstract":false,"id":751,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Synchronized","instanceClass":null,"abstract":false,"id":752,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Transient","instanceClass":null,"abstract":false,"id":753,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Volatile","instanceClass":null,"abstract":false,"id":754,"interface":false,"eClass":"EClass"},{"id":755,"eClass":"EGenericType"},{"id":756,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"isHidden","lowerBound":0,"id":757,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"isStatic","lowerBound":0,"id":758,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"removeModifier","lowerBound":0,"id":759,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"makePublic","lowerBound":0,"id":760,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"makePrivate","lowerBound":0,"id":761,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"makeProtected","lowerBound":0,"id":762,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getModifiers","lowerBound":0,"id":763,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"removeAllModifiers","lowerBound":0,"id":764,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"hasModifier","lowerBound":0,"id":765,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"isPublic","lowerBound":0,"id":766,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"isPrivate","lowerBound":0,"id":767,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"isProtected","lowerBound":0,"id":768,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"addModifier","lowerBound":0,"id":769,"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":770,"derived":false},{"id":771,"eClass":"EGenericType"},{"id":772,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"context","lowerBound":0,"id":773,"many":false,"required":false,"eClass":"EParameter"},{"id":774,"eClass":"EGenericType"},{"id":775,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"modifierType","lowerBound":0,"id":776,"many":false,"required":false,"eClass":"EParameter"},{"id":777,"eClass":"EGenericType"},{"id":778,"eClass":"EGenericType"},{"id":779,"eClass":"EGenericType"},{"id":780,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"type","lowerBound":0,"id":781,"many":false,"required":false,"eClass":"EParameter"},{"id":782,"eClass":"EGenericType"},{"id":783,"eClass":"EGenericType"},{"id":784,"eClass":"EGenericType"},{"id":785,"eClass":"EGenericType"},{"id":786,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"newModifier","lowerBound":1,"id":787,"many":false,"required":true,"eClass":"EParameter"},{"id":788,"eClass":"EGenericType"},{"id":789,"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":790,"derived":false},{"id":791,"eClass":"EGenericType"},{"id":792,"eClass":"EGenericType"},{"id":793,"eClass":"EGenericType"},{"id":794,"eClass":"EGenericType"},{"id":795,"eClass":"EGenericType"},{"id":796,"eClass":"EGenericType"},{"id":797,"eClass":"EGenericType"},{"id":798,"eClass":"EGenericType"},{"id":799,"eClass":"EGenericType"},{"id":800,"eClass":"EGenericType"},{"id":801,"eClass":"EGenericType"},{"id":802,"eClass":"EGenericType"},{"id":803,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Operator","instanceClass":null,"abstract":true,"id":804,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Assignment","instanceClass":null,"abstract":false,"id":805,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentAnd","instanceClass":null,"abstract":false,"id":806,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentDivision","instanceClass":null,"abstract":false,"id":807,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentExclusiveOr","instanceClass":null,"abstract":false,"id":808,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentMinus","instanceClass":null,"abstract":false,"id":809,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentModulo","instanceClass":null,"abstract":false,"id":810,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentMultiplication","instanceClass":null,"abstract":false,"id":811,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentLeftShift","instanceClass":null,"abstract":false,"id":812,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentOr","instanceClass":null,"abstract":false,"id":813,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentPlus","instanceClass":null,"abstract":false,"id":814,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentRightShift","instanceClass":null,"abstract":false,"id":815,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AssignmentUnsignedRightShift","instanceClass":null,"abstract":false,"id":816,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Equal","instanceClass":null,"abstract":false,"id":817,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"NotEqual","instanceClass":null,"abstract":false,"id":818,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"GreaterThan","instanceClass":null,"abstract":false,"id":819,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"GreaterThanOrEqual","instanceClass":null,"abstract":false,"id":820,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LessThan","instanceClass":null,"abstract":false,"id":821,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LessThanOrEqual","instanceClass":null,"abstract":false,"id":822,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Addition","instanceClass":null,"abstract":false,"id":823,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Subtraction","instanceClass":null,"abstract":false,"id":824,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Division","instanceClass":null,"abstract":false,"id":825,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Multiplication","instanceClass":null,"abstract":false,"id":826,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Remainder","instanceClass":null,"abstract":false,"id":827,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Complement","instanceClass":null,"abstract":false,"id":828,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"MinusMinus","instanceClass":null,"abstract":false,"id":829,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Negate","instanceClass":null,"abstract":false,"id":830,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"PlusPlus","instanceClass":null,"abstract":false,"id":831,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LeftShift","instanceClass":null,"abstract":false,"id":832,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"RightShift","instanceClass":null,"abstract":false,"id":833,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"UnsignedRightShift","instanceClass":null,"abstract":false,"id":834,"interface":false,"eClass":"EClass"},{"id":835,"eClass":"EGenericType"},{"id":836,"eClass":"EGenericType"},{"id":837,"eClass":"EGenericType"},{"id":838,"eClass":"EGenericType"},{"id":839,"eClass":"EGenericType"},{"id":840,"eClass":"EGenericType"},{"id":841,"eClass":"EGenericType"},{"id":842,"eClass":"EGenericType"},{"id":843,"eClass":"EGenericType"},{"id":844,"eClass":"EGenericType"},{"id":845,"eClass":"EGenericType"},{"id":846,"eClass":"EGenericType"},{"id":847,"eClass":"EGenericType"},{"id":848,"eClass":"EGenericType"},{"id":849,"eClass":"EGenericType"},{"id":850,"eClass":"EGenericType"},{"id":851,"eClass":"EGenericType"},{"id":852,"eClass":"EGenericType"},{"id":853,"eClass":"EGenericType"},{"id":854,"eClass":"EGenericType"},{"id":855,"eClass":"EGenericType"},{"id":856,"eClass":"EGenericType"},{"id":857,"eClass":"EGenericType"},{"id":858,"eClass":"EGenericType"},{"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"},{"id":867,"eClass":"EGenericType"},{"id":868,"eClass":"EGenericType"},{"id":869,"eClass":"EGenericType"},{"id":870,"eClass":"EGenericType"},{"id":871,"eClass":"EGenericType"},{"id":872,"eClass":"EGenericType"},{"id":873,"eClass":"EGenericType"},{"id":874,"eClass":"EGenericType"},{"id":875,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Parameter","instanceClass":null,"abstract":true,"id":876,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"OrdinaryParameter","instanceClass":null,"abstract":false,"id":877,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"VariableLengthParameter","instanceClass":null,"abstract":false,"id":878,"interface":false,"eClass":"EClass"},{"id":879,"eClass":"EGenericType"},{"id":880,"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":881,"derived":false},{"id":882,"eClass":"EGenericType"},{"id":883,"eClass":"EGenericType"},{"id":884,"eClass":"EGenericType"},{"id":885,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ElementReference","instanceClass":null,"abstract":true,"id":886,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"IdentifierReference","instanceClass":null,"abstract":false,"id":887,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ReflectiveClassReference","instanceClass":null,"abstract":false,"id":888,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"PrimitiveTypeReference","instanceClass":null,"abstract":false,"id":889,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"StringReference","instanceClass":null,"abstract":false,"id":890,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"SelfReference","instanceClass":null,"abstract":false,"id":891,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"PackageReference","instanceClass":null,"abstract":false,"id":892,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":1,"unique":true,"name":"getReferencedType","lowerBound":0,"id":893,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getPrevious","lowerBound":0,"id":894,"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":895,"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":896,"derived":false},{"id":897,"eClass":"EGenericType"},{"id":898,"eClass":"EGenericType"},{"id":899,"eClass":"EGenericType"},{"id":900,"eClass":"EGenericType"},{"id":901,"eClass":"EGenericType"},{"id":902,"eClass":"EGenericType"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getArgumentTypes","lowerBound":0,"id":903,"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":904,"derived":false},{"id":905,"eClass":"EGenericType"},{"id":906,"eClass":"EGenericType"},{"id":907,"eClass":"EGenericType"},{"id":908,"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":909,"derived":false},{"id":910,"eClass":"EGenericType"},{"id":911,"eClass":"EGenericType"},{"id":912,"eClass":"EGenericType"},{"id":913,"eClass":"EGenericType"},{"id":914,"eClass":"EGenericType"},{"id":915,"eClass":"EGenericType"},{"id":916,"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":917,"derived":false},{"id":918,"eClass":"EGenericType"},{"id":919,"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":"value","changeable":true,"lowerBound":1,"iD":false,"id":920,"derived":false},{"id":921,"eClass":"EGenericType"},{"id":922,"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":"self","changeable":true,"resolveProxies":true,"lowerBound":1,"id":923,"derived":false},{"id":924,"eClass":"EGenericType"},{"id":925,"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":"subpackages","changeable":true,"resolveProxies":true,"lowerBound":0,"id":926,"derived":false},{"id":927,"eClass":"EGenericType"},{"id":928,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"StatementContainer","instanceClass":null,"abstract":true,"id":929,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Conditional","instanceClass":null,"abstract":true,"id":930,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"SwitchCase","instanceClass":null,"abstract":true,"id":931,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Assert","instanceClass":null,"abstract":false,"id":932,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Break","instanceClass":null,"abstract":false,"id":933,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Block","instanceClass":null,"abstract":false,"id":934,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"CatchBlock","instanceClass":null,"abstract":false,"id":935,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Condition","instanceClass":null,"abstract":false,"id":936,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Continue","instanceClass":null,"abstract":false,"id":937,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DefaultSwitchCase","instanceClass":null,"abstract":false,"id":938,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"DoWhileLoop","instanceClass":null,"abstract":false,"id":939,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"EmptyStatement","instanceClass":null,"abstract":false,"id":940,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ExpressionStatement","instanceClass":null,"abstract":false,"id":941,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ForLoop","instanceClass":null,"abstract":false,"id":942,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"ForEachLoop","instanceClass":null,"abstract":false,"id":943,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Jump","instanceClass":null,"abstract":true,"id":944,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"JumpLabel","instanceClass":null,"abstract":false,"id":945,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LocalVariableStatement","instanceClass":null,"abstract":false,"id":946,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"NormalSwitchCase","instanceClass":null,"abstract":false,"id":947,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Return","instanceClass":null,"abstract":false,"id":948,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Switch","instanceClass":null,"abstract":false,"id":949,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"SynchronizedBlock","instanceClass":null,"abstract":false,"id":950,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Throw","instanceClass":null,"abstract":false,"id":951,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"TryBlock","instanceClass":null,"abstract":false,"id":952,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"WhileLoop","instanceClass":null,"abstract":false,"id":953,"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":954,"derived":false},{"id":955,"eClass":"EGenericType"},{"id":956,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"getLocalVariable","lowerBound":1,"id":957,"many":false,"required":true,"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":"statements","changeable":true,"resolveProxies":true,"lowerBound":0,"id":958,"derived":false},{"id":959,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"LocalVariable","instanceClass":null,"abstract":false,"id":960,"interface":false,"eClass":"EClass"},{"id":961,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"name","lowerBound":1,"id":962,"many":false,"required":true,"eClass":"EParameter"},{"id":963,"eClass":"EGenericType"},{"id":964,"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":"condition","changeable":true,"resolveProxies":true,"lowerBound":0,"id":965,"derived":false},{"id":966,"eClass":"EGenericType"},{"id":967,"eClass":"EGenericType"},{"id":968,"eClass":"EGenericType"},{"id":969,"eClass":"EGenericType"},{"id":970,"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":971,"derived":false},{"id":972,"eClass":"EGenericType"},{"id":973,"eClass":"EGenericType"},{"id":974,"eClass":"EGenericType"},{"id":975,"eClass":"EGenericType"},{"id":976,"eClass":"EGenericType"},{"id":977,"eClass":"EGenericType"},{"id":978,"eClass":"EGenericType"},{"id":979,"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":980,"derived":false},{"id":981,"eClass":"EGenericType"},{"id":982,"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":983,"derived":false},{"id":984,"eClass":"EGenericType"},{"id":985,"eClass":"EGenericType"},{"id":986,"eClass":"EGenericType"},{"id":987,"eClass":"EGenericType"},{"id":988,"eClass":"EGenericType"},{"id":989,"eClass":"EGenericType"},{"id":990,"eClass":"EGenericType"},{"id":991,"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":992,"derived":false},{"id":993,"eClass":"EGenericType"},{"id":994,"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":995,"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":996,"derived":false},{"id":997,"eClass":"EGenericType"},{"id":998,"eClass":"EGenericType"},{"id":999,"eClass":"EGenericType"},{"id":1000,"eClass":"EGenericType"},{"id":1001,"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":"next","changeable":true,"resolveProxies":true,"lowerBound":1,"id":1002,"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":"collection","changeable":true,"resolveProxies":true,"lowerBound":1,"id":1003,"derived":false},{"id":1004,"eClass":"EGenericType"},{"id":1005,"eClass":"EGenericType"},{"id":1006,"eClass":"EGenericType"},{"id":1007,"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":1008,"derived":false},{"id":1009,"eClass":"EGenericType"},{"id":1010,"eClass":"EGenericType"},{"id":1011,"eClass":"EGenericType"},{"id":1012,"eClass":"EGenericType"},{"id":1013,"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":"variable","changeable":true,"resolveProxies":true,"lowerBound":1,"id":1014,"derived":false},{"id":1015,"eClass":"EGenericType"},{"id":1016,"eClass":"EGenericType"},{"id":1017,"eClass":"EGenericType"},{"id":1018,"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":1019,"derived":false},{"id":1020,"eClass":"EGenericType"},{"id":1021,"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":1022,"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":"variable","changeable":true,"resolveProxies":true,"lowerBound":1,"id":1023,"derived":false},{"id":1024,"eClass":"EGenericType"},{"id":1025,"eClass":"EGenericType"},{"id":1026,"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":"lockProvider","changeable":true,"resolveProxies":true,"lowerBound":1,"id":1027,"derived":false},{"id":1028,"eClass":"EGenericType"},{"id":1029,"eClass":"EGenericType"},{"id":1030,"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":1031,"derived":false},{"id":1032,"eClass":"EGenericType"},{"id":1033,"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":1034,"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":1035,"derived":false},{"id":1036,"eClass":"EGenericType"},{"id":1037,"eClass":"EGenericType"},{"id":1038,"eClass":"EGenericType"},{"id":1039,"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":1040,"derived":false},{"id":1041,"eClass":"EGenericType"},{"id":1042,"eClass":"EGenericType"},{"id":1043,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Boolean","instanceClass":null,"abstract":false,"id":1044,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Byte","instanceClass":null,"abstract":false,"id":1045,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Char","instanceClass":null,"abstract":false,"id":1046,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Double","instanceClass":null,"abstract":false,"id":1047,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Float","instanceClass":null,"abstract":false,"id":1048,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Int","instanceClass":null,"abstract":false,"id":1049,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Long","instanceClass":null,"abstract":false,"id":1050,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Short","instanceClass":null,"abstract":false,"id":1051,"interface":false,"eClass":"EClass"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"Void","instanceClass":null,"abstract":false,"id":1052,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":1,"unique":true,"name":"equalsType","lowerBound":0,"id":1053,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"isSuperType","lowerBound":0,"id":1054,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllMembers","lowerBound":0,"id":1055,"many":true,"required":false,"eClass":"EOperation"},{"id":1056,"eClass":"EGenericType"},{"id":1057,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"arrayDimension","lowerBound":0,"id":1058,"many":false,"required":false,"eClass":"EParameter"},{"ordered":true,"upperBound":1,"unique":true,"name":"otherType","lowerBound":0,"id":1059,"many":false,"required":false,"eClass":"EParameter"},{"ordered":true,"upperBound":1,"unique":true,"name":"otherArrayDimension","lowerBound":0,"id":1060,"many":false,"required":false,"eClass":"EParameter"},{"id":1061,"eClass":"EGenericType"},{"id":1062,"eClass":"EGenericType"},{"id":1063,"eClass":"EGenericType"},{"id":1064,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"arrayDimension","lowerBound":0,"id":1065,"many":false,"required":false,"eClass":"EParameter"},{"ordered":true,"upperBound":1,"unique":true,"name":"otherType","lowerBound":0,"id":1066,"many":false,"required":false,"eClass":"EParameter"},{"ordered":true,"upperBound":1,"unique":true,"name":"otherArrayType","lowerBound":0,"id":1067,"many":false,"required":false,"eClass":"EParameter"},{"id":1068,"eClass":"EGenericType"},{"id":1069,"eClass":"EGenericType"},{"id":1070,"eClass":"EGenericType"},{"id":1071,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"context","lowerBound":0,"id":1072,"many":false,"required":false,"eClass":"EParameter"},{"id":1073,"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":"typeReference","changeable":true,"resolveProxies":true,"lowerBound":1,"id":1074,"derived":false},{"id":1075,"eClass":"EGenericType"},{"id":1076,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"getTarget","lowerBound":0,"id":1077,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"setTarget","lowerBound":0,"id":1078,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getBoundTarget","lowerBound":0,"id":1079,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"getPureClassifierReference","lowerBound":0,"id":1080,"many":false,"required":false,"eClass":"EOperation"},{"id":1081,"eClass":"EGenericType"},{"id":1082,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"type","lowerBound":0,"id":1083,"many":false,"required":false,"eClass":"EParameter"},{"id":1084,"eClass":"EGenericType"},{"id":1085,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"reference","lowerBound":0,"id":1086,"many":false,"required":false,"eClass":"EParameter"},{"id":1087,"eClass":"EGenericType"},{"id":1088,"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":1089,"derived":false},{"id":1090,"eClass":"EGenericType"},{"id":1091,"eClass":"EGenericType"},{"id":1092,"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":1093,"derived":false},{"id":1094,"eClass":"EGenericType"},{"id":1095,"eClass":"EGenericType"},{"id":1096,"eClass":"EGenericType"},{"ordered":true,"upperBound":-1,"unique":true,"name":"getAllMembers","lowerBound":0,"id":1097,"many":true,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"wrapPrimitiveType","lowerBound":0,"id":1098,"many":false,"required":false,"eClass":"EOperation"},{"id":1099,"eClass":"EGenericType"},{"id":1100,"eClass":"EGenericType"},{"id":1101,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"context","lowerBound":0,"id":1102,"many":false,"required":false,"eClass":"EParameter"},{"id":1103,"eClass":"EGenericType"},{"id":1104,"eClass":"EGenericType"},{"id":1105,"eClass":"EGenericType"},{"id":1106,"eClass":"EGenericType"},{"id":1107,"eClass":"EGenericType"},{"id":1108,"eClass":"EGenericType"},{"id":1109,"eClass":"EGenericType"},{"id":1110,"eClass":"EGenericType"},{"id":1111,"eClass":"EGenericType"},{"id":1112,"eClass":"EGenericType"},{"id":1113,"eClass":"EGenericType"},{"instanceTypeName":null,"defaultValue":null,"instanceClassName":null,"name":"AdditionalLocalVariable","instanceClass":null,"abstract":false,"id":1114,"interface":false,"eClass":"EClass"},{"ordered":true,"upperBound":1,"unique":true,"name":"getArrayDimension","lowerBound":0,"id":1115,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"createMethodCallStatement","lowerBound":0,"id":1116,"many":false,"required":false,"eClass":"EOperation"},{"ordered":true,"upperBound":1,"unique":true,"name":"createMethodCall","lowerBound":0,"id":1117,"many":false,"required":false,"eClass":"EOperation"},{"id":1118,"eClass":"EGenericType"},{"id":1119,"eClass":"EGenericType"},{"id":1120,"eClass":"EGenericType"},{"id":1121,"eClass":"EGenericType"},{"id":1122,"eClass":"EGenericType"},{"id":1123,"eClass":"EGenericType"},{"id":1124,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"methodName","lowerBound":1,"id":1125,"many":false,"required":true,"eClass":"EParameter"},{"ordered":true,"upperBound":-1,"unique":true,"name":"arguments","lowerBound":0,"id":1126,"many":true,"required":false,"eClass":"EParameter"},{"id":1127,"eClass":"EGenericType"},{"id":1128,"eClass":"EGenericType"},{"id":1129,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"methodName","lowerBound":1,"id":1130,"many":false,"required":true,"eClass":"EParameter"},{"ordered":true,"upperBound":-1,"unique":true,"name":"arguments","lowerBound":0,"id":1131,"many":true,"required":false,"eClass":"EParameter"},{"id":1132,"eClass":"EGenericType"},{"id":1133,"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":1134,"derived":false},{"id":1135,"eClass":"EGenericType"},{"id":1136,"eClass":"EGenericType"},{"id":1137,"eClass":"EGenericType"},{"id":1138,"eClass":"EGenericType"},{"id":1139,"eClass":"EGenericType"},{"ordered":true,"upperBound":1,"unique":true,"name":"getArrayDimension","lowerBound":0,"id":1140,"many":false,"required":false,"eClass":"EOperation"},{"id":1141,"eClass":"EGenericType"},{"id":1142,"eClass":"EGenericType"},{"id":1143,"eClass":"EGenericType"},{"id":1144,"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":1,"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":0},{"source":19,"target":1},{"source":19,"target":27},{"source":19,"target":28},{"source":19,"target":29},{"source":28,"target":20},{"source":28,"target":30},{"source":28,"target":19},{"source":30,"target":20},{"source":29,"target":27},{"source":20,"target":1},{"source":20,"target":31},{"source":20,"target":32},{"source":20,"target":33},{"source":20,"target":34},{"source":20,"target":35},{"source":20,"target":36},{"source":20,"target":37},{"source":20,"target":38},{"source":34,"target":39},{"source":34,"target":40},{"source":34,"target":20},{"source":40,"target":39},{"source":35,"target":21},{"source":35,"target":41},{"source":35,"target":20},{"source":41,"target":21},{"source":36,"target":31},{"source":37,"target":32},{"source":38,"target":33},{"source":21,"target":1},{"source":21,"target":27},{"source":21,"target":42},{"source":42,"target":27},{"source":22,"target":1},{"source":22,"target":21},{"source":22,"target":43},{"source":22,"target":44},{"source":43,"target":25},{"source":43,"target":45},{"source":43,"target":22},{"source":45,"target":25},{"source":44,"target":21},{"source":23,"target":1},{"source":23,"target":21},{"source":23,"target":46},{"source":23,"target":47},{"source":46,"target":24},{"source":46,"target":48},{"source":46,"target":23},{"source":48,"target":24},{"source":47,"target":21},{"source":24,"target":1},{"source":24,"target":27},{"source":24,"target":49},{"source":24,"target":50},{"source":24,"target":51},{"source":49,"target":52},{"source":49,"target":53},{"source":49,"target":24},{"source":53,"target":52},{"source":50,"target":25},{"source":50,"target":54},{"source":50,"target":24},{"source":54,"target":25},{"source":51,"target":27},{"source":25,"target":1},{"source":25,"target":27},{"source":25,"target":55},{"source":55,"target":27},{"source":26,"target":1},{"source":26,"target":52},{"source":26,"target":56},{"source":26,"target":57},{"source":56,"target":58},{"source":56,"target":59},{"source":56,"target":26},{"source":59,"target":58},{"source":57,"target":52},{"source":2,"target":60},{"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":68},{"source":2,"target":69},{"source":2,"target":0},{"source":60,"target":2},{"source":60,"target":27},{"source":60,"target":70},{"source":60,"target":71},{"source":60,"target":72},{"source":60,"target":73},{"source":70,"target":74},{"source":70,"target":60},{"source":71,"target":61},{"source":71,"target":75},{"source":71,"target":60},{"source":75,"target":61},{"source":72,"target":61},{"source":72,"target":76},{"source":72,"target":60},{"source":76,"target":61},{"source":73,"target":27},{"source":61,"target":2},{"source":61,"target":27},{"source":61,"target":77},{"source":77,"target":27},{"source":62,"target":2},{"source":62,"target":63},{"source":62,"target":25},{"source":62,"target":78},{"source":62,"target":79},{"source":62,"target":80},{"source":78,"target":63},{"source":78,"target":81},{"source":78,"target":62},{"source":81,"target":63},{"source":79,"target":63},{"source":80,"target":25},{"source":63,"target":2},{"source":63,"target":27},{"source":63,"target":82},{"source":82,"target":27},{"source":64,"target":2},{"source":64,"target":58},{"source":64,"target":31},{"source":64,"target":83},{"source":64,"target":84},{"source":83,"target":58},{"source":84,"target":31},{"source":65,"target":2},{"source":65,"target":64},{"source":65,"target":85},{"source":65,"target":60},{"source":65,"target":86},{"source":65,"target":87},{"source":65,"target":88},{"source":65,"target":89},{"source":86,"target":58},{"source":86,"target":90},{"source":86,"target":65},{"source":90,"target":58},{"source":87,"target":64},{"source":88,"target":85},{"source":89,"target":60},{"source":66,"target":2},{"source":66,"target":64},{"source":66,"target":91},{"source":66,"target":92},{"source":91,"target":62},{"source":91,"target":93},{"source":91,"target":66},{"source":93,"target":62},{"source":92,"target":64},{"source":67,"target":2},{"source":67,"target":66},{"source":67,"target":94},{"source":94,"target":66},{"source":68,"target":2},{"source":68,"target":66},{"source":68,"target":85},{"source":68,"target":60},{"source":68,"target":95},{"source":68,"target":96},{"source":68,"target":97},{"source":95,"target":66},{"source":96,"target":85},{"source":97,"target":60},{"source":69,"target":2},{"source":69,"target":27},{"source":69,"target":98},{"source":69,"target":99},{"source":98,"target":58},{"source":98,"target":100},{"source":98,"target":69},{"source":100,"target":58},{"source":99,"target":27},{"source":3,"target":39},{"source":3,"target":101},{"source":3,"target":102},{"source":3,"target":103},{"source":3,"target":104},{"source":3,"target":105},{"source":3,"target":106},{"source":3,"target":107},{"source":3,"target":0},{"source":39,"target":3},{"source":39,"target":108},{"source":39,"target":109},{"source":39,"target":110},{"source":39,"target":111},{"source":39,"target":112},{"source":110,"target":101},{"source":110,"target":113},{"source":110,"target":39},{"source":113,"target":101},{"source":111,"target":108},{"source":112,"target":109},{"source":101,"target":3},{"source":101,"target":39},{"source":101,"target":114},{"source":101,"target":115},{"source":101,"target":116},{"source":101,"target":117},{"source":101,"target":118},{"source":101,"target":119},{"source":101,"target":120},{"source":101,"target":121},{"source":101,"target":122},{"source":101,"target":123},{"source":101,"target":124},{"source":101,"target":125},{"source":101,"target":126},{"source":101,"target":127},{"source":101,"target":128},{"source":119,"target":101},{"source":119,"target":129},{"source":119,"target":101},{"source":129,"target":101},{"source":120,"target":101},{"source":120,"target":130},{"source":120,"target":101},{"source":130,"target":101},{"source":121,"target":131},{"source":121,"target":132},{"source":121,"target":101},{"source":132,"target":131},{"source":122,"target":116},{"source":122,"target":133},{"source":122,"target":101},{"source":122,"target":134},{"source":133,"target":116},{"source":134,"target":27},{"source":134,"target":135},{"source":134,"target":122},{"source":135,"target":27},{"source":123,"target":39},{"source":124,"target":114},{"source":125,"target":115},{"source":126,"target":116},{"source":127,"target":117},{"source":128,"target":118},{"source":102,"target":3},{"source":102,"target":27},{"source":102,"target":136},{"source":102,"target":137},{"source":136,"target":138},{"source":136,"target":139},{"source":136,"target":102},{"source":139,"target":138},{"source":137,"target":27},{"source":103,"target":3},{"source":103,"target":101},{"source":103,"target":102},{"source":103,"target":140},{"source":103,"target":141},{"source":103,"target":142},{"source":103,"target":143},{"source":103,"target":144},{"source":103,"target":145},{"source":103,"target":146},{"source":140,"target":101},{"source":140,"target":147},{"source":140,"target":103},{"source":147,"target":101},{"source":141,"target":103},{"source":141,"target":148},{"source":141,"target":103},{"source":148,"target":103},{"source":142,"target":149},{"source":142,"target":150},{"source":142,"target":103},{"source":150,"target":149},{"source":143,"target":138},{"source":143,"target":151},{"source":143,"target":103},{"source":151,"target":138},{"source":144,"target":138},{"source":144,"target":152},{"source":144,"target":103},{"source":152,"target":138},{"source":145,"target":101},{"source":146,"target":102},{"source":104,"target":3},{"source":104,"target":101},{"source":104,"target":153},{"source":104,"target":154},{"source":104,"target":155},{"source":104,"target":156},{"source":153,"target":101},{"source":153,"target":157},{"source":153,"target":104},{"source":157,"target":101},{"source":154,"target":138},{"source":154,"target":158},{"source":154,"target":104},{"source":158,"target":138},{"source":155,"target":138},{"source":155,"target":159},{"source":155,"target":104},{"source":159,"target":138},{"source":156,"target":101},{"source":105,"target":3},{"source":105,"target":101},{"source":105,"target":102},{"source":105,"target":160},{"source":105,"target":161},{"source":105,"target":162},{"source":105,"target":163},{"source":105,"target":164},{"source":160,"target":101},{"source":160,"target":165},{"source":160,"target":105},{"source":165,"target":101},{"source":161,"target":166},{"source":161,"target":167},{"source":161,"target":105},{"source":161,"target":168},{"source":167,"target":166},{"source":168,"target":169},{"source":168,"target":161},{"source":162,"target":166},{"source":162,"target":170},{"source":162,"target":105},{"source":170,"target":166},{"source":163,"target":101},{"source":164,"target":102},{"source":106,"target":3},{"source":106,"target":101},{"source":106,"target":171},{"source":106,"target":172},{"source":171,"target":101},{"source":171,"target":173},{"source":171,"target":106},{"source":173,"target":101},{"source":172,"target":101},{"source":107,"target":3},{"source":107,"target":108},{"source":107,"target":115},{"source":107,"target":174},{"source":107,"target":175},{"source":107,"target":176},{"source":107,"target":177},{"source":107,"target":178},{"source":174,"target":101},{"source":174,"target":179},{"source":174,"target":107},{"source":179,"target":101},{"source":175,"target":101},{"source":175,"target":180},{"source":175,"target":107},{"source":180,"target":101},{"source":176,"target":116},{"source":176,"target":181},{"source":176,"target":107},{"source":176,"target":182},{"source":181,"target":116},{"source":182,"target":27},{"source":182,"target":183},{"source":182,"target":176},{"source":183,"target":27},{"source":177,"target":108},{"source":178,"target":115},{"source":4,"target":27},{"source":4,"target":184},{"source":4,"target":33},{"source":4,"target":0},{"source":27,"target":4},{"source":27,"target":185},{"source":27,"target":186},{"source":27,"target":187},{"source":27,"target":188},{"source":27,"target":189},{"source":27,"target":190},{"source":27,"target":191},{"source":27,"target":192},{"source":27,"target":193},{"source":27,"target":194},{"source":27,"target":195},{"source":27,"target":196},{"source":27,"target":197},{"source":27,"target":198},{"source":27,"target":199},{"source":27,"target":200},{"source":27,"target":201},{"source":27,"target":202},{"source":27,"target":203},{"source":27,"target":204},{"source":27,"target":205},{"source":27,"target":206},{"source":27,"target":207},{"source":27,"target":208},{"source":27,"target":209},{"source":27,"target":210},{"source":27,"target":211},{"source":185,"target":101},{"source":185,"target":212},{"source":185,"target":27},{"source":185,"target":213},{"source":212,"target":101},{"source":213,"target":214},{"source":213,"target":185},{"source":186,"target":101},{"source":186,"target":215},{"source":186,"target":27},{"source":186,"target":216},{"source":215,"target":101},{"source":216,"target":217},{"source":216,"target":186},{"source":187,"target":101},{"source":187,"target":218},{"source":187,"target":27},{"source":187,"target":219},{"source":187,"target":220},{"source":218,"target":101},{"source":219,"target":221},{"source":219,"target":187},{"source":220,"target":222},{"source":220,"target":187},{"source":188,"target":101},{"source":188,"target":223},{"source":188,"target":27},{"source":188,"target":224},{"source":188,"target":225},{"source":223,"target":101},{"source":224,"target":226},{"source":224,"target":188},{"source":225,"target":227},{"source":225,"target":188},{"source":189,"target":103},{"source":189,"target":228},{"source":189,"target":27},{"source":189,"target":229},{"source":228,"target":103},{"source":229,"target":230},{"source":229,"target":189},{"source":190,"target":104},{"source":190,"target":231},{"source":190,"target":27},{"source":190,"target":232},{"source":231,"target":104},{"source":232,"target":233},{"source":232,"target":190},{"source":191,"target":103},{"source":191,"target":234},{"source":191,"target":27},{"source":234,"target":103},{"source":192,"target":103},{"source":192,"target":235},{"source":192,"target":27},{"source":235,"target":103},{"source":193,"target":103},{"source":193,"target":236},{"source":193,"target":27},{"source":236,"target":103},{"source":194,"target":104},{"source":194,"target":237},{"source":194,"target":27},{"source":237,"target":104},{"source":195,"target":20},{"source":195,"target":238},{"source":195,"target":27},{"source":238,"target":20},{"source":196,"target":107},{"source":196,"target":239},{"source":196,"target":27},{"source":239,"target":107},{"source":197,"target":101},{"source":197,"target":240},{"source":197,"target":27},{"source":240,"target":101},{"source":198,"target":241},{"source":198,"target":242},{"source":198,"target":27},{"source":242,"target":241},{"source":199,"target":243},{"source":199,"target":27},{"source":200,"target":244},{"source":200,"target":27},{"source":201,"target":101},{"source":201,"target":245},{"source":201,"target":27},{"source":245,"target":101},{"source":202,"target":246},{"source":202,"target":27},{"source":202,"target":247},{"source":247,"target":248},{"source":247,"target":202},{"source":203,"target":249},{"source":203,"target":27},{"source":203,"target":250},{"source":250,"target":251},{"source":250,"target":203},{"source":204,"target":252},{"source":204,"target":27},{"source":204,"target":253},{"source":204,"target":254},{"source":252,"target":253},{"source":254,"target":255},{"source":254,"target":204},{"source":255,"target":256},{"source":256,"target":253},{"source":205,"target":257},{"source":205,"target":27},{"source":205,"target":258},{"source":205,"target":259},{"source":257,"target":258},{"source":259,"target":260},{"source":259,"target":205},{"source":260,"target":261},{"source":261,"target":258},{"source":206,"target":262},{"source":206,"target":27},{"source":206,"target":263},{"source":263,"target":264},{"source":263,"target":206},{"source":207,"target":265},{"source":207,"target":27},{"source":207,"target":266},{"source":207,"target":267},{"source":265,"target":266},{"source":267,"target":268},{"source":267,"target":207},{"source":268,"target":269},{"source":269,"target":266},{"source":208,"target":270},{"source":208,"target":27},{"source":209,"target":27},{"source":209,"target":271},{"source":271,"target":117},{"source":271,"target":272},{"source":271,"target":209},{"source":272,"target":117},{"source":210,"target":27},{"source":210,"target":273},{"source":273,"target":117},{"source":273,"target":274},{"source":273,"target":210},{"source":274,"target":117},{"source":211,"target":275},{"source":211,"target":27},{"source":184,"target":4},{"source":184,"target":27},{"source":184,"target":276},{"source":184,"target":277},{"source":276,"target":278},{"source":276,"target":184},{"source":277,"target":27},{"source":33,"target":4},{"source":33,"target":27},{"source":33,"target":279},{"source":33,"target":280},{"source":33,"target":281},{"source":33,"target":282},{"source":279,"target":283},{"source":279,"target":33},{"source":280,"target":101},{"source":280,"target":284},{"source":280,"target":33},{"source":284,"target":101},{"source":281,"target":285},{"source":281,"target":33},{"source":282,"target":27},{"source":5,"target":286},{"source":5,"target":241},{"source":5,"target":287},{"source":5,"target":288},{"source":5,"target":0},{"source":286,"target":5},{"source":286,"target":184},{"source":286,"target":33},{"source":286,"target":289},{"source":286,"target":290},{"source":286,"target":291},{"source":286,"target":292},{"source":286,"target":293},{"source":290,"target":101},{"source":290,"target":294},{"source":290,"target":286},{"source":294,"target":101},{"source":291,"target":184},{"source":292,"target":33},{"source":293,"target":289},{"source":241,"target":5},{"source":241,"target":286},{"source":241,"target":295},{"source":241,"target":296},{"source":241,"target":297},{"source":241,"target":298},{"source":241,"target":299},{"source":241,"target":300},{"source":241,"target":301},{"source":241,"target":302},{"source":295,"target":101},{"source":295,"target":303},{"source":295,"target":241},{"source":295,"target":304},{"source":303,"target":101},{"source":304,"target":305},{"source":304,"target":295},{"source":296,"target":101},{"source":296,"target":306},{"source":296,"target":241},{"source":306,"target":101},{"source":297,"target":103},{"source":297,"target":307},{"source":297,"target":241},{"source":307,"target":103},{"source":298,"target":104},{"source":298,"target":308},{"source":298,"target":241},{"source":308,"target":104},{"source":299,"target":106},{"source":299,"target":309},{"source":299,"target":241},{"source":309,"target":106},{"source":300,"target":105},{"source":300,"target":310},{"source":300,"target":241},{"source":310,"target":105},{"source":301,"target":101},{"source":301,"target":311},{"source":301,"target":241},{"source":311,"target":101},{"source":302,"target":286},{"source":287,"target":5},{"source":287,"target":286},{"source":287,"target":19},{"source":287,"target":312},{"source":287,"target":313},{"source":287,"target":314},{"source":287,"target":315},{"source":287,"target":316},{"source":312,"target":317},{"source":312,"target":287},{"source":313,"target":101},{"source":313,"target":318},{"source":313,"target":287},{"source":318,"target":101},{"source":314,"target":241},{"source":314,"target":319},{"source":314,"target":287},{"source":319,"target":241},{"source":315,"target":286},{"source":316,"target":19},{"source":288,"target":5},{"source":288,"target":286},{"source":288,"target":320},{"source":320,"target":286},{"source":6,"target":321},{"source":6,"target":58},{"source":6,"target":322},{"source":6,"target":323},{"source":6,"target":324},{"source":6,"target":325},{"source":6,"target":326},{"source":6,"target":327},{"source":6,"target":328},{"source":6,"target":329},{"source":6,"target":330},{"source":6,"target":331},{"source":6,"target":332},{"source":6,"target":333},{"source":6,"target":334},{"source":6,"target":335},{"source":6,"target":336},{"source":6,"target":337},{"source":6,"target":338},{"source":6,"target":339},{"source":6,"target":340},{"source":6,"target":341},{"source":6,"target":342},{"source":6,"target":343},{"source":6,"target":344},{"source":6,"target":345},{"source":6,"target":346},{"source":6,"target":347},{"source":6,"target":348},{"source":6,"target":349},{"source":6,"target":350},{"source":6,"target":351},{"source":6,"target":352},{"source":6,"target":353},{"source":6,"target":354},{"source":6,"target":355},{"source":6,"target":356},{"source":6,"target":0},{"source":321,"target":6},{"source":321,"target":357},{"source":321,"target":358},{"source":321,"target":359},{"source":358,"target":58},{"source":358,"target":360},{"source":358,"target":321},{"source":360,"target":58},{"source":359,"target":357},{"source":58,"target":6},{"source":58,"target":63},{"source":58,"target":25},{"source":58,"target":361},{"source":58,"target":362},{"source":58,"target":363},{"source":58,"target":364},{"source":58,"target":365},{"source":58,"target":366},{"source":361,"target":108},{"source":361,"target":367},{"source":361,"target":58},{"source":367,"target":108},{"source":362,"target":108},{"source":362,"target":368},{"source":362,"target":58},{"source":368,"target":108},{"source":363,"target":108},{"source":363,"target":369},{"source":363,"target":58},{"source":363,"target":370},{"source":369,"target":108},{"source":370,"target":371},{"source":370,"target":363},{"source":364,"target":372},{"source":364,"target":58},{"source":365,"target":63},{"source":366,"target":25},{"source":322,"target":6},{"source":322,"target":58},{"source":322,"target":373},{"source":322,"target":374},{"source":322,"target":375},{"source":322,"target":376},{"source":373,"target":323},{"source":373,"target":377},{"source":373,"target":322},{"source":377,"target":323},{"source":374,"target":378},{"source":374,"target":379},{"source":374,"target":322},{"source":379,"target":378},{"source":375,"target":58},{"source":375,"target":380},{"source":375,"target":322},{"source":380,"target":58},{"source":376,"target":58},{"source":323,"target":6},{"source":323,"target":58},{"source":323,"target":381},{"source":381,"target":58},{"source":324,"target":6},{"source":324,"target":323},{"source":324,"target":382},{"source":324,"target":383},{"source":324,"target":384},{"source":324,"target":385},{"source":382,"target":325},{"source":382,"target":386},{"source":382,"target":324},{"source":386,"target":325},{"source":383,"target":58},{"source":383,"target":387},{"source":383,"target":324},{"source":387,"target":58},{"source":384,"target":323},{"source":384,"target":388},{"source":384,"target":324},{"source":388,"target":323},{"source":385,"target":323},{"source":325,"target":6},{"source":325,"target":323},{"source":325,"target":389},{"source":389,"target":323},{"source":326,"target":6},{"source":326,"target":325},{"source":326,"target":390},{"source":326,"target":391},{"source":390,"target":327},{"source":390,"target":392},{"source":390,"target":326},{"source":392,"target":327},{"source":391,"target":325},{"source":327,"target":6},{"source":327,"target":325},{"source":327,"target":393},{"source":393,"target":325},{"source":328,"target":6},{"source":328,"target":327},{"source":328,"target":394},{"source":328,"target":395},{"source":394,"target":329},{"source":394,"target":396},{"source":394,"target":328},{"source":396,"target":329},{"source":395,"target":327},{"source":329,"target":6},{"source":329,"target":327},{"source":329,"target":397},{"source":397,"target":327},{"source":330,"target":6},{"source":330,"target":329},{"source":330,"target":398},{"source":330,"target":399},{"source":398,"target":331},{"source":398,"target":400},{"source":398,"target":330},{"source":400,"target":331},{"source":399,"target":329},{"source":331,"target":6},{"source":331,"target":329},{"source":331,"target":401},{"source":401,"target":329},{"source":332,"target":6},{"source":332,"target":331},{"source":332,"target":402},{"source":332,"target":403},{"source":402,"target":333},{"source":402,"target":404},{"source":402,"target":332},{"source":404,"target":333},{"source":403,"target":331},{"source":333,"target":6},{"source":333,"target":331},{"source":333,"target":405},{"source":405,"target":331},{"source":334,"target":6},{"source":334,"target":333},{"source":334,"target":406},{"source":334,"target":407},{"source":406,"target":335},{"source":406,"target":408},{"source":406,"target":334},{"source":408,"target":335},{"source":407,"target":333},{"source":335,"target":6},{"source":335,"target":333},{"source":335,"target":409},{"source":409,"target":333},{"source":336,"target":6},{"source":336,"target":335},{"source":336,"target":410},{"source":336,"target":411},{"source":336,"target":412},{"source":410,"target":413},{"source":410,"target":414},{"source":410,"target":336},{"source":414,"target":413},{"source":411,"target":337},{"source":411,"target":415},{"source":411,"target":336},{"source":415,"target":337},{"source":412,"target":335},{"source":337,"target":6},{"source":337,"target":335},{"source":337,"target":416},{"source":416,"target":335},{"source":338,"target":6},{"source":338,"target":60},{"source":338,"target":85},{"source":338,"target":337},{"source":338,"target":417},{"source":338,"target":418},{"source":338,"target":419},{"source":338,"target":420},{"source":417,"target":339},{"source":417,"target":421},{"source":417,"target":338},{"source":421,"target":339},{"source":418,"target":60},{"source":419,"target":85},{"source":420,"target":337},{"source":339,"target":6},{"source":339,"target":337},{"source":339,"target":422},{"source":422,"target":337},{"source":340,"target":6},{"source":340,"target":339},{"source":340,"target":423},{"source":340,"target":424},{"source":340,"target":425},{"source":423,"target":341},{"source":423,"target":426},{"source":423,"target":340},{"source":426,"target":341},{"source":424,"target":427},{"source":424,"target":428},{"source":424,"target":340},{"source":428,"target":427},{"source":425,"target":339},{"source":341,"target":6},{"source":341,"target":339},{"source":341,"target":429},{"source":429,"target":339},{"source":342,"target":6},{"source":342,"target":341},{"source":342,"target":430},{"source":342,"target":431},{"source":342,"target":432},{"source":430,"target":343},{"source":430,"target":433},{"source":430,"target":342},{"source":433,"target":343},{"source":431,"target":434},{"source":431,"target":435},{"source":431,"target":342},{"source":435,"target":434},{"source":432,"target":341},{"source":343,"target":6},{"source":343,"target":341},{"source":343,"target":436},{"source":436,"target":341},{"source":344,"target":6},{"source":344,"target":343},{"source":344,"target":437},{"source":344,"target":438},{"source":344,"target":439},{"source":437,"target":345},{"source":437,"target":440},{"source":437,"target":344},{"source":440,"target":345},{"source":438,"target":441},{"source":438,"target":442},{"source":438,"target":344},{"source":442,"target":441},{"source":439,"target":343},{"source":345,"target":6},{"source":345,"target":343},{"source":345,"target":443},{"source":443,"target":343},{"source":346,"target":6},{"source":346,"target":345},{"source":346,"target":444},{"source":346,"target":445},{"source":346,"target":446},{"source":444,"target":347},{"source":444,"target":447},{"source":444,"target":346},{"source":447,"target":347},{"source":445,"target":448},{"source":445,"target":449},{"source":445,"target":346},{"source":449,"target":448},{"source":446,"target":345},{"source":347,"target":6},{"source":347,"target":345},{"source":347,"target":450},{"source":450,"target":345},{"source":348,"target":6},{"source":348,"target":347},{"source":348,"target":451},{"source":348,"target":452},{"source":348,"target":453},{"source":451,"target":454},{"source":451,"target":455},{"source":451,"target":348},{"source":455,"target":454},{"source":452,"target":349},{"source":452,"target":456},{"source":452,"target":348},{"source":456,"target":349},{"source":453,"target":347},{"source":349,"target":6},{"source":349,"target":347},{"source":349,"target":457},{"source":457,"target":347},{"source":350,"target":6},{"source":350,"target":349},{"source":350,"target":458},{"source":350,"target":459},{"source":350,"target":460},{"source":458,"target":353},{"source":458,"target":461},{"source":458,"target":350},{"source":461,"target":353},{"source":459,"target":462},{"source":459,"target":463},{"source":459,"target":350},{"source":463,"target":462},{"source":460,"target":349},{"source":351,"target":6},{"source":351,"target":350},{"source":351,"target":464},{"source":464,"target":350},{"source":352,"target":6},{"source":352,"target":350},{"source":352,"target":465},{"source":465,"target":350},{"source":353,"target":6},{"source":353,"target":349},{"source":353,"target":466},{"source":466,"target":349},{"source":354,"target":6},{"source":354,"target":85},{"source":354,"target":60},{"source":354,"target":353},{"source":354,"target":467},{"source":354,"target":468},{"source":354,"target":469},{"source":354,"target":470},{"source":467,"target":347},{"source":467,"target":471},{"source":467,"target":354},{"source":471,"target":347},{"source":468,"target":85},{"source":469,"target":60},{"source":470,"target":353},{"source":355,"target":6},{"source":355,"target":353},{"source":355,"target":472},{"source":472,"target":353},{"source":356,"target":6},{"source":356,"target":31},{"source":356,"target":473},{"source":356,"target":474},{"source":473,"target":58},{"source":473,"target":475},{"source":473,"target":356},{"source":475,"target":58},{"source":474,"target":31},{"source":7,"target":476},{"source":7,"target":477},{"source":7,"target":478},{"source":7,"target":114},{"source":7,"target":479},{"source":7,"target":480},{"source":7,"target":481},{"source":7,"target":482},{"source":7,"target":483},{"source":7,"target":0},{"source":476,"target":7},{"source":476,"target":60},{"source":476,"target":484},{"source":484,"target":60},{"source":477,"target":7},{"source":477,"target":27},{"source":477,"target":485},{"source":477,"target":486},{"source":485,"target":476},{"source":485,"target":487},{"source":485,"target":477},{"source":487,"target":476},{"source":486,"target":27},{"source":478,"target":7},{"source":478,"target":27},{"source":478,"target":488},{"source":478,"target":489},{"source":488,"target":476},{"source":488,"target":490},{"source":488,"target":478},{"source":490,"target":476},{"source":489,"target":27},{"source":114,"target":7},{"source":114,"target":27},{"source":114,"target":491},{"source":114,"target":492},{"source":491,"target":482},{"source":491,"target":493},{"source":491,"target":114},{"source":493,"target":482},{"source":492,"target":27},{"source":479,"target":7},{"source":479,"target":476},{"source":479,"target":494},{"source":479,"target":495},{"source":494,"target":138},{"source":494,"target":496},{"source":494,"target":479},{"source":496,"target":138},{"source":495,"target":476},{"source":480,"target":7},{"source":480,"target":476},{"source":480,"target":85},{"source":480,"target":497},{"source":480,"target":498},{"source":497,"target":476},{"source":498,"target":85},{"source":481,"target":7},{"source":481,"target":476},{"source":481,"target":499},{"source":481,"target":500},{"source":499,"target":138},{"source":499,"target":501},{"source":499,"target":481},{"source":501,"target":138},{"source":500,"target":476},{"source":482,"target":7},{"source":482,"target":39},{"source":482,"target":502},{"source":482,"target":503},{"source":482,"target":504},{"source":482,"target":505},{"source":482,"target":506},{"source":502,"target":101},{"source":502,"target":507},{"source":502,"target":482},{"source":507,"target":101},{"source":503,"target":116},{"source":503,"target":508},{"source":503,"target":482},{"source":503,"target":509},{"source":508,"target":116},{"source":509,"target":27},{"source":509,"target":510},{"source":509,"target":503},{"source":510,"target":27},{"source":504,"target":108},{"source":504,"target":511},{"source":504,"target":482},{"source":504,"target":512},{"source":504,"target":513},{"source":511,"target":108},{"source":512,"target":138},{"source":512,"target":514},{"source":512,"target":504},{"source":514,"target":138},{"source":513,"target":31},{"source":513,"target":515},{"source":513,"target":504},{"source":515,"target":31},{"source":505,"target":138},{"source":505,"target":516},{"source":505,"target":482},{"source":516,"target":138},{"source":506,"target":39},{"source":483,"target":7},{"source":483,"target":476},{"source":483,"target":517},{"source":517,"target":476},{"source":8,"target":518},{"source":8,"target":289},{"source":8,"target":519},{"source":8,"target":520},{"source":8,"target":521},{"source":8,"target":522},{"source":8,"target":523},{"source":8,"target":0},{"source":518,"target":8},{"source":518,"target":33},{"source":518,"target":524},{"source":518,"target":525},{"source":518,"target":526},{"source":518,"target":527},{"source":524,"target":101},{"source":524,"target":528},{"source":524,"target":518},{"source":524,"target":529},{"source":528,"target":101},{"source":529,"target":530},{"source":529,"target":524},{"source":525,"target":101},{"source":525,"target":531},{"source":525,"target":518},{"source":531,"target":101},{"source":526,"target":184},{"source":526,"target":532},{"source":526,"target":518},{"source":532,"target":184},{"source":527,"target":33},{"source":289,"target":8},{"source":289,"target":27},{"source":289,"target":533},{"source":289,"target":534},{"source":289,"target":535},{"source":533,"target":101},{"source":533,"target":536},{"source":533,"target":289},{"source":536,"target":101},{"source":534,"target":518},{"source":534,"target":537},{"source":534,"target":289},{"source":537,"target":518},{"source":535,"target":27},{"source":519,"target":8},{"source":519,"target":518},{"source":519,"target":538},{"source":519,"target":539},{"source":538,"target":540},{"source":538,"target":541},{"source":538,"target":519},{"source":541,"target":540},{"source":539,"target":518},{"source":520,"target":8},{"source":520,"target":518},{"source":520,"target":542},{"source":520,"target":543},{"source":542,"target":101},{"source":542,"target":544},{"source":542,"target":520},{"source":544,"target":101},{"source":543,"target":518},{"source":521,"target":8},{"source":521,"target":518},{"source":521,"target":545},{"source":545,"target":518},{"source":522,"target":8},{"source":522,"target":519},{"source":522,"target":546},{"source":546,"target":519},{"source":523,"target":8},{"source":523,"target":519},{"source":523,"target":547},{"source":523,"target":548},{"source":547,"target":109},{"source":547,"target":549},{"source":547,"target":523},{"source":549,"target":109},{"source":548,"target":519},{"source":9,"target":550},{"source":9,"target":551},{"source":9,"target":552},{"source":9,"target":553},{"source":9,"target":0},{"source":550,"target":9},{"source":550,"target":27},{"source":550,"target":554},{"source":550,"target":555},{"source":554,"target":58},{"source":554,"target":556},{"source":554,"target":550},{"source":556,"target":58},{"source":555,"target":27},{"source":551,"target":9},{"source":551,"target":31},{"source":551,"target":557},{"source":551,"target":558},{"source":551,"target":559},{"source":558,"target":31},{"source":559,"target":557},{"source":552,"target":9},{"source":552,"target":85},{"source":552,"target":551},{"source":552,"target":478},{"source":552,"target":560},{"source":552,"target":561},{"source":552,"target":562},{"source":552,"target":563},{"source":560,"target":107},{"source":560,"target":564},{"source":560,"target":552},{"source":564,"target":107},{"source":561,"target":85},{"source":562,"target":551},{"source":563,"target":478},{"source":553,"target":9},{"source":553,"target":551},{"source":553,"target":565},{"source":553,"target":566},{"source":565,"target":567},{"source":565,"target":568},{"source":565,"target":553},{"source":568,"target":567},{"source":566,"target":551},{"source":10,"target":569},{"source":10,"target":567},{"source":10,"target":570},{"source":10,"target":571},{"source":10,"target":572},{"source":10,"target":573},{"source":10,"target":574},{"source":10,"target":575},{"source":10,"target":576},{"source":10,"target":577},{"source":10,"target":578},{"source":10,"target":579},{"source":10,"target":580},{"source":10,"target":581},{"source":10,"target":582},{"source":10,"target":583},{"source":10,"target":584},{"source":10,"target":585},{"source":10,"target":586},{"source":10,"target":587},{"source":10,"target":588},{"source":10,"target":0},{"source":569,"target":10},{"source":569,"target":355},{"source":569,"target":589},{"source":569,"target":590},{"source":589,"target":108},{"source":589,"target":591},{"source":589,"target":569},{"source":589,"target":592},{"source":591,"target":108},{"source":592,"target":593},{"source":592,"target":589},{"source":590,"target":355},{"source":567,"target":10},{"source":567,"target":27},{"source":567,"target":594},{"source":594,"target":27},{"source":570,"target":10},{"source":570,"target":569},{"source":570,"target":595},{"source":570,"target":596},{"source":595,"target":597},{"source":595,"target":570},{"source":596,"target":569},{"source":571,"target":10},{"source":571,"target":569},{"source":571,"target":598},{"source":571,"target":599},{"source":598,"target":600},{"source":598,"target":571},{"source":599,"target":569},{"source":572,"target":10},{"source":572,"target":569},{"source":572,"target":601},{"source":601,"target":569},{"source":573,"target":10},{"source":573,"target":572},{"source":573,"target":602},{"source":573,"target":603},{"source":602,"target":604},{"source":602,"target":573},{"source":603,"target":572},{"source":574,"target":10},{"source":574,"target":572},{"source":574,"target":605},{"source":574,"target":606},{"source":605,"target":607},{"source":605,"target":574},{"source":606,"target":572},{"source":575,"target":10},{"source":575,"target":569},{"source":575,"target":608},{"source":608,"target":569},{"source":576,"target":10},{"source":576,"target":575},{"source":576,"target":609},{"source":576,"target":610},{"source":609,"target":611},{"source":609,"target":576},{"source":610,"target":575},{"source":577,"target":10},{"source":577,"target":575},{"source":577,"target":612},{"source":577,"target":613},{"source":612,"target":614},{"source":612,"target":577},{"source":613,"target":575},{"source":578,"target":10},{"source":578,"target":569},{"source":578,"target":615},{"source":615,"target":569},{"source":579,"target":10},{"source":579,"target":578},{"source":579,"target":616},{"source":579,"target":617},{"source":616,"target":618},{"source":616,"target":579},{"source":617,"target":578},{"source":580,"target":10},{"source":580,"target":578},{"source":580,"target":619},{"source":580,"target":620},{"source":619,"target":621},{"source":619,"target":580},{"source":620,"target":578},{"source":581,"target":10},{"source":581,"target":578},{"source":581,"target":622},{"source":581,"target":623},{"source":622,"target":624},{"source":622,"target":581},{"source":623,"target":578},{"source":582,"target":10},{"source":582,"target":569},{"source":582,"target":625},{"source":625,"target":569},{"source":583,"target":10},{"source":583,"target":582},{"source":583,"target":626},{"source":583,"target":627},{"source":626,"target":628},{"source":626,"target":583},{"source":627,"target":582},{"source":584,"target":10},{"source":584,"target":582},{"source":584,"target":629},{"source":584,"target":630},{"source":629,"target":631},{"source":629,"target":584},{"source":630,"target":582},{"source":585,"target":10},{"source":585,"target":582},{"source":585,"target":632},{"source":585,"target":633},{"source":632,"target":634},{"source":632,"target":585},{"source":633,"target":582},{"source":586,"target":10},{"source":586,"target":569},{"source":586,"target":635},{"source":635,"target":569},{"source":587,"target":10},{"source":587,"target":567},{"source":587,"target":636},{"source":636,"target":567},{"source":588,"target":10},{"source":588,"target":567},{"source":588,"target":637},{"source":637,"target":567},{"source":11,"target":638},{"source":11,"target":116},{"source":11,"target":115},{"source":11,"target":639},{"source":11,"target":640},{"source":11,"target":641},{"source":11,"target":642},{"source":11,"target":643},{"source":11,"target":52},{"source":11,"target":644},{"source":11,"target":166},{"source":11,"target":0},{"source":638,"target":11},{"source":638,"target":27},{"source":638,"target":645},{"source":638,"target":646},{"source":645,"target":647},{"source":645,"target":648},{"source":645,"target":638},{"source":648,"target":647},{"source":646,"target":27},{"source":116,"target":11},{"source":116,"target":184},{"source":116,"target":649},{"source":649,"target":184},{"source":115,"target":11},{"source":115,"target":27},{"source":115,"target":650},{"source":115,"target":651},{"source":115,"target":652},{"source":115,"target":653},{"source":115,"target":654},{"source":115,"target":655},{"source":115,"target":656},{"source":115,"target":657},{"source":115,"target":658},{"source":115,"target":659},{"source":115,"target":660},{"source":115,"target":661},{"source":650,"target":101},{"source":650,"target":662},{"source":650,"target":115},{"source":650,"target":663},{"source":662,"target":101},{"source":663,"target":664},{"source":663,"target":650},{"source":651,"target":642},{"source":651,"target":665},{"source":651,"target":115},{"source":651,"target":666},{"source":665,"target":642},{"source":666,"target":667},{"source":666,"target":651},{"source":652,"target":643},{"source":652,"target":668},{"source":652,"target":115},{"source":652,"target":669},{"source":668,"target":643},{"source":669,"target":670},{"source":669,"target":652},{"source":653,"target":643},{"source":653,"target":671},{"source":653,"target":115},{"source":671,"target":643},{"source":654,"target":115},{"source":654,"target":672},{"source":672,"target":673},{"source":672,"target":654},{"source":655,"target":116},{"source":655,"target":674},{"source":655,"target":115},{"source":655,"target":675},{"source":674,"target":116},{"source":675,"target":676},{"source":675,"target":655},{"source":656,"target":642},{"source":656,"target":677},{"source":656,"target":115},{"source":656,"target":678},{"source":656,"target":679},{"source":677,"target":642},{"source":678,"target":680},{"source":678,"target":656},{"source":679,"target":681},{"source":679,"target":656},{"source":657,"target":642},{"source":657,"target":682},{"source":657,"target":115},{"source":682,"target":642},{"source":658,"target":640},{"source":658,"target":683},{"source":658,"target":115},{"source":683,"target":640},{"source":659,"target":116},{"source":659,"target":684},{"source":659,"target":115},{"source":684,"target":116},{"source":660,"target":116},{"source":660,"target":685},{"source":660,"target":115},{"source":685,"target":116},{"source":661,"target":27},{"source":639,"target":11},{"source":639,"target":109},{"source":639,"target":60},{"source":639,"target":550},{"source":639,"target":686},{"source":639,"target":687},{"source":639,"target":688},{"source":639,"target":689},{"source":686,"target":690},{"source":686,"target":639},{"source":687,"target":109},{"source":688,"target":60},{"source":689,"target":550},{"source":640,"target":11},{"source":640,"target":116},{"source":640,"target":691},{"source":640,"target":692},{"source":640,"target":114},{"source":640,"target":638},{"source":640,"target":118},{"source":640,"target":693},{"source":640,"target":694},{"source":640,"target":695},{"source":640,"target":696},{"source":640,"target":697},{"source":640,"target":698},{"source":693,"target":116},{"source":694,"target":691},{"source":695,"target":692},{"source":696,"target":114},{"source":697,"target":638},{"source":698,"target":118},{"source":641,"target":11},{"source":641,"target":116},{"source":641,"target":699},{"source":699,"target":116},{"source":642,"target":11},{"source":642,"target":116},{"source":642,"target":550},{"source":642,"target":700},{"source":642,"target":109},{"source":642,"target":118},{"source":642,"target":701},{"source":642,"target":702},{"source":642,"target":703},{"source":642,"target":704},{"source":642,"target":705},{"source":642,"target":706},{"source":701,"target":639},{"source":701,"target":707},{"source":701,"target":642},{"source":707,"target":639},{"source":702,"target":116},{"source":703,"target":550},{"source":704,"target":700},{"source":705,"target":109},{"source":706,"target":118},{"source":643,"target":11},{"source":643,"target":116},{"source":643,"target":85},{"source":643,"target":60},{"source":643,"target":114},{"source":643,"target":692},{"source":643,"target":109},{"source":643,"target":638},{"source":643,"target":118},{"source":643,"target":708},{"source":643,"target":709},{"source":643,"target":710},{"source":643,"target":711},{"source":643,"target":712},{"source":643,"target":713},{"source":643,"target":714},{"source":643,"target":715},{"source":643,"target":716},{"source":643,"target":717},{"source":643,"target":718},{"source":643,"target":719},{"source":708,"target":720},{"source":708,"target":643},{"source":708,"target":721},{"source":708,"target":722},{"source":721,"target":723},{"source":721,"target":724},{"source":721,"target":708},{"source":724,"target":723},{"source":722,"target":725},{"source":722,"target":708},{"source":709,"target":726},{"source":709,"target":643},{"source":709,"target":727},{"source":727,"target":723},{"source":727,"target":728},{"source":727,"target":709},{"source":728,"target":723},{"source":710,"target":729},{"source":710,"target":643},{"source":710,"target":730},{"source":710,"target":731},{"source":730,"target":643},{"source":730,"target":732},{"source":730,"target":710},{"source":732,"target":643},{"source":731,"target":723},{"source":731,"target":733},{"source":731,"target":710},{"source":733,"target":723},{"source":711,"target":734},{"source":711,"target":643},{"source":712,"target":116},{"source":713,"target":85},{"source":714,"target":60},{"source":715,"target":114},{"source":716,"target":692},{"source":717,"target":109},{"source":718,"target":638},{"source":719,"target":118},{"source":52,"target":11},{"source":52,"target":643},{"source":52,"target":735},{"source":735,"target":643},{"source":644,"target":11},{"source":644,"target":643},{"source":644,"target":691},{"source":644,"target":736},{"source":644,"target":737},{"source":736,"target":643},{"source":737,"target":691},{"source":166,"target":11},{"source":166,"target":109},{"source":166,"target":557},{"source":166,"target":19},{"source":166,"target":738},{"source":166,"target":739},{"source":166,"target":740},{"source":166,"target":741},{"source":738,"target":107},{"source":738,"target":742},{"source":738,"target":166},{"source":742,"target":107},{"source":739,"target":109},{"source":740,"target":557},{"source":741,"target":19},{"source":12,"target":743},{"source":12,"target":32},{"source":12,"target":118},{"source":12,"target":744},{"source":12,"target":745},{"source":12,"target":746},{"source":12,"target":747},{"source":12,"target":748},{"source":12,"target":749},{"source":12,"target":750},{"source":12,"target":540},{"source":12,"target":751},{"source":12,"target":752},{"source":12,"target":753},{"source":12,"target":754},{"source":12,"target":0},{"source":743,"target":12},{"source":743,"target":32},{"source":743,"target":755},{"source":755,"target":32},{"source":32,"target":12},{"source":32,"target":27},{"source":32,"target":756},{"source":756,"target":27},{"source":118,"target":12},{"source":118,"target":27},{"source":118,"target":757},{"source":118,"target":758},{"source":118,"target":759},{"source":118,"target":760},{"source":118,"target":761},{"source":118,"target":762},{"source":118,"target":763},{"source":118,"target":764},{"source":118,"target":765},{"source":118,"target":766},{"source":118,"target":767},{"source":118,"target":768},{"source":118,"target":769},{"source":118,"target":770},{"source":118,"target":771},{"source":757,"target":772},{"source":757,"target":118},{"source":757,"target":773},{"source":773,"target":27},{"source":773,"target":774},{"source":773,"target":757},{"source":774,"target":27},{"source":758,"target":775},{"source":758,"target":118},{"source":759,"target":118},{"source":759,"target":776},{"source":776,"target":777},{"source":776,"target":759},{"source":777,"target":778},{"source":760,"target":118},{"source":761,"target":118},{"source":762,"target":118},{"source":763,"target":743},{"source":763,"target":779},{"source":763,"target":118},{"source":779,"target":743},{"source":764,"target":118},{"source":765,"target":780},{"source":765,"target":118},{"source":765,"target":781},{"source":781,"target":782},{"source":781,"target":765},{"source":782,"target":783},{"source":766,"target":784},{"source":766,"target":118},{"source":767,"target":785},{"source":767,"target":118},{"source":768,"target":786},{"source":768,"target":118},{"source":769,"target":118},{"source":769,"target":787},{"source":787,"target":743},{"source":787,"target":788},{"source":787,"target":769},{"source":788,"target":743},{"source":770,"target":32},{"source":770,"target":789},{"source":770,"target":118},{"source":789,"target":32},{"source":771,"target":27},{"source":744,"target":12},{"source":744,"target":27},{"source":744,"target":790},{"source":744,"target":791},{"source":790,"target":743},{"source":790,"target":792},{"source":790,"target":744},{"source":792,"target":743},{"source":791,"target":27},{"source":745,"target":12},{"source":745,"target":743},{"source":745,"target":793},{"source":793,"target":743},{"source":746,"target":12},{"source":746,"target":743},{"source":746,"target":794},{"source":794,"target":743},{"source":747,"target":12},{"source":747,"target":743},{"source":747,"target":795},{"source":795,"target":743},{"source":748,"target":12},{"source":748,"target":743},{"source":748,"target":796},{"source":796,"target":743},{"source":749,"target":12},{"source":749,"target":743},{"source":749,"target":797},{"source":797,"target":743},{"source":750,"target":12},{"source":750,"target":743},{"source":750,"target":798},{"source":798,"target":743},{"source":540,"target":12},{"source":540,"target":743},{"source":540,"target":799},{"source":799,"target":743},{"source":751,"target":12},{"source":751,"target":743},{"source":751,"target":800},{"source":800,"target":743},{"source":752,"target":12},{"source":752,"target":743},{"source":752,"target":801},{"source":801,"target":743},{"source":753,"target":12},{"source":753,"target":743},{"source":753,"target":802},{"source":802,"target":743},{"source":754,"target":12},{"source":754,"target":743},{"source":754,"target":803},{"source":803,"target":743},{"source":13,"target":804},{"source":13,"target":441},{"source":13,"target":378},{"source":13,"target":413},{"source":13,"target":448},{"source":13,"target":427},{"source":13,"target":434},{"source":13,"target":454},{"source":13,"target":462},{"source":13,"target":805},{"source":13,"target":806},{"source":13,"target":807},{"source":13,"target":808},{"source":13,"target":809},{"source":13,"target":810},{"source":13,"target":811},{"source":13,"target":812},{"source":13,"target":813},{"source":13,"target":814},{"source":13,"target":815},{"source":13,"target":816},{"source":13,"target":817},{"source":13,"target":818},{"source":13,"target":819},{"source":13,"target":820},{"source":13,"target":821},{"source":13,"target":822},{"source":13,"target":823},{"source":13,"target":824},{"source":13,"target":825},{"source":13,"target":826},{"source":13,"target":827},{"source":13,"target":828},{"source":13,"target":829},{"source":13,"target":830},{"source":13,"target":831},{"source":13,"target":832},{"source":13,"target":833},{"source":13,"target":834},{"source":13,"target":0},{"source":804,"target":13},{"source":804,"target":27},{"source":804,"target":835},{"source":835,"target":27},{"source":441,"target":13},{"source":441,"target":804},{"source":441,"target":836},{"source":836,"target":804},{"source":378,"target":13},{"source":378,"target":804},{"source":378,"target":837},{"source":837,"target":804},{"source":413,"target":13},{"source":413,"target":804},{"source":413,"target":838},{"source":838,"target":804},{"source":448,"target":13},{"source":448,"target":804},{"source":448,"target":839},{"source":839,"target":804},{"source":427,"target":13},{"source":427,"target":804},{"source":427,"target":840},{"source":840,"target":804},{"source":434,"target":13},{"source":434,"target":804},{"source":434,"target":841},{"source":841,"target":804},{"source":454,"target":13},{"source":454,"target":804},{"source":454,"target":842},{"source":842,"target":804},{"source":462,"target":13},{"source":462,"target":804},{"source":462,"target":843},{"source":843,"target":804},{"source":805,"target":13},{"source":805,"target":378},{"source":805,"target":844},{"source":844,"target":378},{"source":806,"target":13},{"source":806,"target":378},{"source":806,"target":845},{"source":845,"target":378},{"source":807,"target":13},{"source":807,"target":378},{"source":807,"target":846},{"source":846,"target":378},{"source":808,"target":13},{"source":808,"target":378},{"source":808,"target":847},{"source":847,"target":378},{"source":809,"target":13},{"source":809,"target":378},{"source":809,"target":848},{"source":848,"target":378},{"source":810,"target":13},{"source":810,"target":378},{"source":810,"target":849},{"source":849,"target":378},{"source":811,"target":13},{"source":811,"target":378},{"source":811,"target":850},{"source":850,"target":378},{"source":812,"target":13},{"source":812,"target":378},{"source":812,"target":851},{"source":851,"target":378},{"source":813,"target":13},{"source":813,"target":378},{"source":813,"target":852},{"source":852,"target":378},{"source":814,"target":13},{"source":814,"target":378},{"source":814,"target":853},{"source":853,"target":378},{"source":815,"target":13},{"source":815,"target":378},{"source":815,"target":854},{"source":854,"target":378},{"source":816,"target":13},{"source":816,"target":378},{"source":816,"target":855},{"source":855,"target":378},{"source":817,"target":13},{"source":817,"target":413},{"source":817,"target":856},{"source":856,"target":413},{"source":818,"target":13},{"source":818,"target":413},{"source":818,"target":857},{"source":857,"target":413},{"source":819,"target":13},{"source":819,"target":427},{"source":819,"target":858},{"source":858,"target":427},{"source":820,"target":13},{"source":820,"target":427},{"source":820,"target":859},{"source":859,"target":427},{"source":821,"target":13},{"source":821,"target":427},{"source":821,"target":860},{"source":860,"target":427},{"source":822,"target":13},{"source":822,"target":427},{"source":822,"target":861},{"source":861,"target":427},{"source":823,"target":13},{"source":823,"target":441},{"source":823,"target":454},{"source":823,"target":862},{"source":823,"target":863},{"source":862,"target":441},{"source":863,"target":454},{"source":824,"target":13},{"source":824,"target":441},{"source":824,"target":454},{"source":824,"target":864},{"source":824,"target":865},{"source":864,"target":441},{"source":865,"target":454},{"source":825,"target":13},{"source":825,"target":448},{"source":825,"target":866},{"source":866,"target":448},{"source":826,"target":13},{"source":826,"target":448},{"source":826,"target":867},{"source":867,"target":448},{"source":827,"target":13},{"source":827,"target":448},{"source":827,"target":868},{"source":868,"target":448},{"source":828,"target":13},{"source":828,"target":454},{"source":828,"target":869},{"source":869,"target":454},{"source":829,"target":13},{"source":829,"target":462},{"source":829,"target":870},{"source":870,"target":462},{"source":830,"target":13},{"source":830,"target":454},{"source":830,"target":871},{"source":871,"target":454},{"source":831,"target":13},{"source":831,"target":462},{"source":831,"target":872},{"source":872,"target":462},{"source":832,"target":13},{"source":832,"target":434},{"source":832,"target":873},{"source":873,"target":434},{"source":833,"target":13},{"source":833,"target":434},{"source":833,"target":874},{"source":874,"target":434},{"source":834,"target":13},{"source":834,"target":434},{"source":834,"target":875},{"source":875,"target":434},{"source":14,"target":876},{"source":14,"target":692},{"source":14,"target":877},{"source":14,"target":878},{"source":14,"target":0},{"source":876,"target":14},{"source":876,"target":700},{"source":876,"target":118},{"source":876,"target":879},{"source":876,"target":880},{"source":879,"target":700},{"source":880,"target":118},{"source":692,"target":14},{"source":692,"target":27},{"source":692,"target":881},{"source":692,"target":882},{"source":881,"target":876},{"source":881,"target":883},{"source":881,"target":692},{"source":883,"target":876},{"source":882,"target":27},{"source":877,"target":14},{"source":877,"target":876},{"source":877,"target":884},{"source":884,"target":876},{"source":878,"target":14},{"source":878,"target":876},{"source":878,"target":885},{"source":885,"target":876},{"source":15,"target":31},{"source":15,"target":557},{"source":15,"target":109},{"source":15,"target":886},{"source":15,"target":887},{"source":15,"target":723},{"source":15,"target":888},{"source":15,"target":889},{"source":15,"target":890},{"source":15,"target":891},{"source":15,"target":892},{"source":15,"target":0},{"source":31,"target":15},{"source":31,"target":355},{"source":31,"target":477},{"source":31,"target":893},{"source":31,"target":894},{"source":31,"target":895},{"source":31,"target":896},{"source":31,"target":897},{"source":31,"target":898},{"source":893,"target":108},{"source":893,"target":899},{"source":893,"target":31},{"source":899,"target":108},{"source":894,"target":31},{"source":894,"target":900},{"source":894,"target":31},{"source":900,"target":31},{"source":895,"target":31},{"source":895,"target":901},{"source":895,"target":31},{"source":901,"target":31},{"source":896,"target":69},{"source":896,"target":902},{"source":896,"target":31},{"source":902,"target":69},{"source":897,"target":355},{"source":898,"target":477},{"source":557,"target":15},{"source":557,"target":27},{"source":557,"target":903},{"source":557,"target":904},{"source":557,"target":905},{"source":903,"target":108},{"source":903,"target":906},{"source":903,"target":557},{"source":906,"target":108},{"source":904,"target":58},{"source":904,"target":907},{"source":904,"target":557},{"source":907,"target":58},{"source":905,"target":27},{"source":109,"target":15},{"source":109,"target":184},{"source":109,"target":908},{"source":908,"target":184},{"source":886,"target":15},{"source":886,"target":31},{"source":886,"target":909},{"source":886,"target":910},{"source":909,"target":109},{"source":909,"target":911},{"source":909,"target":886},{"source":911,"target":109},{"source":910,"target":31},{"source":887,"target":15},{"source":887,"target":886},{"source":887,"target":912},{"source":912,"target":886},{"source":723,"target":15},{"source":723,"target":886},{"source":723,"target":557},{"source":723,"target":478},{"source":723,"target":913},{"source":723,"target":914},{"source":723,"target":915},{"source":913,"target":886},{"source":914,"target":557},{"source":915,"target":478},{"source":888,"target":15},{"source":888,"target":31},{"source":888,"target":916},{"source":916,"target":31},{"source":889,"target":15},{"source":889,"target":31},{"source":889,"target":917},{"source":889,"target":918},{"source":917,"target":149},{"source":917,"target":919},{"source":917,"target":889},{"source":919,"target":149},{"source":918,"target":31},{"source":890,"target":15},{"source":890,"target":31},{"source":890,"target":920},{"source":890,"target":921},{"source":920,"target":922},{"source":920,"target":890},{"source":921,"target":31},{"source":891,"target":15},{"source":891,"target":31},{"source":891,"target":923},{"source":891,"target":924},{"source":923,"target":567},{"source":923,"target":925},{"source":923,"target":891},{"source":925,"target":567},{"source":924,"target":31},{"source":892,"target":15},{"source":892,"target":109},{"source":892,"target":926},{"source":892,"target":927},{"source":926,"target":892},{"source":926,"target":928},{"source":926,"target":892},{"source":928,"target":892},{"source":927,"target":109},{"source":16,"target":929},{"source":16,"target":691},{"source":16,"target":930},{"source":16,"target":357},{"source":16,"target":117},{"source":16,"target":931},{"source":16,"target":932},{"source":16,"target":933},{"source":16,"target":934},{"source":16,"target":935},{"source":16,"target":936},{"source":16,"target":937},{"source":16,"target":938},{"source":16,"target":939},{"source":16,"target":940},{"source":16,"target":941},{"source":16,"target":942},{"source":16,"target":943},{"source":16,"target":944},{"source":16,"target":945},{"source":16,"target":946},{"source":16,"target":947},{"source":16,"target":948},{"source":16,"target":949},{"source":16,"target":950},{"source":16,"target":951},{"source":16,"target":952},{"source":16,"target":953},{"source":16,"target":0},{"source":929,"target":16},{"source":929,"target":27},{"source":929,"target":954},{"source":929,"target":955},{"source":954,"target":117},{"source":954,"target":956},{"source":954,"target":929},{"source":956,"target":117},{"source":955,"target":27},{"source":691,"target":16},{"source":691,"target":27},{"source":691,"target":957},{"source":691,"target":958},{"source":691,"target":959},{"source":957,"target":960},{"source":957,"target":961},{"source":957,"target":691},{"source":957,"target":962},{"source":961,"target":960},{"source":962,"target":963},{"source":962,"target":957},{"source":958,"target":117},{"source":958,"target":964},{"source":958,"target":691},{"source":964,"target":117},{"source":959,"target":27},{"source":930,"target":16},{"source":930,"target":27},{"source":930,"target":965},{"source":930,"target":966},{"source":965,"target":58},{"source":965,"target":967},{"source":965,"target":930},{"source":967,"target":58},{"source":966,"target":27},{"source":357,"target":16},{"source":357,"target":27},{"source":357,"target":968},{"source":968,"target":27},{"source":117,"target":16},{"source":117,"target":27},{"source":117,"target":969},{"source":969,"target":27},{"source":931,"target":16},{"source":931,"target":691},{"source":931,"target":970},{"source":970,"target":691},{"source":932,"target":16},{"source":932,"target":117},{"source":932,"target":930},{"source":932,"target":971},{"source":932,"target":972},{"source":932,"target":973},{"source":971,"target":58},{"source":971,"target":974},{"source":971,"target":932},{"source":974,"target":58},{"source":972,"target":117},{"source":973,"target":930},{"source":933,"target":16},{"source":933,"target":944},{"source":933,"target":975},{"source":975,"target":944},{"source":934,"target":16},{"source":934,"target":116},{"source":934,"target":117},{"source":934,"target":691},{"source":934,"target":744},{"source":934,"target":976},{"source":934,"target":977},{"source":934,"target":978},{"source":934,"target":979},{"source":976,"target":116},{"source":977,"target":117},{"source":978,"target":691},{"source":979,"target":744},{"source":935,"target":16},{"source":935,"target":691},{"source":935,"target":980},{"source":935,"target":981},{"source":980,"target":877},{"source":980,"target":982},{"source":980,"target":935},{"source":982,"target":877},{"source":981,"target":691},{"source":936,"target":16},{"source":936,"target":117},{"source":936,"target":929},{"source":936,"target":930},{"source":936,"target":983},{"source":936,"target":984},{"source":936,"target":985},{"source":936,"target":986},{"source":983,"target":117},{"source":983,"target":987},{"source":983,"target":936},{"source":987,"target":117},{"source":984,"target":117},{"source":985,"target":929},{"source":986,"target":930},{"source":937,"target":16},{"source":937,"target":944},{"source":937,"target":988},{"source":988,"target":944},{"source":938,"target":16},{"source":938,"target":931},{"source":938,"target":989},{"source":989,"target":931},{"source":939,"target":16},{"source":939,"target":953},{"source":939,"target":990},{"source":990,"target":953},{"source":940,"target":16},{"source":940,"target":117},{"source":940,"target":991},{"source":991,"target":117},{"source":941,"target":16},{"source":941,"target":117},{"source":941,"target":992},{"source":941,"target":993},{"source":992,"target":58},{"source":992,"target":994},{"source":992,"target":941},{"source":994,"target":58},{"source":993,"target":117},{"source":942,"target":16},{"source":942,"target":117},{"source":942,"target":929},{"source":942,"target":930},{"source":942,"target":995},{"source":942,"target":996},{"source":942,"target":997},{"source":942,"target":998},{"source":942,"target":999},{"source":995,"target":357},{"source":995,"target":1000},{"source":995,"target":942},{"source":1000,"target":357},{"source":996,"target":58},{"source":996,"target":1001},{"source":996,"target":942},{"source":1001,"target":58},{"source":997,"target":117},{"source":998,"target":929},{"source":999,"target":930},{"source":943,"target":16},{"source":943,"target":117},{"source":943,"target":929},{"source":943,"target":1002},{"source":943,"target":1003},{"source":943,"target":1004},{"source":943,"target":1005},{"source":1002,"target":877},{"source":1002,"target":1006},{"source":1002,"target":943},{"source":1006,"target":877},{"source":1003,"target":58},{"source":1003,"target":1007},{"source":1003,"target":943},{"source":1007,"target":58},{"source":1004,"target":117},{"source":1005,"target":929},{"source":944,"target":16},{"source":944,"target":117},{"source":944,"target":1008},{"source":944,"target":1009},{"source":1008,"target":945},{"source":1008,"target":1010},{"source":1008,"target":944},{"source":1010,"target":945},{"source":1009,"target":117},{"source":945,"target":16},{"source":945,"target":117},{"source":945,"target":929},{"source":945,"target":184},{"source":945,"target":1011},{"source":945,"target":1012},{"source":945,"target":1013},{"source":1011,"target":117},{"source":1012,"target":929},{"source":1013,"target":184},{"source":946,"target":16},{"source":946,"target":117},{"source":946,"target":1014},{"source":946,"target":1015},{"source":1014,"target":960},{"source":1014,"target":1016},{"source":1014,"target":946},{"source":1016,"target":960},{"source":1015,"target":117},{"source":947,"target":16},{"source":947,"target":931},{"source":947,"target":930},{"source":947,"target":1017},{"source":947,"target":1018},{"source":1017,"target":931},{"source":1018,"target":930},{"source":948,"target":16},{"source":948,"target":117},{"source":948,"target":1019},{"source":948,"target":1020},{"source":1019,"target":58},{"source":1019,"target":1021},{"source":1019,"target":948},{"source":1021,"target":58},{"source":1020,"target":117},{"source":949,"target":16},{"source":949,"target":117},{"source":949,"target":1022},{"source":949,"target":1023},{"source":949,"target":1024},{"source":1022,"target":931},{"source":1022,"target":1025},{"source":1022,"target":949},{"source":1025,"target":931},{"source":1023,"target":58},{"source":1023,"target":1026},{"source":1023,"target":949},{"source":1026,"target":58},{"source":1024,"target":117},{"source":950,"target":16},{"source":950,"target":117},{"source":950,"target":691},{"source":950,"target":1027},{"source":950,"target":1028},{"source":950,"target":1029},{"source":1027,"target":58},{"source":1027,"target":1030},{"source":1027,"target":950},{"source":1030,"target":58},{"source":1028,"target":117},{"source":1029,"target":691},{"source":951,"target":16},{"source":951,"target":117},{"source":951,"target":1031},{"source":951,"target":1032},{"source":1031,"target":58},{"source":1031,"target":1033},{"source":1031,"target":951},{"source":1033,"target":58},{"source":1032,"target":117},{"source":952,"target":16},{"source":952,"target":117},{"source":952,"target":691},{"source":952,"target":1034},{"source":952,"target":1035},{"source":952,"target":1036},{"source":952,"target":1037},{"source":1034,"target":935},{"source":1034,"target":1038},{"source":1034,"target":952},{"source":1038,"target":935},{"source":1035,"target":934},{"source":1035,"target":1039},{"source":1035,"target":952},{"source":1039,"target":934},{"source":1036,"target":117},{"source":1037,"target":691},{"source":953,"target":16},{"source":953,"target":117},{"source":953,"target":929},{"source":953,"target":1040},{"source":953,"target":1041},{"source":953,"target":1042},{"source":1040,"target":58},{"source":1040,"target":1043},{"source":1040,"target":953},{"source":1043,"target":58},{"source":1041,"target":117},{"source":1042,"target":929},{"source":17,"target":108},{"source":17,"target":85},{"source":17,"target":138},{"source":17,"target":131},{"source":17,"target":647},{"source":17,"target":149},{"source":17,"target":1044},{"source":17,"target":1045},{"source":17,"target":1046},{"source":17,"target":1047},{"source":17,"target":1048},{"source":17,"target":1049},{"source":17,"target":1050},{"source":17,"target":1051},{"source":17,"target":1052},{"source":17,"target":0},{"source":108,"target":17},{"source":108,"target":27},{"source":108,"target":1053},{"source":108,"target":1054},{"source":108,"target":1055},{"source":108,"target":1056},{"source":1053,"target":1057},{"source":1053,"target":108},{"source":1053,"target":1058},{"source":1053,"target":1059},{"source":1053,"target":1060},{"source":1058,"target":1061},{"source":1058,"target":1053},{"source":1059,"target":108},{"source":1059,"target":1062},{"source":1059,"target":1053},{"source":1062,"target":108},{"source":1060,"target":1063},{"source":1060,"target":1053},{"source":1054,"target":1064},{"source":1054,"target":108},{"source":1054,"target":1065},{"source":1054,"target":1066},{"source":1054,"target":1067},{"source":1065,"target":1068},{"source":1065,"target":1054},{"source":1066,"target":108},{"source":1066,"target":1069},{"source":1066,"target":1054},{"source":1069,"target":108},{"source":1067,"target":60},{"source":1067,"target":1070},{"source":1067,"target":1054},{"source":1070,"target":60},{"source":1055,"target":116},{"source":1055,"target":1071},{"source":1055,"target":108},{"source":1055,"target":1072},{"source":1071,"target":116},{"source":1072,"target":27},{"source":1072,"target":1073},{"source":1072,"target":1055},{"source":1073,"target":27},{"source":1056,"target":27},{"source":85,"target":17},{"source":85,"target":27},{"source":85,"target":1074},{"source":85,"target":1075},{"source":1074,"target":138},{"source":1074,"target":1076},{"source":1074,"target":85},{"source":1076,"target":138},{"source":1075,"target":27},{"source":138,"target":17},{"source":138,"target":27},{"source":138,"target":1077},{"source":138,"target":1078},{"source":138,"target":1079},{"source":138,"target":1080},{"source":138,"target":1081},{"source":1077,"target":108},{"source":1077,"target":1082},{"source":1077,"target":138},{"source":1082,"target":108},{"source":1078,"target":138},{"source":1078,"target":1083},{"source":1083,"target":39},{"source":1083,"target":1084},{"source":1083,"target":1078},{"source":1084,"target":39},{"source":1079,"target":108},{"source":1079,"target":1085},{"source":1079,"target":138},{"source":1079,"target":1086},{"source":1085,"target":108},{"source":1086,"target":31},{"source":1086,"target":1087},{"source":1086,"target":1079},{"source":1087,"target":31},{"source":1080,"target":131},{"source":1080,"target":1088},{"source":1080,"target":138},{"source":1088,"target":131},{"source":1081,"target":27},{"source":131,"target":17},{"source":131,"target":138},{"source":131,"target":477},{"source":131,"target":1089},{"source":131,"target":1090},{"source":131,"target":1091},{"source":1089,"target":39},{"source":1089,"target":1092},{"source":1089,"target":131},{"source":1092,"target":39},{"source":1090,"target":138},{"source":1091,"target":477},{"source":647,"target":17},{"source":647,"target":138},{"source":647,"target":33},{"source":647,"target":1093},{"source":647,"target":1094},{"source":647,"target":1095},{"source":1093,"target":131},{"source":1093,"target":1096},{"source":1093,"target":647},{"source":1096,"target":131},{"source":1094,"target":138},{"source":1095,"target":33},{"source":149,"target":17},{"source":149,"target":108},{"source":149,"target":138},{"source":149,"target":1097},{"source":149,"target":1098},{"source":149,"target":1099},{"source":149,"target":1100},{"source":1097,"target":116},{"source":1097,"target":1101},{"source":1097,"target":149},{"source":1097,"target":1102},{"source":1101,"target":116},{"source":1102,"target":27},{"source":1102,"target":1103},{"source":1102,"target":1097},{"source":1103,"target":27},{"source":1098,"target":103},{"source":1098,"target":1104},{"source":1098,"target":149},{"source":1104,"target":103},{"source":1099,"target":108},{"source":1100,"target":138},{"source":1044,"target":17},{"source":1044,"target":149},{"source":1044,"target":1105},{"source":1105,"target":149},{"source":1045,"target":17},{"source":1045,"target":149},{"source":1045,"target":1106},{"source":1106,"target":149},{"source":1046,"target":17},{"source":1046,"target":149},{"source":1046,"target":1107},{"source":1107,"target":149},{"source":1047,"target":17},{"source":1047,"target":149},{"source":1047,"target":1108},{"source":1108,"target":149},{"source":1048,"target":17},{"source":1048,"target":149},{"source":1048,"target":1109},{"source":1109,"target":149},{"source":1049,"target":17},{"source":1049,"target":149},{"source":1049,"target":1110},{"source":1110,"target":149},{"source":1050,"target":17},{"source":1050,"target":149},{"source":1050,"target":1111},{"source":1111,"target":149},{"source":1051,"target":17},{"source":1051,"target":149},{"source":1051,"target":1112},{"source":1112,"target":149},{"source":1052,"target":17},{"source":1052,"target":149},{"source":1052,"target":1113},{"source":1113,"target":149},{"source":18,"target":700},{"source":18,"target":960},{"source":18,"target":1114},{"source":18,"target":0},{"source":700,"target":18},{"source":700,"target":184},{"source":700,"target":85},{"source":700,"target":60},{"source":700,"target":109},{"source":700,"target":477},{"source":700,"target":1115},{"source":700,"target":1116},{"source":700,"target":1117},{"source":700,"target":1118},{"source":700,"target":1119},{"source":700,"target":1120},{"source":700,"target":1121},{"source":700,"target":1122},{"source":1115,"target":1123},{"source":1115,"target":700},{"source":1116,"target":117},{"source":1116,"target":1124},{"source":1116,"target":700},{"source":1116,"target":1125},{"source":1116,"target":1126},{"source":1124,"target":117},{"source":1125,"target":1127},{"source":1125,"target":1116},{"source":1126,"target":58},{"source":1126,"target":1128},{"source":1126,"target":1116},{"source":1128,"target":58},{"source":1117,"target":58},{"source":1117,"target":1129},{"source":1117,"target":700},{"source":1117,"target":1130},{"source":1117,"target":1131},{"source":1129,"target":58},{"source":1130,"target":1132},{"source":1130,"target":1117},{"source":1131,"target":58},{"source":1131,"target":1133},{"source":1131,"target":1117},{"source":1133,"target":58},{"source":1118,"target":184},{"source":1119,"target":85},{"source":1120,"target":60},{"source":1121,"target":109},{"source":1122,"target":477},{"source":960,"target":18},{"source":960,"target":700},{"source":960,"target":550},{"source":960,"target":357},{"source":960,"target":118},{"source":960,"target":1134},{"source":960,"target":1135},{"source":960,"target":1136},{"source":960,"target":1137},{"source":960,"target":1138},{"source":1134,"target":1114},{"source":1134,"target":1139},{"source":1134,"target":960},{"source":1139,"target":1114},{"source":1135,"target":700},{"source":1136,"target":550},{"source":1137,"target":357},{"source":1138,"target":118},{"source":1114,"target":18},{"source":1114,"target":109},{"source":1114,"target":60},{"source":1114,"target":550},{"source":1114,"target":1140},{"source":1114,"target":1141},{"source":1114,"target":1142},{"source":1114,"target":1143},{"source":1140,"target":1144},{"source":1140,"target":1114},{"source":1141,"target":109},{"source":1142,"target":60},{"source":1143,"target":550}],"multigraph":true}