Switch to unified view

a b/eu.opensourceprojects.mondo.benchmarks.itmfactory/models/java.ecore
1
<?xml version="1.0" encoding="ISO-8859-1"?>
2
<ecore:EPackage xmi:version="2.0"
3
    xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="java"
5
    nsURI="http://www.eclipse.org/MoDisco/Java/0.2.incubation/java" nsPrefix="java">
6
  <eClassifiers xsi:type="ecore:EClass" name="AbstractMethodDeclaration" abstract="true"
7
      eSuperTypes="#//BodyDeclaration">
8
    <eStructuralFeatures xsi:type="ecore:EReference" name="body" ordered="false" eType="#//Block"
9
        containment="true"/>
10
    <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
11
        eType="#//SingleVariableDeclaration" containment="true" eOpposite="#//SingleVariableDeclaration/methodDeclaration"/>
12
    <eStructuralFeatures xsi:type="ecore:EReference" name="thrownExceptions" upperBound="-1"
13
        eType="#//TypeAccess" containment="true"/>
14
    <eStructuralFeatures xsi:type="ecore:EReference" name="typeParameters" upperBound="-1"
15
        eType="#//TypeParameter" containment="true"/>
16
    <eStructuralFeatures xsi:type="ecore:EReference" name="usagesInDocComments" ordered="false"
17
        upperBound="-1" eType="#//MethodRef" eOpposite="#//MethodRef/method"/>
18
    <eStructuralFeatures xsi:type="ecore:EReference" name="usages" ordered="false"
19
        upperBound="-1" eType="#//AbstractMethodInvocation" eOpposite="#//AbstractMethodInvocation/method"/>
20
  </eClassifiers>
21
  <eClassifiers xsi:type="ecore:EClass" name="AbstractMethodInvocation" abstract="true"
22
      eSuperTypes="#//ASTNode">
23
    <eStructuralFeatures xsi:type="ecore:EReference" name="method" ordered="false"
24
        lowerBound="1" eType="#//AbstractMethodDeclaration" eOpposite="#//AbstractMethodDeclaration/usages"/>
25
    <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1"
26
        eType="#//Expression" containment="true"/>
27
    <eStructuralFeatures xsi:type="ecore:EReference" name="typeArguments" upperBound="-1"
28
        eType="#//TypeAccess" containment="true"/>
29
  </eClassifiers>
30
  <eClassifiers xsi:type="ecore:EClass" name="AbstractTypeDeclaration" abstract="true"
31
      eSuperTypes="#//BodyDeclaration #//Type">
32
    <eStructuralFeatures xsi:type="ecore:EReference" name="bodyDeclarations" upperBound="-1"
33
        eType="#//BodyDeclaration" containment="true" eOpposite="#//BodyDeclaration/abstractTypeDeclaration"/>
34
    <eStructuralFeatures xsi:type="ecore:EReference" name="commentsBeforeBody" upperBound="-1"
35
        eType="#//Comment" containment="true"/>
36
    <eStructuralFeatures xsi:type="ecore:EReference" name="commentsAfterBody" upperBound="-1"
37
        eType="#//Comment" containment="true"/>
38
    <eStructuralFeatures xsi:type="ecore:EReference" name="package" ordered="false"
39
        eType="#//Package" eOpposite="#//Package/ownedElements"/>
40
    <eStructuralFeatures xsi:type="ecore:EReference" name="superInterfaces" upperBound="-1"
41
        eType="#//TypeAccess" containment="true"/>
42
  </eClassifiers>
43
  <eClassifiers xsi:type="ecore:EClass" name="AbstractTypeQualifiedExpression" abstract="true"
44
      eSuperTypes="#//Expression">
45
    <eStructuralFeatures xsi:type="ecore:EReference" name="qualifier" ordered="false"
46
        eType="#//TypeAccess" containment="true"/>
47
  </eClassifiers>
48
  <eClassifiers xsi:type="ecore:EClass" name="AbstractVariablesContainer" abstract="true"
49
      eSuperTypes="#//ASTNode">
50
    <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//TypeAccess"
51
        containment="true"/>
52
    <eStructuralFeatures xsi:type="ecore:EReference" name="fragments" upperBound="-1"
53
        eType="#//VariableDeclarationFragment" containment="true" eOpposite="#//VariableDeclarationFragment/variablesContainer"/>
54
  </eClassifiers>
55
  <eClassifiers xsi:type="ecore:EClass" name="Annotation" eSuperTypes="#//Expression">
56
    <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" lowerBound="1"
57
        eType="#//TypeAccess" containment="true"/>
58
    <eStructuralFeatures xsi:type="ecore:EReference" name="values" upperBound="-1"
59
        eType="#//AnnotationMemberValuePair" containment="true"/>
60
  </eClassifiers>
61
  <eClassifiers xsi:type="ecore:EClass" name="Archive" eSuperTypes="#//NamedElement">
62
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="originalFilePath" ordered="false"
63
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
64
    <eStructuralFeatures xsi:type="ecore:EReference" name="classFiles" ordered="false"
65
        upperBound="-1" eType="#//ClassFile" containment="true"/>
66
    <eStructuralFeatures xsi:type="ecore:EReference" name="manifest" ordered="false"
67
        eType="#//Manifest" containment="true"/>
68
  </eClassifiers>
69
  <eClassifiers xsi:type="ecore:EClass" name="AssertStatement" eSuperTypes="#//Statement">
70
    <eStructuralFeatures xsi:type="ecore:EReference" name="message" ordered="false"
71
        eType="#//Expression" containment="true"/>
72
    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" ordered="false"
73
        lowerBound="1" eType="#//Expression" containment="true"/>
74
  </eClassifiers>
75
  <eClassifiers xsi:type="ecore:EClass" name="ASTNode" abstract="true">
76
    <eStructuralFeatures xsi:type="ecore:EReference" name="comments" upperBound="-1"
77
        eType="#//Comment" containment="true"/>
78
    <eStructuralFeatures xsi:type="ecore:EReference" name="originalCompilationUnit"
79
        ordered="false" eType="#//CompilationUnit"/>
80
    <eStructuralFeatures xsi:type="ecore:EReference" name="originalClassFile" ordered="false"
81
        eType="#//ClassFile"/>
82
  </eClassifiers>
83
  <eClassifiers xsi:type="ecore:EClass" name="AnnotationMemberValuePair" eSuperTypes="#//NamedElement">
84
    <eStructuralFeatures xsi:type="ecore:EReference" name="member" ordered="false"
85
        eType="#//AnnotationTypeMemberDeclaration" eOpposite="#//AnnotationTypeMemberDeclaration/usages"/>
86
    <eStructuralFeatures xsi:type="ecore:EReference" name="value" ordered="false"
87
        lowerBound="1" eType="#//Expression" containment="true"/>
88
  </eClassifiers>
89
  <eClassifiers xsi:type="ecore:EClass" name="AnnotationTypeDeclaration" eSuperTypes="#//AbstractTypeDeclaration"/>
