<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI 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">
  <ecore:EPackage name="java" nsURI="java.xmi" nsPrefix="org.eclipse.jem.java">
    <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
      <details key="documentation" value="Changes to synch up with Java3e:&#xD;&#xA;- deleted JavaElement, BodyElement which didn't add anything useful&#xD;&#xA;- deleted NestedClass and the association which described nesting, contents can be used instead&#xD;&#xA;- deleted extends/extendedBy which is replaced with MOF subtype/supertype&#xD;&#xA;- deleted the clumsy main diagram&#xD;&#xA;- moved the MOF inheritance details to the MOF binding diagram&#xD;&#xA;- deleted &quot;final&quot; on JavaParameter, don't know what that was supposed to be&#xD;&#xA;- deleted the Category junk&#xD;&#xA;- changed the Block-typed attributes on Field, Method, Initializer to be associations to Block&#xD;&#xA;&#xD;&#xA;Outstanding questions/issues:&#xD;&#xA;- JavaParameterKind should go away if we get the base Parameter kind fixed up&#xD;&#xA;"/>
    </eAnnotations>
    <eClassifiers xsi:type="ecore:EClass" name="JavaClass" eSuperTypes="#/1/EClass">
      <eOperations name="isNested" eType="#/1/EBoolean"/>
      <eOperations name="getField" eType="#/0/Field">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Return an Field with the passed name, or null."/>
        </eAnnotations>
        <eParameters name="fieldName" eType="#/1/EString"/>
      </eOperations>
      <eOperations name="getFieldExtended" eType="#/0/Field">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value=" Return an Field with the passed name from this JavaClass or any supertypes.&#xD;&#xA;&#xD;&#xA;Return null if a Field named fieldName is not found."/>
        </eAnnotations>
        <eParameters name="fieldName" eType="#/1/EString"/>
      </eOperations>
      <eOperations name="getFieldNamed" eType="#/0/Field">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Return an Field with the passed name, or null."/>
        </eAnnotations>
        <eParameters name="fieldName" eType="#/1/EString"/>
      </eOperations>
      <eOperations name="getFieldsExtended" eType="#/0/JTypeList">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Return all fields, including those from supertypes."/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getMethod" eType="#/0/Method">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Get the method of this name and these parameters. It will not look up the supertype hierarchy."/>
        </eAnnotations>
        <eParameters name="methodName" eType="#/1/EString"/>
        <eParameters name="parameterTypes" eType="#/0/JTypeList">
          <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
            <details key="documentation" value="List of parameter types."/>
          </eAnnotations>
        </eParameters>
      </eOperations>
      <eOperations name="getMethodElementSignatures" eType="#/0/JTypeList">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Return a List of Strings that represent MethodElement signatures from most general to most specific."/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getMethodExtended" eType="#/0/Method">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Get the method of this name and these parameters. It will look up the supertype hierarchy."/>
        </eAnnotations>
        <eParameters name="methodName" eType="#/1/EString"/>
        <eParameters name="parameterTypes" eType="#/0/JTypeList">
          <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
            <details key="documentation" value="List of parameter types."/>
          </eAnnotations>
        </eParameters>
      </eOperations>
      <eOperations name="getMethodsExtended" eType="#/0/JTypeList">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Return all methods, including those from supertypes."/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getOnlySpecificMethods" eType="#/0/JTypeList">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Return a List of Methods that begins with @aMethodNamePrefix and is not included in the @excludedNames list. If @aMethodNamePrefix is null, all methods will be returned.&#xD;&#xA;"/>
        </eAnnotations>
        <eParameters name="aMethodNamePrefix" eType="#/1/EString"/>
        <eParameters name="excludedNames" eType="#/0/JTypeList"/>
      </eOperations>
      <eOperations name="getPublicMethod" eType="#/0/Method">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Return a method matching the name, and non-return parameters with fully qualified types matching all the types in the list, if it exists.  It will not look up the supertype hierarchy."/>
        </eAnnotations>
        <eParameters name="methodName" eType="#/1/EString"/>
        <eParameters name="parameterTypes" eType="#/0/JTypeList">
          <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
            <details key="documentation" value="List of parameter types."/>
          </eAnnotations>
        </eParameters>
      </eOperations>
      <eOperations name="getPublicMethods" eType="#/0/JTypeList">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Return all methods, it will not go up the supertype hierarchy."/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getPublicMethodsExtended" eType="#/0/JTypeList">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Return all public methods, including those from supertypes."/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getPublicMethodsNamed" eType="#/0/JTypeList">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Returns a filtered list on the methods of this class, having a name equal to that of the parameter."/>
        </eAnnotations>
        <eParameters name="name" eType="#/1/EString"/>
      </eOperations>
      <eOperations name="getSupertype" eType="#/0/JavaClass"/>
      <eOperations name="implementsInterface" eType="#/1/EBoolean">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Test whether the receiver implements the passed interface (or one of its supertypes)."/>
        </eAnnotations>
        <eParameters name="interfaceType" eType="#/0/JavaClass"/>
      </eOperations>
      <eOperations name="infoString" eType="#/1/EString">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Return a string showing our details."/>
        </eAnnotations>
      </eOperations>
      <eOperations name="inheritsFrom" eType="#/1/EBoolean">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Tests whether this class inherits from the passed in class."/>
        </eAnnotations>
        <eParameters name="javaClass" eType="#/0/JavaClass"/>
      </eOperations>
      <eOperations name="isExistingType" eType="#/1/EBoolean">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Does this type exist."/>
        </eAnnotations>
      </eOperations>
      <eOperations name="isInterface" eType="#/1/EBoolean">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Is this an interface."/>
        </eAnnotations>
      </eOperations>
      <eOperations name="setSupertype">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Set the supertype."/>
        </eAnnotations>
        <eParameters name="javaclass" eType="#/0/JavaClass"/>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#/0/TypeKind"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="public" eType="#/1/EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="final" eType="#/1/EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="implementsInterfaces"
          upperBound="-1" eType="#/0/JavaClass"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="classImport" upperBound="-1"
          eType="#/0/JavaClass"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="packageImports" upperBound="-1"
          eType="#/0/JavaPackage"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="fields" upperBound="-1"
          eType="#/0/Field" containment="true" eOpposite="#/0/Field/javaClass"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="methods" upperBound="-1"
          eType="#/0/Method" containment="true" eOpposite="#/0/Method/javaClass"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="initializers" upperBound="-1"
          eType="#/0/Initializer" containment="true" eOpposite="#/0/Initializer/javaClass"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="declaredClasses" upperBound="-1"
          eType="#/0/JavaClass" eOpposite="#/0/JavaClass/declaringClass"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="declaringClass" eType="#/0/JavaClass"
          eOpposite="#/0/JavaClass/declaredClasses"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="javaPackage" eType="#/0/JavaPackage"
          changeable="false" volatile="true" transient="true" eOpposite="#/0/JavaPackage/javaClasses"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="events" upperBound="-1"
          eType="#/0/JavaEvent" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="allEvents" upperBound="-1"
          eType="#/0/JavaEvent" volatile="true" transient="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Initializer">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="isStatic" eType="#/1/EBooleanObject"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="javaClass" eType="#/0/JavaClass"
          transient="true" eOpposite="#/0/JavaClass/initializers"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="source" eType="#/0/Block"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="JavaParameter" eSuperTypes="#/1/EParameter">
      <eOperations name="isArray" eType="#/1/EBoolean">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Is this parameter type an array type."/>
        </eAnnotations>
      </eOperations>
      <eOperations name="isReturn" eType="#/1/EBoolean">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Is this a return parameter."/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getJavaType" eType="#/0/JTypeJavaHelpers"/>
      <eOperations name="getQualifiedName" eType="#/1/EString"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="final" eType="#/1/EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="parameterKind" eType="#/0/JavaParameterKind"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Method" eSuperTypes="#/1/EOperation">
      <eOperations name="getContainingJavaClass" eType="#/0/JavaClass">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Return the java class that this method is defined in."/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getMethodElementSignature" eType="#/1/EString">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Return a String with the the method name and its parameters. e.g. &lt;code> setFirstName(java.lang.String) &lt;/code> .&#xD;&#xA; "/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getParameter" eType="#/0/JavaParameter">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Return a Parameter with the passed name, or null."/>
        </eAnnotations>
        <eParameters name="parameterName" eType="#/1/EString"/>
      </eOperations>
      <eOperations name="getReturnType" eType="#/0/JTypeJavaHelpers">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Get the return type."/>
        </eAnnotations>
      </eOperations>
      <eOperations name="setReturnType">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Set the return type"/>
        </eAnnotations>
        <eParameters name="type" eType="#/0/JTypeJavaHelpers"/>
      </eOperations>
      <eOperations name="getSignature" eType="#/1/EString">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Replicate the functionality of java.lang.reflect.Method.toString().&#xD;&#xA;&#xD;&#xA;Returns a string describing this Method.  The string is formatted as the method access modifiers, if any, followed by the method return type, followed by a space, followed by the class declaring the method, followed by a period, followed by the method name, followed by a parenthesized, comma-separated list of the method's formal parameter types. If the method throws checked exceptions, the parameter list is followed by a space, followed by the word throws followed by a comma-separated list of the thrown exception types.&#xD;&#xA;&#xD;&#xA;For example:&#xD;&#xA;&#xD;&#xA;    public boolean java.lang.Object.equals(java.lang.Object)&#xD;&#xA;&#xD;&#xA;The access modifiers are placed in canonical order as specified by &quot;The Java Language Specification&quot;.  This is public, &lt;tt>protected&lt;/tt> or &lt;tt>private&lt;/tt> first, and then other modifiers in the following order: &lt;tt>abstract&lt;/tt>, &lt;tt>static&lt;/tt>, &lt;tt>final&lt;/tt>, &lt;tt>synchronized&lt;/tt> &lt;tt>native&lt;/tt>.&#xD;&#xA;"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="isGenerated" eType="#/1/EBoolean">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Returns true if the method is system generated.&#xD;&#xA;This is usually determined by the @generated tag in the comment."/>
        </eAnnotations>
      </eOperations>
      <eOperations name="setIsGenerated">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Set the isGenerated flag."/>
        </eAnnotations>
        <eParameters name="generated" eType="#/1/EBoolean"/>
      </eOperations>
      <eOperations name="isVoid" eType="#/1/EBoolean">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Is this a void return type method."/>
        </eAnnotations>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="#/1/EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="native" eType="#/1/EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="synchronized" eType="#/1/EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="final" eType="#/1/EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="constructor" eType="#/1/EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="static" eType="#/1/EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="javaVisibility" eType="#/0/JavaVisibilityKind"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="parameters" upperBound="-1"
          eType="#/0/JavaParameter" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="javaExceptions" upperBound="-1"
          eType="#/0/JavaClass"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="javaClass" eType="#/0/JavaClass"
          transient="true" eOpposite="#/0/JavaClass/methods"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="source" eType="#/0/Block"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Field" eSuperTypes="#/1/ETypedElement">
      <eOperations name="getContainingJavaClass" eType="#/0/JavaClass">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Get the class that this field is within."/>
        </eAnnotations>
      </eOperations>
      <eOperations name="isArray" eType="#/1/EBoolean">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Is this field an array type."/>
        </eAnnotations>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="final" eType="#/1/EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="static" eType="#/1/EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="javaVisibility" eType="#/0/JavaVisibilityKind"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="transient" eType="#/1/EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="volatile" eType="#/1/EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="javaClass" eType="#/0/JavaClass"
          transient="true" eOpposite="#/0/JavaClass/fields"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="initializer" eType="#/0/Block"
          containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EEnum" name="TypeKind">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="UNDEFINED=1 CLASS=2 INTERFACE=3 EXCEPTION=4"/>
      </eAnnotations>
      <eLiterals name="UNDEFINED"/>
      <eLiterals name="CLASS" value="1"/>
      <eLiterals name="INTERFACE" value="2"/>
      <eLiterals name="EXCEPTION" value="3"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Block">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="source" eType="#/1/EString"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="#/1/EString"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="contents" upperBound="-1"
          eType="#/0/Block" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="Comment" eSuperTypes="#/0/Block"/>
    <eClassifiers xsi:type="ecore:EClass" name="Statement" eSuperTypes="#/0/Block"/>
    <eClassifiers xsi:type="ecore:EClass" name="JavaPackage" eSuperTypes="#/1/EPackage">
      <eStructuralFeatures xsi:type="ecore:EReference" name="javaClasses" upperBound="-1"
          eType="#/0/JavaClass" changeable="false" volatile="true" transient="true"
          eOpposite="#/0/JavaClass/javaPackage"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EEnum" name="JavaVisibilityKind">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="PACKAGE=1&#xD;&#xA;PUBLIC=2&#xD;&#xA;PRIVATE=3&#xD;&#xA;PROTECTED=4"/>
      </eAnnotations>
      <eLiterals name="PUBLIC"/>
      <eLiterals name="PRIVATE" value="1"/>
      <eLiterals name="PROTECTED" value="2"/>
      <eLiterals name="PACKAGE" value="3"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EEnum" name="JavaParameterKind">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="IN=0&#xD;&#xA;OUT=1&#xD;&#xA;INOUT=2&#xD;&#xA;RETURN=3"/>
      </eAnnotations>
      <eLiterals name="IN"/>
      <eLiterals name="OUT" value="1"/>
      <eLiterals name="INOUT" value="2"/>
      <eLiterals name="RETURN" value="3"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="JavaDataType" eSuperTypes="#/1/EClass">
      <eOperations name="getDefaultValueString" eType="#/1/EString">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Return the default string representing the default value of the primitive."/>
        </eAnnotations>
      </eOperations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ArrayType" eSuperTypes="#/0/JavaClass">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="Describes a Java Array type&#xD;&#xA;   For multi-dimensional arrays, it is unlikely that the component type will be&#xD;&#xA;   specified directly.  This would require instantiating a chain of component types&#xD;&#xA;   such as String[][][][]->String[][][]->String[][]->String[]->String.&#xD;&#xA;&#xD;&#xA;  The component type relationship will be computed if the finalComponentType&#xD;&#xA;  and array dimensions is specified.&#xD;&#xA; &#xD;&#xA;  For this reason, the preferred way to create is through the JavaRefFactory factory method:&#xD;&#xA;       createArrayType(JavaClass finalComponentType, int dimensions)"/>
      </eAnnotations>
      <eOperations name="getFinalComponentType" eType="#/0/JTypeJavaHelpers">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Get the final component type for this Array Type.&#xD;&#xA;&#xD;&#xA;In order to ensure a unique instance, we will resolve this type using reflection. It turns out to be most efficient to just do this by trimming the name."/>
        </eAnnotations>
      </eOperations>
      <eOperations name="getComponentTypeAsHelper" eType="#/0/JTypeJavaHelpers">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Get the component type of this array. &#xD;&#xA;&#xD;&#xA;If this is a multi-dimensional array, the component type will be the nested array type."/>
        </eAnnotations>
      </eOperations>
      <eOperations name="isPrimitiveArray" eType="#/1/EBoolean">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Is this an array of java primitives"/>
        </eAnnotations>
      </eOperations>
      <eOperations name="setComponentType">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="documentation" value="Set the component type."/>
        </eAnnotations>
        <eParameters name="helperComponentType" eType="#/0/JTypeJavaHelpers"/>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="arrayDimensions" eType="#/1/EInt"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="componentType" lowerBound="1"
          eType="#/1/EClassifier"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="JTypeJavaHelpers" instanceClassName="org.eclipse.jem.java.JavaHelpers">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="This interface is a common interface between JavaClass and JavaDataType plus some common helper methods."/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="JTypeList" instanceClassName="java.util.List">
      <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
        <details key="documentation" value="java.util.List type"/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="JavaEvent" abstract="true" eSuperTypes="#/1/EStructuralFeature"/>
  </ecore:EPackage>
  <ecore:EPackage name="ecore" nsURI="http://www.eclipse.org/emf/2002/Ecore" nsPrefix="ecore">
    <eClassifiers xsi:type="ecore:EClass" name="EAttribute" eSuperTypes="#/1/EStructuralFeature">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
        <details key="constraints" value="ConsistentTransient"/>
      </eAnnotations>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="#/1/EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eAttributeType" lowerBound="1"
          eType="#/1/EDataType" changeable="false" volatile="true" transient="true"
          derived="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="EAnnotation" eSuperTypes="#/1/EModelElement">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
        <details key="constraints" value="WellFormedSourceURI"/>
      </eAnnotations>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="source" eType="#/1/EString"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="details" upperBound="-1"
          eType="#/1/EStringToStringMapEntry" containment="true" resolveProxies="false"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eModelElement" eType="#/1/EModelElement"
          transient="true" resolveProxies="false" eOpposite="#/1/EModelElement/eAnnotations"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="contents" upperBound="-1"
          eType="#/1/EObject" containment="true" resolveProxies="false"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="references" upperBound="-1"
          eType="#/1/EObject"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="EClass" eSuperTypes="#/1/EClassifier">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
        <details key="constraints" value="InterfaceIsAbstract AtMostOneID UniqueFeatureNames UniqueOperationSignatures NoCircularSuperTypes WellFormedMapEntryClass ConsistentSuperTypes DisjointFeatureAndOperationSignatures"/>
      </eAnnotations>
      <eOperations name="isSuperTypeOf" eType="#/1/EBoolean">
        <eParameters name="someClass" eType="#/1/EClass"/>
      </eOperations>
      <eOperations name="getFeatureCount" eType="#/1/EInt"/>
      <eOperations name="getEStructuralFeature" eType="#/1/EStructuralFeature">
        <eParameters name="featureID" eType="#/1/EInt"/>
      </eOperations>
      <eOperations name="getFeatureID" eType="#/1/EInt">
        <eParameters name="feature" eType="#/1/EStructuralFeature"/>
      </eOperations>
      <eOperations name="getEStructuralFeature" eType="#/1/EStructuralFeature">
        <eParameters name="featureName" eType="#/1/EString"/>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="#/1/EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="interface" eType="#/1/EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eSuperTypes" upperBound="-1"
          eType="#/1/EClass" unsettable="true">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="suppressedIsSetVisibility" value="true"/>
          <details key="suppressedUnsetVisibility" value="true"/>
        </eAnnotations>
      </eStructuralFeatures>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eOperations" upperBound="-1"
          eType="#/1/EOperation" containment="true" resolveProxies="false" eOpposite="#/1/EOperation/eContainingClass"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eAllAttributes" upperBound="-1"
          eType="#/1/EAttribute" changeable="false" volatile="true" transient="true"
          derived="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eAllReferences" upperBound="-1"
          eType="#/1/EReference" changeable="false" volatile="true" transient="true"
          derived="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eReferences" upperBound="-1"
          eType="#/1/EReference" changeable="false" volatile="true" transient="true"
          derived="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eAttributes" upperBound="-1"
          eType="#/1/EAttribute" changeable="false" volatile="true" transient="true"
          derived="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eAllContainments" upperBound="-1"
          eType="#/1/EReference" changeable="false" volatile="true" transient="true"
          derived="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eAllOperations" upperBound="-1"
          eType="#/1/EOperation" changeable="false" volatile="true" transient="true"
          derived="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eAllStructuralFeatures"
          upperBound="-1" eType="#/1/EStructuralFeature" changeable="false" volatile="true"
          transient="true" derived="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eAllSuperTypes" upperBound="-1"
          eType="#/1/EClass" changeable="false" volatile="true" transient="true" derived="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eIDAttribute" eType="#/1/EAttribute"
          changeable="false" volatile="true" transient="true" derived="true" resolveProxies="false"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eStructuralFeatures"
          upperBound="-1" eType="#/1/EStructuralFeature" containment="true" resolveProxies="false"
          eOpposite="#/1/EStructuralFeature/eContainingClass"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eGenericSuperTypes" upperBound="-1"
          eType="#/1/EGenericType" unsettable="true" containment="true" resolveProxies="false">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="suppressedIsSetVisibility" value="true"/>
          <details key="suppressedUnsetVisibility" value="true"/>
        </eAnnotations>
      </eStructuralFeatures>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eAllGenericSuperTypes"
          upperBound="-1" eType="#/1/EGenericType" changeable="false" volatile="true"
          transient="true" derived="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="EClassifier" abstract="true" eSuperTypes="#/1/ENamedElement">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
        <details key="constraints" value="WellFormedInstanceTypeName UniqueTypeParameterNames"/>
      </eAnnotations>
      <eOperations name="isInstance" eType="#/1/EBoolean">
        <eParameters name="object" eType="#/1/EJavaObject"/>
      </eOperations>
      <eOperations name="getClassifierID" eType="#/1/EInt"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceClassName" eType="#/1/EString"
          volatile="true" unsettable="true">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="suppressedIsSetVisibility" value="true"/>
          <details key="suppressedUnsetVisibility" value="true"/>
        </eAnnotations>
      </eStructuralFeatures>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceClass" changeable="false"
          volatile="true" transient="true" derived="true">
        <eGenericType eClassifier="#/1/EJavaClass">
          <eTypeArguments/>
        </eGenericType>
      </eStructuralFeatures>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" eType="#/1/EJavaObject"
          changeable="false" volatile="true" transient="true" derived="true"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceTypeName" eType="#/1/EString"
          volatile="true" unsettable="true">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="suppressedIsSetVisibility" value="true"/>
          <details key="suppressedUnsetVisibility" value="true"/>
        </eAnnotations>
      </eStructuralFeatures>
      <eStructuralFeatures xsi:type="ecore:EReference" name="ePackage" eType="#/1/EPackage"
          changeable="false" transient="true" eOpposite="#/1/EPackage/eClassifiers"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeParameters" upperBound="-1"
          eType="#/1/ETypeParameter" containment="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="EDataType" eSuperTypes="#/1/EClassifier">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="serializable" eType="#/1/EBoolean"
          defaultValueLiteral="true"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="EEnum" eSuperTypes="#/1/EDataType">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
        <details key="constraints" value="UniqueEnumeratorNames UniqueEnumeratorLiterals"/>
      </eAnnotations>
      <eOperations name="getEEnumLiteral" eType="#/1/EEnumLiteral">
        <eParameters name="name" eType="#/1/EString"/>
      </eOperations>
      <eOperations name="getEEnumLiteral" eType="#/1/EEnumLiteral">
        <eParameters name="value" eType="#/1/EInt"/>
      </eOperations>
      <eOperations name="getEEnumLiteralByLiteral" eType="#/1/EEnumLiteral">
        <eParameters name="literal" eType="#/1/EString"/>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eLiterals" upperBound="-1"
          eType="#/1/EEnumLiteral" containment="true" resolveProxies="false" eOpposite="#/1/EEnumLiteral/eEnum"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="EEnumLiteral" eSuperTypes="#/1/ENamedElement">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#/1/EInt"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="instance" eType="#/1/EEnumerator"
          transient="true"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="literal" eType="#/1/EString"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eEnum" eType="#/1/EEnum"
          changeable="false" transient="true" resolveProxies="false" eOpposite="#/1/EEnum/eLiterals"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="EFactory" eSuperTypes="#/1/EModelElement">
      <eOperations name="create" eType="#/1/EObject">
        <eParameters name="eClass" eType="#/1/EClass"/>
      </eOperations>
      <eOperations name="createFromString" eType="#/1/EJavaObject">
        <eParameters name="eDataType" eType="#/1/EDataType"/>
        <eParameters name="literalValue" eType="#/1/EString"/>
      </eOperations>
      <eOperations name="convertToString" eType="#/1/EString">
        <eParameters name="eDataType" eType="#/1/EDataType"/>
        <eParameters name="instanceValue" eType="#/1/EJavaObject"/>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EReference" name="ePackage" lowerBound="1"
          eType="#/1/EPackage" transient="true" resolveProxies="false" eOpposite="#/1/EPackage/eFactoryInstance"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="EModelElement" abstract="true" eSuperTypes="#/1/EObject">
      <eOperations name="getEAnnotation" eType="#/1/EAnnotation">
        <eParameters name="source" eType="#/1/EString"/>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eAnnotations" upperBound="-1"
          eType="#/1/EAnnotation" containment="true" resolveProxies="false" eOpposite="#/1/EAnnotation/eModelElement"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ENamedElement" abstract="true" eSuperTypes="#/1/EModelElement">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
        <details key="constraints" value="WellFormedName"/>
      </eAnnotations>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="#/1/EString"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="EObject">
      <eOperations name="eClass" eType="#/1/EClass"/>
      <eOperations name="eIsProxy" eType="#/1/EBoolean"/>
      <eOperations name="eResource" eType="#/1/EResource"/>
      <eOperations name="eContainer" eType="#/1/EObject"/>
      <eOperations name="eContainingFeature" eType="#/1/EStructuralFeature"/>
      <eOperations name="eContainmentFeature" eType="#/1/EReference"/>
      <eOperations name="eContents">
        <eGenericType eClassifier="#/1/EEList">
          <eTypeArguments eClassifier="#/1/EObject"/>
        </eGenericType>
      </eOperations>
      <eOperations name="eAllContents">
        <eGenericType eClassifier="#/1/ETreeIterator">
          <eTypeArguments eClassifier="#/1/EObject"/>
        </eGenericType>
      </eOperations>
      <eOperations name="eCrossReferences">
        <eGenericType eClassifier="#/1/EEList">
          <eTypeArguments eClassifier="#/1/EObject"/>
        </eGenericType>
      </eOperations>
      <eOperations name="eGet" eType="#/1/EJavaObject">
        <eParameters name="feature" eType="#/1/EStructuralFeature"/>
      </eOperations>
      <eOperations name="eGet" eType="#/1/EJavaObject">
        <eParameters name="feature" eType="#/1/EStructuralFeature"/>
        <eParameters name="resolve" eType="#/1/EBoolean"/>
      </eOperations>
      <eOperations name="eSet">
        <eParameters name="feature" eType="#/1/EStructuralFeature"/>
        <eParameters name="newValue" eType="#/1/EJavaObject"/>
      </eOperations>
      <eOperations name="eIsSet" eType="#/1/EBoolean">
        <eParameters name="feature" eType="#/1/EStructuralFeature"/>
      </eOperations>
      <eOperations name="eUnset">
        <eParameters name="feature" eType="#/1/EStructuralFeature"/>
      </eOperations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="EOperation" eSuperTypes="#/1/ETypedElement">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
        <details key="constraints" value="UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid"/>
      </eAnnotations>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eContainingClass" eType="#/1/EClass"
          changeable="false" transient="true" resolveProxies="false" eOpposite="#/1/EClass/eOperations"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeParameters" upperBound="-1"
          eType="#/1/ETypeParameter" containment="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eParameters" upperBound="-1"
          eType="#/1/EParameter" containment="true" resolveProxies="false" eOpposite="#/1/EParameter/eOperation"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eExceptions" upperBound="-1"
          eType="#/1/EClassifier" unsettable="true">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="suppressedIsSetVisibility" value="true"/>
          <details key="suppressedUnsetVisibility" value="true"/>
        </eAnnotations>
      </eStructuralFeatures>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eGenericExceptions" upperBound="-1"
          eType="#/1/EGenericType" unsettable="true" containment="true" resolveProxies="false">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="suppressedIsSetVisibility" value="true"/>
          <details key="suppressedUnsetVisibility" value="true"/>
        </eAnnotations>
      </eStructuralFeatures>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="EPackage" eSuperTypes="#/1/ENamedElement">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
        <details key="constraints" value="WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs"/>
      </eAnnotations>
      <eOperations name="getEClassifier" eType="#/1/EClassifier">
        <eParameters name="name" eType="#/1/EString"/>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="nsURI" eType="#/1/EString"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="nsPrefix" eType="#/1/EString"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eFactoryInstance" lowerBound="1"
          eType="#/1/EFactory" transient="true" resolveProxies="false" eOpposite="#/1/EFactory/ePackage"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eClassifiers" upperBound="-1"
          eType="#/1/EClassifier" containment="true" eOpposite="#/1/EClassifier/ePackage"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eSubpackages" upperBound="-1"
          eType="#/1/EPackage" containment="true" eOpposite="#/1/EPackage/eSuperPackage"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eSuperPackage" eType="#/1/EPackage"
          changeable="false" transient="true" eOpposite="#/1/EPackage/eSubpackages"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="EParameter" eSuperTypes="#/1/ETypedElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="eOperation" eType="#/1/EOperation"
          changeable="false" transient="true" resolveProxies="false" eOpposite="#/1/EOperation/eParameters"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="EReference" eSuperTypes="#/1/EStructuralFeature">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
        <details key="constraints" value="ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique"/>
      </eAnnotations>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="containment" eType="#/1/EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="container" eType="#/1/EBoolean"
          changeable="false" volatile="true" transient="true" derived="true"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="resolveProxies" eType="#/1/EBoolean"
          defaultValueLiteral="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eOpposite" eType="#/1/EReference"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eReferenceType" lowerBound="1"
          eType="#/1/EClass" changeable="false" volatile="true" transient="true" derived="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eKeys" upperBound="-1"
          eType="#/1/EAttribute"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="EStructuralFeature" abstract="true"
        eSuperTypes="#/1/ETypedElement">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
        <details key="constraints" value="ValidDefaultValueLiteral"/>
      </eAnnotations>
      <eOperations name="getFeatureID" eType="#/1/EInt"/>
      <eOperations name="getContainerClass">
        <eGenericType eClassifier="#/1/EJavaClass">
          <eTypeArguments/>
        </eGenericType>
      </eOperations>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="changeable" eType="#/1/EBoolean"
          defaultValueLiteral="true"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="volatile" eType="#/1/EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="transient" eType="#/1/EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValueLiteral"
          eType="#/1/EString"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" eType="#/1/EJavaObject"
          changeable="false" volatile="true" transient="true" derived="true"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="unsettable" eType="#/1/EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="derived" eType="#/1/EBoolean"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eContainingClass" eType="#/1/EClass"
          changeable="false" transient="true" resolveProxies="false" eOpposite="#/1/EClass/eStructuralFeatures"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ETypedElement" abstract="true" eSuperTypes="#/1/ENamedElement">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
        <details key="constraints" value="ValidLowerBound ValidUpperBound ConsistentBounds ValidType"/>
      </eAnnotations>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="ordered" eType="#/1/EBoolean"
          defaultValueLiteral="true"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="unique" eType="#/1/EBoolean"
          defaultValueLiteral="true"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" eType="#/1/EInt"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" eType="#/1/EInt"
          defaultValueLiteral="1"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="many" eType="#/1/EBoolean"
          changeable="false" volatile="true" transient="true" derived="true"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="required" eType="#/1/EBoolean"
          changeable="false" volatile="true" transient="true" derived="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eType" eType="#/1/EClassifier"
          volatile="true" unsettable="true">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="suppressedIsSetVisibility" value="true"/>
          <details key="suppressedUnsetVisibility" value="true"/>
        </eAnnotations>
      </eStructuralFeatures>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eGenericType" eType="#/1/EGenericType"
          volatile="true" unsettable="true" containment="true" resolveProxies="false">
        <eAnnotations source="http://www.eclipse.org/emf/2002/GenModel">
          <details key="suppressedIsSetVisibility" value="true"/>
          <details key="suppressedUnsetVisibility" value="true"/>
        </eAnnotations>
      </eStructuralFeatures>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="EBigDecimal" instanceClassName="java.math.BigDecimal">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="baseType" value="http://www.w3.org/2001/XMLSchema#decimal"/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="EBigInteger" instanceClassName="java.math.BigInteger">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="baseType" value="http://www.w3.org/2001/XMLSchema#integer"/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="EBoolean" instanceClassName="boolean">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="baseType" value="http://www.w3.org/2001/XMLSchema#boolean"/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="EBooleanObject" instanceClassName="java.lang.Boolean">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="baseType" value="EBoolean"/>
        <details key="name" value="EBoolean:Object"/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="EByte" instanceClassName="byte">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="baseType" value="http://www.w3.org/2001/XMLSchema#byte"/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="EByteArray" instanceClassName="byte[]">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="baseType" value="http://www.w3.org/2001/XMLSchema#hexBinary"/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="EByteObject" instanceClassName="java.lang.Byte">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="baseType" value="EByte"/>
        <details key="name" value="EByte:Object"/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="EChar" instanceClassName="char"/>
    <eClassifiers xsi:type="ecore:EDataType" name="ECharacterObject" instanceClassName="java.lang.Character">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="baseType" value="EChar"/>
        <details key="name" value="EChar:Object"/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="EDate" instanceClassName="java.util.Date"/>
    <eClassifiers xsi:type="ecore:EDataType" name="EDiagnosticChain" instanceClassName="org.eclipse.emf.common.util.DiagnosticChain"
        serializable="false"/>
    <eClassifiers xsi:type="ecore:EDataType" name="EDouble" instanceClassName="double">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="baseType" value="http://www.w3.org/2001/XMLSchema#double"/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="EDoubleObject" instanceClassName="java.lang.Double">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="baseType" value="EDouble"/>
        <details key="name" value="EDouble:Object"/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="EEList" instanceClassName="org.eclipse.emf.common.util.EList"
        serializable="false">
      <eTypeParameters name="E"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="EEnumerator" instanceClassName="org.eclipse.emf.common.util.Enumerator"
        serializable="false"/>
    <eClassifiers xsi:type="ecore:EDataType" name="EFeatureMap" instanceClassName="org.eclipse.emf.ecore.util.FeatureMap"
        serializable="false"/>
    <eClassifiers xsi:type="ecore:EDataType" name="EFeatureMapEntry" instanceClassName="org.eclipse.emf.ecore.util.FeatureMap$Entry"
        serializable="false"/>
    <eClassifiers xsi:type="ecore:EDataType" name="EFloat" instanceClassName="float">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="baseType" value="http://www.w3.org/2001/XMLSchema#float"/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="EFloatObject" instanceClassName="java.lang.Float">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="baseType" value="EFloat"/>
        <details key="name" value="EFloat:Object"/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="EInt" instanceClassName="int">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="baseType" value="http://www.w3.org/2001/XMLSchema#int"/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="EIntegerObject" instanceClassName="java.lang.Integer">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="baseType" value="EInt"/>
        <details key="name" value="EInt:Object"/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="EJavaClass" instanceClassName="java.lang.Class">
      <eTypeParameters name="T"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="EJavaObject" instanceClassName="java.lang.Object"/>
    <eClassifiers xsi:type="ecore:EDataType" name="ELong" instanceClassName="long">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="baseType" value="http://www.w3.org/2001/XMLSchema#long"/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="ELongObject" instanceClassName="java.lang.Long">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="baseType" value="ELong"/>
        <details key="name" value="ELong:Object"/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="EMap" instanceClassName="java.util.Map"
        serializable="false">
      <eTypeParameters name="K"/>
      <eTypeParameters name="V"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="EResource" instanceClassName="org.eclipse.emf.ecore.resource.Resource"
        serializable="false"/>
    <eClassifiers xsi:type="ecore:EDataType" name="EResourceSet" instanceClassName="org.eclipse.emf.ecore.resource.ResourceSet"
        serializable="false"/>
    <eClassifiers xsi:type="ecore:EDataType" name="EShort" instanceClassName="short">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="baseType" value="http://www.w3.org/2001/XMLSchema#short"/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="EShortObject" instanceClassName="java.lang.Short">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="baseType" value="EShort"/>
        <details key="name" value="EShort:Object"/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="EString" instanceClassName="java.lang.String">
      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
        <details key="baseType" value="http://www.w3.org/2001/XMLSchema#string"/>
      </eAnnotations>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="EStringToStringMapEntry" instanceClassName="java.util.Map$Entry">
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="#/1/EString"/>
      <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#/1/EString"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EDataType" name="ETreeIterator" instanceClassName="org.eclipse.emf.common.util.TreeIterator"
        serializable="false">
      <eTypeParameters name="E"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="EGenericType" eSuperTypes="#/1/EObject">
      <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
        <details key="constraints" value="ConsistentType ConsistentBounds ConsistentArguments"/>
      </eAnnotations>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eUpperBound" eType="#/1/EGenericType"
          containment="true" resolveProxies="false"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeArguments" upperBound="-1"
          eType="#/1/EGenericType" containment="true" resolveProxies="false"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eRawType" lowerBound="1"
          eType="#/1/EClassifier" changeable="false" transient="true" derived="true"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eLowerBound" eType="#/1/EGenericType"
          containment="true" resolveProxies="false"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeParameter" eType="#/1/ETypeParameter"
          resolveProxies="false"/>
      <eStructuralFeatures xsi:type="ecore:EReference" name="eClassifier" eType="#/1/EClassifier"/>
    </eClassifiers>
    <eClassifiers xsi:type="ecore:EClass" name="ETypeParameter" eSuperTypes="#/1/ENamedElement">
      <eStructuralFeatures xsi:type="ecore:EReference" name="eBounds" upperBound="-1"
          eType="#/1/EGenericType" containment="true" resolveProxies="false"/>
    </eClassifiers>
  </ecore:EPackage>
</xmi:XMI>