90
  <eClassifiers xsi:type="ecore:EClass" name="AnnotationTypeMemberDeclaration" eSuperTypes="#//BodyDeclaration">
91
    <eStructuralFeatures xsi:type="ecore:EReference" name="default" ordered="false"
92
        eType="#//Expression" containment="true"/>
93
    <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" lowerBound="1"
94
        eType="#//TypeAccess" containment="true"/>
95
    <eStructuralFeatures xsi:type="ecore:EReference" name="usages" ordered="false"
96
        upperBound="-1" eType="#//AnnotationMemberValuePair" eOpposite="#//AnnotationMemberValuePair/member"/>
97
  </eClassifiers>
98
  <eClassifiers xsi:type="ecore:EClass" name="AnonymousClassDeclaration" eSuperTypes="#//ASTNode">
99
    <eStructuralFeatures xsi:type="ecore:EReference" name="bodyDeclarations" upperBound="-1"
100
        eType="#//BodyDeclaration" containment="true" eOpposite="#//BodyDeclaration/anonymousClassDeclarationOwner"/>
101
    <eStructuralFeatures xsi:type="ecore:EReference" name="classInstanceCreation"
102
        ordered="false" eType="#//ClassInstanceCreation" eOpposite="#//ClassInstanceCreation/anonymousClassDeclaration"/>
103
  </eClassifiers>
104
  <eClassifiers xsi:type="ecore:EClass" name="ArrayAccess" eSuperTypes="#//Expression">
105
    <eStructuralFeatures xsi:type="ecore:EReference" name="array" ordered="false"
106
        lowerBound="1" eType="#//Expression" containment="true"/>
107
    <eStructuralFeatures xsi:type="ecore:EReference" name="index" ordered="false"
108
        lowerBound="1" eType="#//Expression" containment="true"/>
109
  </eClassifiers>
110
  <eClassifiers xsi:type="ecore:EClass" name="ArrayCreation" eSuperTypes="#//Expression">
111
    <eStructuralFeatures xsi:type="ecore:EReference" name="dimensions" upperBound="-1"
112
        eType="#//Expression" containment="true"/>
113
    <eStructuralFeatures xsi:type="ecore:EReference" name="initializer" ordered="false"
114
        eType="#//ArrayInitializer" containment="true"/>
115
    <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" lowerBound="1"
116
        eType="#//TypeAccess" containment="true"/>
117
  </eClassifiers>
118
  <eClassifiers xsi:type="ecore:EClass" name="ArrayInitializer" eSuperTypes="#//Expression">
119
    <eStructuralFeatures xsi:type="ecore:EReference" name="expressions" upperBound="-1"
120
        eType="#//Expression" containment="true"/>
121
  </eClassifiers>
122
  <eClassifiers xsi:type="ecore:EClass" name="ArrayLengthAccess" eSuperTypes="#//Expression">
123
    <eStructuralFeatures xsi:type="ecore:EReference" name="array" ordered="false"
124
        lowerBound="1" eType="#//Expression" containment="true"/>
125
  </eClassifiers>
126
  <eClassifiers xsi:type="ecore:EClass" name="ArrayType" eSuperTypes="#//Type">
127
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="dimensions" ordered="false"
128
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
129
    <eStructuralFeatures xsi:type="ecore:EReference" name="elementType" ordered="false"
130
        lowerBound="1" eType="#//TypeAccess" containment="true"/>
131
  </eClassifiers>
132
  <eClassifiers xsi:type="ecore:EClass" name="Assignment" eSuperTypes="#//Expression">
133
    <eStructuralFeatures xsi:type="ecore:EReference" name="leftHandSide" ordered="false"
134
        lowerBound="1" eType="#//Expression" containment="true"/>
135
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="operator" ordered="false"
136
        unique="false" lowerBound="1" eType="#//AssignmentKind"/>
137
    <eStructuralFeatures xsi:type="ecore:EReference" name="rightHandSide" ordered="false"
138
        lowerBound="1" eType="#//Expression" containment="true"/>
139
  </eClassifiers>
140
  <eClassifiers xsi:type="ecore:EEnum" name="AssignmentKind">
141
    <eLiterals name="ASSIGN" value="1" literal="="/>
142
    <eLiterals name="PLUS_ASSIGN" value="2" literal="+="/>
143
    <eLiterals name="MINUS_ASSIGN" value="3" literal="-="/>
144
    <eLiterals name="TIMES_ASSIGN" value="4" literal="*="/>
145
    <eLiterals name="DIVIDE_ASSIGN" value="5" literal="/="/>
146
    <eLiterals name="BIT_AND_ASSIGN" value="6" literal="&amp;="/>
147
    <eLiterals name="BIT_OR_ASSIGN" value="7" literal="|="/>
148
    <eLiterals name="BIT_XOR_ASSIGN" value="8" literal="^="/>
149
    <eLiterals name="REMAINDER_ASSIGN" value="9" literal="%="/>
150
    <eLiterals name="LEFT_SHIFT_ASSIGN" value="10" literal="&lt;&lt;="/>
151
    <eLiterals name="RIGHT_SHIFT_SIGNED_ASSIGN" value="11" literal=">>="/>
152
    <eLiterals name="RIGHT_SHIFT_UNSIGNED_ASSIGN" value="12" literal=">>>="/>
153
  </eClassifiers>
154
  <eClassifiers xsi:type="ecore:EClass" name="BodyDeclaration" abstract="true" eSuperTypes="#//NamedElement">
155
    <eStructuralFeatures xsi:type="ecore:EReference" name="abstractTypeDeclaration"
156
        ordered="false" eType="#//AbstractTypeDeclaration" eOpposite="#//AbstractTypeDeclaration/bodyDeclarations"/>
157
    <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1"
158
        eType="#//Annotation" containment="true"/>
159
    <eStructuralFeatures xsi:type="ecore:EReference" name="anonymousClassDeclarationOwner"
160
        ordered="false" eType="#//AnonymousClassDeclaration" eOpposite="#//AnonymousClassDeclaration/bodyDeclarations"/>
161
    <eStructuralFeatures xsi:type="ecore:EReference" name="modifier" ordered="false"
162
        eType="#//Modifier" containment="true" eOpposite="#//Modifier/bodyDeclaration"/>
163
  </eClassifiers>
164
  <eClassifiers xsi:type="ecore:EClass" name="BooleanLiteral" eSuperTypes="#//Expression">
165
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
166
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
167
  </eClassifiers>
168
  <eClassifiers xsi:type="ecore:EClass" name="BlockComment" eSuperTypes="#//Comment"/>
169
  <eClassifiers xsi:type="ecore:EClass" name="Block" eSuperTypes="#//Statement">
170
    <eStructuralFeatures xsi:type="ecore:EReference" name="statements" upperBound="-1"
171
        eType="#//Statement" containment="true"/>
172
  </eClassifiers>
173
  <eClassifiers xsi:type="ecore:EClass" name="BreakStatement" eSuperTypes="#//Statement">
174
    <eStructuralFeatures xsi:type="ecore:EReference" name="label" ordered="false"
175
        eType="#//LabeledStatement" eOpposite="#//LabeledStatement/usagesInBreakStatements"/>
176
  </eClassifiers>
177
  <eClassifiers xsi:type="ecore:EClass" name="CastExpression" eSuperTypes="#//Expression">
178
    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" ordered="false"
179
        lowerBound="1" eType="#//Expression" containment="true"/>
180
    <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" lowerBound="1"
181
        eType="#//TypeAccess" containment="true"/>
182
  </eClassifiers>
183
  <eClassifiers xsi:type="ecore:EClass" name="CatchClause" eSuperTypes="#//Statement">
184
    <eStructuralFeatures xsi:type="ecore:EReference" name="exception" ordered="false"
185
        lowerBound="1" eType="#//SingleVariableDeclaration" containment="true" eOpposite="#//SingleVariableDeclaration/catchClause"/>
186
    <eStructuralFeatures xsi:type="ecore:EReference" name="body" ordered="false" lowerBound="1"
187
        eType="#//Block" containment="true"/>
188
  </eClassifiers>
189
  <eClassifiers xsi:type="ecore:EClass" name="CharacterLiteral" eSuperTypes="#//Expression">
190
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="escapedValue" ordered="false"
191
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
192
  </eClassifiers>
193
  <eClassifiers xsi:type="ecore:EClass" name="ClassFile" eSuperTypes="#//NamedElement">
194
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="originalFilePath" ordered="false"
195
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
196
    <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" eType="#//AbstractTypeDeclaration"/>
197
    <eStructuralFeatures xsi:type="ecore:EReference" name="attachedSource" ordered="false"
198
        eType="#//CompilationUnit"/>
199
    <eStructuralFeatures xsi:type="ecore:EReference" name="package" ordered="false"
200
        eType="#//Package"/>
201
  </eClassifiers>
202
  <eClassifiers xsi:type="ecore:EClass" name="ClassInstanceCreation" eSuperTypes="#//Expression #//AbstractMethodInvocation">
203
    <eStructuralFeatures xsi:type="ecore:EReference" name="anonymousClassDeclaration"
204
        ordered="false" eType="#//AnonymousClassDeclaration" containment="true" eOpposite="#//AnonymousClassDeclaration/classInstanceCreation"/>
205
    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" ordered="false"
206
        eType="#//Expression" containment="true"/>
207
    <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" lowerBound="1"
208
        eType="#//TypeAccess" containment="true"/>
209
  </eClassifiers>
210
  <eClassifiers xsi:type="ecore:EClass" name="ConstructorDeclaration" eSuperTypes="#//AbstractMethodDeclaration"/>
211
  <eClassifiers xsi:type="ecore:EClass" name="ConditionalExpression" eSuperTypes="#//Expression">
212
    <eStructuralFeatures xsi:type="ecore:EReference" name="elseExpression" ordered="false"
213
        lowerBound="1" eType="#//Expression" containment="true"/>
214
    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" ordered="false"
215
        lowerBound="1" eType="#//Expression" containment="true"/>
216
    <eStructuralFeatures xsi:type="ecore:EReference" name="thenExpression" ordered="false"
217
        lowerBound="1" eType="#//Expression" containment="true"/>
218
  </eClassifiers>
219
  <eClassifiers xsi:type="ecore:EClass" name="ConstructorInvocation" eSuperTypes="#//Statement #//AbstractMethodInvocation"/>
220
  <eClassifiers xsi:type="ecore:EClass" name="ClassDeclaration" eSuperTypes="#//TypeDeclaration">
221
    <eStructuralFeatures xsi:type="ecore:EReference" name="superClass" ordered="false"
222
        eType="#//TypeAccess" containment="true"/>
223
  </eClassifiers>
224
  <eClassifiers xsi:type="ecore:EClass" name="Comment" abstract="true" eSuperTypes="#//ASTNode">
225
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="content" ordered="false"
226
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
227
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="enclosedByParent" ordered="false"
228
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
229
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="prefixOfParent" ordered="false"
230
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
231
  </eClassifiers>
232
  <eClassifiers xsi:type="ecore:EClass" name="CompilationUnit" eSuperTypes="#//NamedElement">
233
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="originalFilePath" ordered="false"
234
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
235
    <eStructuralFeatures xsi:type="ecore:EReference" name="commentList" upperBound="-1"
236
        eType="#//Comment"/>
237
    <eStructuralFeatures xsi:type="ecore:EReference" name="imports" upperBound="-1"
238
        eType="#//ImportDeclaration" containment="true"/>
239
    <eStructuralFeatures xsi:type="ecore:EReference" name="package" ordered="false"
240
        eType="#//Package"/>
241
    <eStructuralFeatures xsi:type="ecore:EReference" name="types" upperBound="-1"
242
        eType="#//AbstractTypeDeclaration"/>
243
  </eClassifiers>
244
  <eClassifiers xsi:type="ecore:EClass" name="ContinueStatement" eSuperTypes="#//Statement">
245
    <eStructuralFeatures xsi:type="ecore:EReference" name="label" ordered="false"
246
        eType="#//LabeledStatement" eOpposite="#//LabeledStatement/usagesInContinueStatements"/>
247
  </eClassifiers>
248
  <eClassifiers xsi:type="ecore:EClass" name="DoStatement" eSuperTypes="#//Statement">
249
    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" ordered="false"
250
        lowerBound="1" eType="#//Expression" containment="true"/>
251
    <eStructuralFeatures xsi:type="ecore:EReference" name="body" ordered="false" lowerBound="1"
252
        eType="#//Statement" containment="true"/>
253
  </eClassifiers>
254
  <eClassifiers xsi:type="ecore:EClass" name="EmptyStatement" eSuperTypes="#//Statement"/>
255
  <eClassifiers xsi:type="ecore:EClass" name="EnhancedForStatement" eSuperTypes="#//Statement">
256
    <eStructuralFeatures xsi:type="ecore:EReference" name="body" ordered="false" lowerBound="1"
257
        eType="#//Statement" containment="true"/>
258
    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" ordered="false"
259
        lowerBound="1" eType="#//Expression" containment="true"/>
260
    <eStructuralFeatures xsi:type="ecore:EReference" name="parameter" ordered="false"
261
        lowerBound="1" eType="#//SingleVariableDeclaration" containment="true" eOpposite="#//SingleVariableDeclaration/enhancedForStatement"/>
262
  </eClassifiers>
263
  <eClassifiers xsi:type="ecore:EClass" name="EnumConstantDeclaration" eSuperTypes="#//BodyDeclaration #//VariableDeclaration">
264
    <eStructuralFeatures xsi:type="ecore:EReference" name="anonymousClassDeclaration"
265
        ordered="false" eType="#//AnonymousClassDeclaration" containment="true"/>
266
    <eStructuralFeatures xsi:type="ecore:EReference" name="arguments" upperBound="-1"
267
        eType="#//Expression" containment="true"/>
268
  </eClassifiers>
269
  <eClassifiers xsi:type="ecore:EClass" name="EnumDeclaration" eSuperTypes="#//AbstractTypeDeclaration">
270
    <eStructuralFeatures xsi:type="ecore:EReference" name="enumConstants" upperBound="-1"
271
        eType="#//EnumConstantDeclaration" containment="true"/>
272
  </eClassifiers>
273
  <eClassifiers xsi:type="ecore:EClass" name="Expression" abstract="true" eSuperTypes="#//ASTNode"/>
274
  <eClassifiers xsi:type="ecore:EClass" name="ExpressionStatement" eSuperTypes="#//Statement">
275
    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" ordered="false"
276
        lowerBound="1" eType="#//Expression" containment="true"/>
277
  </eClassifiers>
278
  <eClassifiers xsi:type="ecore:EClass" name="FieldAccess" eSuperTypes="#//Expression">
279
    <eStructuralFeatures xsi:type="ecore:EReference" name="field" ordered="false"
280
        lowerBound="1" eType="#//SingleVariableAccess" containment="true"/>
281
    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" ordered="false"
282
        lowerBound="1" eType="#//Expression" containment="true"/>
283
  </eClassifiers>
284
  <eClassifiers xsi:type="ecore:EClass" name="FieldDeclaration" eSuperTypes="#//BodyDeclaration #//AbstractVariablesContainer"/>
285
  <eClassifiers xsi:type="ecore:EClass" name="ForStatement" eSuperTypes="#//Statement">
286
    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" ordered="false"
287
        eType="#//Expression" containment="true"/>
288
    <eStructuralFeatures xsi:type="ecore:EReference" name="updaters" upperBound="-1"
289
        eType="#//Expression" containment="true"/>
290
    <eStructuralFeatures xsi:type="ecore:EReference" name="initializers" upperBound="-1"
291
        eType="#//Expression" containment="true"/>
292
    <eStructuralFeatures xsi:type="ecore:EReference" name="body" ordered="false" lowerBound="1"
293
        eType="#//Statement" containment="true"/>
294
  </eClassifiers>
295
  <eClassifiers xsi:type="ecore:EClass" name="IfStatement" eSuperTypes="#//Statement">
296
    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" ordered="false"
297
        lowerBound="1" eType="#//Expression" containment="true"/>
298
    <eStructuralFeatures xsi:type="ecore:EReference" name="thenStatement" ordered="false"
299
        lowerBound="1" eType="#//Statement" containment="true"/>
300
    <eStructuralFeatures xsi:type="ecore:EReference" name="elseStatement" ordered="false"
301
        eType="#//Statement" containment="true"/>
302
  </eClassifiers>
303
  <eClassifiers xsi:type="ecore:EClass" name="ImportDeclaration" eSuperTypes="#//ASTNode">
304
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="static" ordered="false"
305
        unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
306
    <eStructuralFeatures xsi:type="ecore:EReference" name="importedElement" ordered="false"
307
        lowerBound="1" eType="#//NamedElement" eOpposite="#//NamedElement/usagesInImports"/>
308
  </eClassifiers>
309
  <eClassifiers xsi:type="ecore:EClass" name="InfixExpression" eSuperTypes="#//Expression">
310
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="operator" ordered="false"
311
        unique="false" lowerBound="1" eType="#//InfixExpressionKind"/>
312
    <eStructuralFeatures xsi:type="ecore:EReference" name="rightOperand" ordered="false"
313
        lowerBound="1" eType="#//Expression" containment="true"/>
314
    <eStructuralFeatures xsi:type="ecore:EReference" name="leftOperand" ordered="false"
315
        lowerBound="1" eType="#//Expression" containment="true"/>
316
    <eStructuralFeatures xsi:type="ecore:EReference" name="extendedOperands" upperBound="-1"
317
        eType="#//Expression" containment="true"/>
318
  </eClassifiers>
319
  <eClassifiers xsi:type="ecore:EEnum" name="InfixExpressionKind">
320
    <eLiterals name="TIMES" value="1" literal="*"/>
321
    <eLiterals name="DIVIDE" value="2" literal="/"/>
322
    <eLiterals name="REMAINDER" value="3" literal="%"/>
323
    <eLiterals name="PLUS" value="4" literal="+"/>
324
    <eLiterals name="MINUS" value="5" literal="-"/>
325
    <eLiterals name="LEFT_SHIFT" value="6" literal="&lt;&lt;"/>
326
    <eLiterals name="RIGHT_SHIFT_SIGNED" value="7" literal=">>"/>
327
    <eLiterals name="RIGHT_SHIFT_UNSIGNED" value="8" literal=">>>"/>
328
    <eLiterals name="LESS" value="9" literal="&lt;"/>
329
    <eLiterals name="GREATER" value="10" literal=">"/>
330
    <eLiterals name="LESS_EQUALS" value="11" literal="&lt;="/>
331
    <eLiterals name="GREATER_EQUALS" value="12" literal=">="/>
332
    <eLiterals name="EQUALS" value="13" literal="=="/>
333
    <eLiterals name="NOT_EQUALS" value="14" literal="!="/>
334
    <eLiterals name="XOR" value="15" literal="^"/>
335
    <eLiterals name="AND" value="16" literal="&amp;"/>
336
    <eLiterals name="OR" value="17" literal="|"/>
337
    <eLiterals name="CONDITIONAL_AND" value="18" literal="&amp;&amp;"/>
338
    <eLiterals name="CONDITIONAL_OR" value="19" literal="||"/>
339
  </eClassifiers>
340
  <eClassifiers xsi:type="ecore:EEnum" name="InheritanceKind">
341
    <eLiterals name="none" value="1"/>
342
    <eLiterals name="abstract" value="2"/>
343
    <eLiterals name="final" value="3"/>
344
  </eClassifiers>
345
  <eClassifiers xsi:type="ecore:EClass" name="Initializer" eSuperTypes="#//BodyDeclaration">
346
    <eStructuralFeatures xsi:type="ecore:EReference" name="body" ordered="false" lowerBound="1"
347
        eType="#//Block" containment="true"/>
348
  </eClassifiers>
349
  <eClassifiers xsi:type="ecore:EClass" name="InstanceofExpression" eSuperTypes="#//Expression">
350
    <eStructuralFeatures xsi:type="ecore:EReference" name="rightOperand" ordered="false"
351
        lowerBound="1" eType="#//TypeAccess" containment="true"/>
352
    <eStructuralFeatures xsi:type="ecore:EReference" name="leftOperand" ordered="false"
353
        lowerBound="1" eType="#//Expression" containment="true"/>
354
  </eClassifiers>
355
  <eClassifiers xsi:type="ecore:EClass" name="InterfaceDeclaration" eSuperTypes="#//TypeDeclaration"/>
356
  <eClassifiers xsi:type="ecore:EClass" name="Javadoc" eSuperTypes="#//Comment">
357
    <eStructuralFeatures xsi:type="ecore:EReference" name="tags" upperBound="-1" eType="#//TagElement"
358
        containment="true"/>
359
  </eClassifiers>
360
  <eClassifiers xsi:type="ecore:EClass" name="LabeledStatement" eSuperTypes="#//NamedElement #//Statement">
361
    <eStructuralFeatures xsi:type="ecore:EReference" name="body" ordered="false" lowerBound="1"
362
        eType="#//Statement" containment="true"/>
363
    <eStructuralFeatures xsi:type="ecore:EReference" name="usagesInBreakStatements"
364
        ordered="false" upperBound="-1" eType="#//BreakStatement" eOpposite="#//BreakStatement/label"/>
365
    <eStructuralFeatures xsi:type="ecore:EReference" name="usagesInContinueStatements"
366
        ordered="false" upperBound="-1" eType="#//ContinueStatement" eOpposite="#//ContinueStatement/label"/>
367
  </eClassifiers>
368
  <eClassifiers xsi:type="ecore:EClass" name="LineComment" eSuperTypes="#//Comment"/>
369
  <eClassifiers xsi:type="ecore:EClass" name="Manifest">
370
    <eStructuralFeatures xsi:type="ecore:EReference" name="mainAttributes" ordered="false"
371
        upperBound="-1" eType="#//ManifestAttribute" containment="true"/>
372
    <eStructuralFeatures xsi:type="ecore:EReference" name="entryAttributes" ordered="false"
373
        upperBound="-1" eType="#//ManifestEntry" containment="true"/>
374
  </eClassifiers>
375
  <eClassifiers xsi:type="ecore:EClass" name="ManifestAttribute">
376
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" ordered="false" unique="false"
377
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
378
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" ordered="false"
379
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
380
  </eClassifiers>
381
  <eClassifiers xsi:type="ecore:EClass" name="ManifestEntry">
382
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false"
383
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
384
    <eStructuralFeatures xsi:type="ecore:EReference" name="attributes" ordered="false"
385
        upperBound="-1" eType="#//ManifestAttribute" containment="true"/>
386
  </eClassifiers>
387
  <eClassifiers xsi:type="ecore:EClass" name="MemberRef" eSuperTypes="#//ASTNode">
388
    <eStructuralFeatures xsi:type="ecore:EReference" name="member" ordered="false"
389
        lowerBound="1" eType="#//NamedElement"/>
390
    <eStructuralFeatures xsi:type="ecore:EReference" name="qualifier" ordered="false"
391
        eType="#//TypeAccess" containment="true"/>
392
  </eClassifiers>
393
  <eClassifiers xsi:type="ecore:EClass" name="MethodDeclaration" eSuperTypes="#//AbstractMethodDeclaration">
394
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="extraArrayDimensions" ordered="false"
395
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
396
    <eStructuralFeatures xsi:type="ecore:EReference" name="returnType" ordered="false"
397
        eType="#//TypeAccess" containment="true"/>
398
    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinedMethodDeclaration"
399
        ordered="false" eType="#//MethodDeclaration" eOpposite="#//MethodDeclaration/redefinitions"/>
400
    <eStructuralFeatures xsi:type="ecore:EReference" name="redefinitions" ordered="false"
401
        upperBound="-1" eType="#//MethodDeclaration" eOpposite="#//MethodDeclaration/redefinedMethodDeclaration"/>
402
  </eClassifiers>
403
  <eClassifiers xsi:type="ecore:EClass" name="MethodInvocation" eSuperTypes="#//Expression #//AbstractMethodInvocation">
404
    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" ordered="false"
405
        eType="#//Expression" containment="true"/>
406
  </eClassifiers>
407
  <eClassifiers xsi:type="ecore:EClass" name="MethodRef" eSuperTypes="#//ASTNode">
408
    <eStructuralFeatures xsi:type="ecore:EReference" name="method" ordered="false"
409
        lowerBound="1" eType="#//AbstractMethodDeclaration" eOpposite="#//AbstractMethodDeclaration/usagesInDocComments"/>
410
    <eStructuralFeatures xsi:type="ecore:EReference" name="qualifier" ordered="false"
411
        eType="#//TypeAccess" containment="true"/>
412
    <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
413
        eType="#//MethodRefParameter" containment="true"/>
414
  </eClassifiers>
415
  <eClassifiers xsi:type="ecore:EClass" name="MethodRefParameter" eSuperTypes="#//ASTNode">
416
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false"
417
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
418
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="varargs" ordered="false"
419
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
420
    <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" lowerBound="1"
421
        eType="#//TypeAccess" containment="true"/>
422
  </eClassifiers>
423
  <eClassifiers xsi:type="ecore:EClass" name="Model">
424
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false"
425
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
426
    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedElements" ordered="false"
427
        upperBound="-1" eType="#//Package" containment="true" eOpposite="#//Package/model"/>
428
    <eStructuralFeatures xsi:type="ecore:EReference" name="orphanTypes" ordered="false"
429
        upperBound="-1" eType="#//Type" containment="true"/>
430
    <eStructuralFeatures xsi:type="ecore:EReference" name="unresolvedItems" ordered="false"
431
        upperBound="-1" eType="#//UnresolvedItem" containment="true"/>
432
    <eStructuralFeatures xsi:type="ecore:EReference" name="compilationUnits" ordered="false"
433
        upperBound="-1" eType="#//CompilationUnit" containment="true"/>
434
    <eStructuralFeatures xsi:type="ecore:EReference" name="classFiles" ordered="false"
435
        upperBound="-1" eType="#//ClassFile" containment="true"/>
436
    <eStructuralFeatures xsi:type="ecore:EReference" name="archives" ordered="false"
437
        upperBound="-1" eType="#//Archive" containment="true"/>
438
  </eClassifiers>
439
  <eClassifiers xsi:type="ecore:EClass" name="Modifier" eSuperTypes="#//ASTNode">
440
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="visibility" ordered="false"
441
        unique="false" lowerBound="1" eType="#//VisibilityKind"/>
442
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="inheritance" ordered="false"
443
        unique="false" lowerBound="1" eType="#//InheritanceKind"/>
444
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="static" ordered="false"
445
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
446
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="transient" ordered="false"
447
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
448
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="volatile" ordered="false"
449
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
450
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="native" ordered="false"
451
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
452
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="strictfp" ordered="false"
453
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
454
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="synchronized" ordered="false"
455
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
456
    <eStructuralFeatures xsi:type="ecore:EReference" name="bodyDeclaration" ordered="false"
457
        eType="#//BodyDeclaration" eOpposite="#//BodyDeclaration/modifier"/>
458
    <eStructuralFeatures xsi:type="ecore:EReference" name="singleVariableDeclaration"
459
        ordered="false" eType="#//SingleVariableDeclaration" eOpposite="#//SingleVariableDeclaration/modifier"/>
460
    <eStructuralFeatures xsi:type="ecore:EReference" name="variableDeclarationStatement"
461
        ordered="false" eType="#//VariableDeclarationStatement" eOpposite="#//VariableDeclarationStatement/modifier"/>
462
    <eStructuralFeatures xsi:type="ecore:EReference" name="variableDeclarationExpression"
463
        ordered="false" eType="#//VariableDeclarationExpression" eOpposite="#//VariableDeclarationExpression/modifier"/>
464
  </eClassifiers>
465
  <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true" eSuperTypes="#//ASTNode">
466
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" ordered="false" unique="false"
467
        eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
468
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="proxy" ordered="false"
469
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
470
    <eStructuralFeatures xsi:type="ecore:EReference" name="usagesInImports" ordered="false"
471
        upperBound="-1" eType="#//ImportDeclaration" eOpposite="#//ImportDeclaration/importedElement"/>
472
  </eClassifiers>
473
  <eClassifiers xsi:type="ecore:EClass" name="NamespaceAccess" abstract="true" eSuperTypes="#//ASTNode"/>
474
  <eClassifiers xsi:type="ecore:EClass" name="NumberLiteral" eSuperTypes="#//Expression">
475
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="tokenValue" ordered="false"
476
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
477
  </eClassifiers>
478
  <eClassifiers xsi:type="ecore:EClass" name="NullLiteral" eSuperTypes="#//Expression"/>
479
  <eClassifiers xsi:type="ecore:EClass" name="Package" eSuperTypes="#//NamedElement">
480
    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedElements" ordered="false"
481
        upperBound="-1" eType="#//AbstractTypeDeclaration" containment="true" eOpposite="#//AbstractTypeDeclaration/package"/>
482
    <eStructuralFeatures xsi:type="ecore:EReference" name="model" ordered="false"
483
        eType="#//Model" eOpposite="#//Model/ownedElements"/>
484
    <eStructuralFeatures xsi:type="ecore:EReference" name="ownedPackages" ordered="false"
485
        upperBound="-1" eType="#//Package" containment="true" eOpposite="#//Package/package"/>
486
    <eStructuralFeatures xsi:type="ecore:EReference" name="package" ordered="false"
487
        eType="#//Package" eOpposite="#//Package/ownedPackages"/>
488
    <eStructuralFeatures xsi:type="ecore:EReference" name="usagesInPackageAccess"
489
        ordered="false" upperBound="-1" eType="#//PackageAccess" eOpposite="#//PackageAccess/package"/>
490
  </eClassifiers>
491
  <eClassifiers xsi:type="ecore:EClass" name="PackageAccess" eSuperTypes="#//NamespaceAccess">
492
    <eStructuralFeatures xsi:type="ecore:EReference" name="package" ordered="false"
493
        lowerBound="1" eType="#//Package" eOpposite="#//Package/usagesInPackageAccess"/>
494
    <eStructuralFeatures xsi:type="ecore:EReference" name="qualifier" ordered="false"
495
        eType="#//PackageAccess" containment="true"/>
496
  </eClassifiers>
497
  <eClassifiers xsi:type="ecore:EClass" name="ParameterizedType" eSuperTypes="#//Type">
498
    <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" lowerBound="1"
499
        eType="#//TypeAccess" containment="true"/>
500
    <eStructuralFeatures xsi:type="ecore:EReference" name="typeArguments" upperBound="-1"
501
        eType="#//TypeAccess" containment="true"/>
502
  </eClassifiers>
503
  <eClassifiers xsi:type="ecore:EClass" name="ParenthesizedExpression" eSuperTypes="#//Expression">
504
    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" ordered="false"
505
        lowerBound="1" eType="#//Expression" containment="true"/>
506
  </eClassifiers>
507
  <eClassifiers xsi:type="ecore:EClass" name="PostfixExpression" eSuperTypes="#//Expression">
508
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="operator" ordered="false"
509
        unique="false" lowerBound="1" eType="#//PostfixExpressionKind"/>
510
    <eStructuralFeatures xsi:type="ecore:EReference" name="operand" ordered="false"
511
        lowerBound="1" eType="#//Expression" containment="true"/>
512
  </eClassifiers>
513
  <eClassifiers xsi:type="ecore:EEnum" name="PostfixExpressionKind">
514
    <eLiterals name="INCREMENT" value="1" literal="++"/>
515
    <eLiterals name="DECREMENT" value="2" literal="--"/>
516
  </eClassifiers>
517
  <eClassifiers xsi:type="ecore:EClass" name="PrefixExpression" eSuperTypes="#//Expression">
518
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="operator" ordered="false"
519
        unique="false" lowerBound="1" eType="#//PrefixExpressionKind"/>
520
    <eStructuralFeatures xsi:type="ecore:EReference" name="operand" ordered="false"
521
        lowerBound="1" eType="#//Expression" containment="true"/>
522
  </eClassifiers>
523
  <eClassifiers xsi:type="ecore:EEnum" name="PrefixExpressionKind">
524
    <eLiterals name="INCREMENT" value="1" literal="++"/>
525
    <eLiterals name="DECREMENT" value="2" literal="--"/>
526
    <eLiterals name="PLUS" value="3" literal="+"/>
527
    <eLiterals name="MINUS" value="4" literal="-"/>
528
    <eLiterals name="COMPLEMENT" value="5" literal="~"/>
529
    <eLiterals name="NOT" value="6" literal="!"/>
530
  </eClassifiers>
531
  <eClassifiers xsi:type="ecore:EClass" name="PrimitiveType" eSuperTypes="#//Type"/>
532
  <eClassifiers xsi:type="ecore:EClass" name="PrimitiveTypeBoolean" eSuperTypes="#//PrimitiveType"/>
533
  <eClassifiers xsi:type="ecore:EClass" name="PrimitiveTypeByte" eSuperTypes="#//PrimitiveType"/>
534
  <eClassifiers xsi:type="ecore:EClass" name="PrimitiveTypeChar" eSuperTypes="#//PrimitiveType"/>
535
  <eClassifiers xsi:type="ecore:EClass" name="PrimitiveTypeDouble" eSuperTypes="#//PrimitiveType"/>
536
  <eClassifiers xsi:type="ecore:EClass" name="PrimitiveTypeShort" eSuperTypes="#//PrimitiveType"/>
537
  <eClassifiers xsi:type="ecore:EClass" name="PrimitiveTypeFloat" eSuperTypes="#//PrimitiveType"/>
538
  <eClassifiers xsi:type="ecore:EClass" name="PrimitiveTypeInt" eSuperTypes="#//PrimitiveType"/>
539
  <eClassifiers xsi:type="ecore:EClass" name="PrimitiveTypeLong" eSuperTypes="#//PrimitiveType"/>
540
  <eClassifiers xsi:type="ecore:EClass" name="PrimitiveTypeVoid" eSuperTypes="#//PrimitiveType"/>
541
  <eClassifiers xsi:type="ecore:EClass" name="ReturnStatement" eSuperTypes="#//Statement">
542
    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" ordered="false"
543
        eType="#//Expression" containment="true"/>
544
  </eClassifiers>
545
  <eClassifiers xsi:type="ecore:EClass" name="SingleVariableAccess" eSuperTypes="#//Expression">
546
    <eStructuralFeatures xsi:type="ecore:EReference" name="variable" ordered="false"
547
        lowerBound="1" eType="#//VariableDeclaration" eOpposite="#//VariableDeclaration/usageInVariableAccess"/>
548
    <eStructuralFeatures xsi:type="ecore:EReference" name="qualifier" ordered="false"
549
        eType="#//Expression" containment="true"/>
550
  </eClassifiers>
551
  <eClassifiers xsi:type="ecore:EClass" name="SingleVariableDeclaration" eSuperTypes="#//VariableDeclaration">
552
    <eStructuralFeatures xsi:type="ecore:EReference" name="modifier" ordered="false"
553
        eType="#//Modifier" containment="true" eOpposite="#//Modifier/singleVariableDeclaration"/>
554
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="varargs" ordered="false"
555
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
556
    <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" lowerBound="1"
557
        eType="#//TypeAccess" containment="true"/>
558
    <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1"
559
        eType="#//Annotation" containment="true"/>
560
    <eStructuralFeatures xsi:type="ecore:EReference" name="methodDeclaration" ordered="false"
561
        eType="#//AbstractMethodDeclaration" eOpposite="#//AbstractMethodDeclaration/parameters"/>
562
    <eStructuralFeatures xsi:type="ecore:EReference" name="catchClause" ordered="false"
563
        eType="#//CatchClause" eOpposite="#//CatchClause/exception"/>
564
    <eStructuralFeatures xsi:type="ecore:EReference" name="enhancedForStatement" ordered="false"
565
        eType="#//EnhancedForStatement" eOpposite="#//EnhancedForStatement/parameter"/>
566
  </eClassifiers>
567
  <eClassifiers xsi:type="ecore:EClass" name="Statement" abstract="true" eSuperTypes="#//ASTNode"/>
568
  <eClassifiers xsi:type="ecore:EClass" name="StringLiteral" eSuperTypes="#//Expression">
569
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="escapedValue" ordered="false"
570
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
571
  </eClassifiers>
572
  <eClassifiers xsi:type="ecore:EClass" name="SuperConstructorInvocation" eSuperTypes="#//Statement #//AbstractMethodInvocation">
573
    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" ordered="false"
574
        eType="#//Expression" containment="true"/>
575
  </eClassifiers>
576
  <eClassifiers xsi:type="ecore:EClass" name="SuperFieldAccess" eSuperTypes="#//AbstractTypeQualifiedExpression">
577
    <eStructuralFeatures xsi:type="ecore:EReference" name="field" ordered="false"
578
        lowerBound="1" eType="#//SingleVariableAccess" containment="true"/>
579
  </eClassifiers>
580
  <eClassifiers xsi:type="ecore:EClass" name="SuperMethodInvocation" eSuperTypes="#//AbstractTypeQualifiedExpression #//AbstractMethodInvocation"/>
581
  <eClassifiers xsi:type="ecore:EClass" name="SwitchCase" eSuperTypes="#//Statement">
582
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="default" ordered="false"
583
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
584
    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" ordered="false"
585
        eType="#//Expression" containment="true"/>
586
  </eClassifiers>
587
  <eClassifiers xsi:type="ecore:EClass" name="SwitchStatement" eSuperTypes="#//Statement">
588
    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" ordered="false"
589
        lowerBound="1" eType="#//Expression" containment="true"/>
590
    <eStructuralFeatures xsi:type="ecore:EReference" name="statements" upperBound="-1"
591
        eType="#//Statement" containment="true"/>
592
  </eClassifiers>
593
  <eClassifiers xsi:type="ecore:EClass" name="SynchronizedStatement" eSuperTypes="#//Statement">
594
    <eStructuralFeatures xsi:type="ecore:EReference" name="body" ordered="false" lowerBound="1"
595
        eType="#//Block" containment="true"/>
596
    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" ordered="false"
597
        lowerBound="1" eType="#//Expression" containment="true"/>
598
  </eClassifiers>
599
  <eClassifiers xsi:type="ecore:EClass" name="TagElement" eSuperTypes="#//ASTNode">
600
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="tagName" ordered="false"
601
        unique="false" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
602
    <eStructuralFeatures xsi:type="ecore:EReference" name="fragments" upperBound="-1"
603
        eType="#//ASTNode" containment="true"/>
604
  </eClassifiers>
605
  <eClassifiers xsi:type="ecore:EClass" name="TextElement" eSuperTypes="#//ASTNode">
606
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="text" ordered="false" unique="false"
607
        lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
608
  </eClassifiers>
609
  <eClassifiers xsi:type="ecore:EClass" name="ThisExpression" eSuperTypes="#//AbstractTypeQualifiedExpression"/>
610
  <eClassifiers xsi:type="ecore:EClass" name="ThrowStatement" eSuperTypes="#//Statement">
611
    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" ordered="false"
612
        lowerBound="1" eType="#//Expression" containment="true"/>
613
  </eClassifiers>
614
  <eClassifiers xsi:type="ecore:EClass" name="TryStatement" eSuperTypes="#//Statement">
615
    <eStructuralFeatures xsi:type="ecore:EReference" name="body" ordered="false" lowerBound="1"
616
        eType="#//Block" containment="true"/>
617
    <eStructuralFeatures xsi:type="ecore:EReference" name="finally" ordered="false"
618
        eType="#//Block" containment="true"/>
619
    <eStructuralFeatures xsi:type="ecore:EReference" name="catchClauses" upperBound="-1"
620
        eType="#//CatchClause" containment="true"/>
621
  </eClassifiers>
622
  <eClassifiers xsi:type="ecore:EClass" name="Type" abstract="true" eSuperTypes="#//NamedElement">
623
    <eStructuralFeatures xsi:type="ecore:EReference" name="usagesInTypeAccess" ordered="false"
624
        upperBound="-1" eType="#//TypeAccess" eOpposite="#//TypeAccess/type"/>
625
  </eClassifiers>
626
  <eClassifiers xsi:type="ecore:EClass" name="TypeAccess" eSuperTypes="#//Expression #//NamespaceAccess">
627
    <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" lowerBound="1"
628
        eType="#//Type" eOpposite="#//Type/usagesInTypeAccess"/>
629
    <eStructuralFeatures xsi:type="ecore:EReference" name="qualifier" ordered="false"
630
        eType="#//NamespaceAccess" containment="true"/>
631
  </eClassifiers>
632
  <eClassifiers xsi:type="ecore:EClass" name="TypeDeclaration" abstract="true" eSuperTypes="#//AbstractTypeDeclaration">
633
    <eStructuralFeatures xsi:type="ecore:EReference" name="typeParameters" upperBound="-1"
634
        eType="#//TypeParameter" containment="true"/>
635
  </eClassifiers>
636
  <eClassifiers xsi:type="ecore:EClass" name="TypeDeclarationStatement" eSuperTypes="#//Statement">
637
    <eStructuralFeatures xsi:type="ecore:EReference" name="declaration" ordered="false"
638
        lowerBound="1" eType="#//AbstractTypeDeclaration" containment="true"/>
639
  </eClassifiers>
640
  <eClassifiers xsi:type="ecore:EClass" name="TypeLiteral" eSuperTypes="#//Expression">
641
    <eStructuralFeatures xsi:type="ecore:EReference" name="type" ordered="false" lowerBound="1"
642
        eType="#//TypeAccess" containment="true"/>
643
  </eClassifiers>
644
  <eClassifiers xsi:type="ecore:EClass" name="TypeParameter" eSuperTypes="#//Type">
645
    <eStructuralFeatures xsi:type="ecore:EReference" name="bounds" upperBound="-1"
646
        eType="#//TypeAccess" containment="true"/>
647
  </eClassifiers>
648
  <eClassifiers xsi:type="ecore:EClass" name="UnresolvedItem" eSuperTypes="#//NamedElement"/>
649
  <eClassifiers xsi:type="ecore:EClass" name="UnresolvedItemAccess" eSuperTypes="#//Expression #//NamespaceAccess">
650
    <eStructuralFeatures xsi:type="ecore:EReference" name="element" ordered="false"
651
        eType="#//UnresolvedItem"/>
652
    <eStructuralFeatures xsi:type="ecore:EReference" name="qualifier" ordered="false"
653
        eType="#//ASTNode" containment="true"/>
654
  </eClassifiers>
655
  <eClassifiers xsi:type="ecore:EClass" name="UnresolvedAnnotationDeclaration" eSuperTypes="#//AnnotationTypeDeclaration #//UnresolvedItem"/>
656
  <eClassifiers xsi:type="ecore:EClass" name="UnresolvedAnnotationTypeMemberDeclaration"
657
      eSuperTypes="#//AnnotationTypeMemberDeclaration #//UnresolvedItem"/>
658
  <eClassifiers xsi:type="ecore:EClass" name="UnresolvedClassDeclaration" eSuperTypes="#//ClassDeclaration #//UnresolvedItem"/>
659
  <eClassifiers xsi:type="ecore:EClass" name="UnresolvedEnumDeclaration" eSuperTypes="#//EnumDeclaration #//UnresolvedItem"/>
660
  <eClassifiers xsi:type="ecore:EClass" name="UnresolvedInterfaceDeclaration" eSuperTypes="#//InterfaceDeclaration #//UnresolvedItem"/>
661
  <eClassifiers xsi:type="ecore:EClass" name="UnresolvedLabeledStatement" eSuperTypes="#//LabeledStatement #//UnresolvedItem"/>
662
  <eClassifiers xsi:type="ecore:EClass" name="UnresolvedMethodDeclaration" eSuperTypes="#//MethodDeclaration #//UnresolvedItem"/>
663
  <eClassifiers xsi:type="ecore:EClass" name="UnresolvedSingleVariableDeclaration"
664
      eSuperTypes="#//SingleVariableDeclaration #//UnresolvedItem"/>
665
  <eClassifiers xsi:type="ecore:EClass" name="UnresolvedType" eSuperTypes="#//Type #//UnresolvedItem"/>
666
  <eClassifiers xsi:type="ecore:EClass" name="UnresolvedTypeDeclaration" eSuperTypes="#//AbstractTypeDeclaration #//UnresolvedItem"/>
667
  <eClassifiers xsi:type="ecore:EClass" name="UnresolvedVariableDeclarationFragment"
668
      eSuperTypes="#//VariableDeclarationFragment #//UnresolvedItem"/>
669
  <eClassifiers xsi:type="ecore:EClass" name="VariableDeclaration" abstract="true"
670
      eSuperTypes="#//NamedElement">
671
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="extraArrayDimensions" ordered="false"
672
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
673
    <eStructuralFeatures xsi:type="ecore:EReference" name="initializer" ordered="false"
674
        eType="#//Expression" containment="true"/>
675
    <eStructuralFeatures xsi:type="ecore:EReference" name="usageInVariableAccess"
676
        ordered="false" upperBound="-1" eType="#//SingleVariableAccess" eOpposite="#//SingleVariableAccess/variable"/>
677
  </eClassifiers>
678
  <eClassifiers xsi:type="ecore:EClass" name="VariableDeclarationExpression" eSuperTypes="#//Expression #//AbstractVariablesContainer">
679
    <eStructuralFeatures xsi:type="ecore:EReference" name="modifier" ordered="false"
680
        eType="#//Modifier" containment="true" eOpposite="#//Modifier/variableDeclarationExpression"/>
681
    <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1"
682
        eType="#//Annotation" containment="true"/>
683
  </eClassifiers>
684
  <eClassifiers xsi:type="ecore:EClass" name="VariableDeclarationFragment" eSuperTypes="#//VariableDeclaration">
685
    <eStructuralFeatures xsi:type="ecore:EReference" name="variablesContainer" ordered="false"
686
        eType="#//AbstractVariablesContainer" eOpposite="#//AbstractVariablesContainer/fragments"/>
687
  </eClassifiers>
688
  <eClassifiers xsi:type="ecore:EClass" name="VariableDeclarationStatement" eSuperTypes="#//Statement #//AbstractVariablesContainer">
689
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="extraArrayDimensions" ordered="false"
690
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
691
    <eStructuralFeatures xsi:type="ecore:EReference" name="modifier" ordered="false"
692
        eType="#//Modifier" containment="true" eOpposite="#//Modifier/variableDeclarationStatement"/>
693
    <eStructuralFeatures xsi:type="ecore:EReference" name="annotations" upperBound="-1"
694
        eType="#//Annotation" containment="true"/>
695
  </eClassifiers>
696
  <eClassifiers xsi:type="ecore:EEnum" name="VisibilityKind">
697
    <eLiterals name="none" value="1"/>
698
    <eLiterals name="public" value="2"/>
699
    <eLiterals name="private" value="3"/>
700
    <eLiterals name="protected" value="4"/>
701
  </eClassifiers>
702
  <eClassifiers xsi:type="ecore:EClass" name="WildCardType" eSuperTypes="#//Type">
703
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" ordered="false"
704
        unique="false" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
705
    <eStructuralFeatures xsi:type="ecore:EReference" name="bound" ordered="false"
706
        eType="#//TypeAccess" containment="true"/>
707
  </eClassifiers>
708
  <eClassifiers xsi:type="ecore:EClass" name="WhileStatement" eSuperTypes="#//Statement">
709
    <eStructuralFeatures xsi:type="ecore:EReference" name="expression" ordered="false"
710
        lowerBound="1" eType="#//Expression" containment="true"/>
711
    <eStructuralFeatures xsi:type="ecore:EReference" name="body" ordered="false" lowerBound="1"
712
        eType="#//Statement" containment="true"/>
713
  </eClassifiers>
714
</ecore:EPackage>