<?xml version="1.0" encoding="ASCII"?>
<ecore:EPackage xmi:version="2.0"
    xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="ecore"
    nsURI="http://www.eclipse.org/emf/2002/Ecore" nsPrefix="ecore">
  <eClassifiers xsi:type="ecore:EClass" name="EAttribute" eSuperTypes="#//EStructuralFeature">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eAttributeType" lowerBound="1"
        eType="#//EDataType" changeable="false" volatile="true" transient="true" derived="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EAnnotation" eSuperTypes="#//EModelElement">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="source" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="details" upperBound="-1"
        eType="#//EStringToStringMapEntry" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eModelElement" eType="#//EModelElement"
        transient="true" eOpposite="#//EModelElement/eAnnotations"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="contents" upperBound="-1"
        eType="#//EObject" containment="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="references" upperBound="-1"
        eType="#//EObject"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EClass" eSuperTypes="#//EClassifier">
    <eOperations name="isSuperTypeOf" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
      <eParameters name="someClass" eType="#//EClass"/>
    </eOperations>
    <eOperations name="getEStructuralFeature" eType="#//EStructuralFeature">
      <eParameters name="featureID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
    </eOperations>
    <eOperations name="getEStructuralFeature" eType="#//EStructuralFeature">
      <eParameters name="featureName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="interface" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eSuperTypes" upperBound="-1"
        eType="#//EClass"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eOperations" upperBound="-1"
        eType="#//EOperation" containment="true" eOpposite="#//EOperation/eContainingClass"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eAllAttributes" upperBound="-1"
        eType="#//EAttribute" changeable="false" volatile="true" transient="true"
        derived="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eAllReferences" upperBound="-1"
        eType="#//EReference" changeable="false" volatile="true" transient="true"
        derived="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eReferences" upperBound="-1"
        eType="#//EReference" changeable="false" volatile="true" transient="true"
        derived="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eAttributes" upperBound="-1"
        eType="#//EAttribute" changeable="false" volatile="true" transient="true"
        derived="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eAllContainments" upperBound="-1"
        eType="#//EReference" changeable="false" volatile="true" transient="true"
        derived="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eAllOperations" upperBound="-1"
        eType="#//EOperation" changeable="false" volatile="true" transient="true"
        derived="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eAllStructuralFeatures"
        upperBound="-1" eType="#//EStructuralFeature" changeable="false" volatile="true"
        transient="true" derived="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eAllSuperTypes" upperBound="-1"
        eType="#//EClass" changeable="false" volatile="true" transient="true" derived="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eIDAttribute" eType="#//EAttribute"
        changeable="false" volatile="true" transient="true" derived="true" resolveProxies="false"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eStructuralFeatures" upperBound="-1"
        eType="#//EStructuralFeature" containment="true" eOpposite="#//EStructuralFeature/eContainingClass"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EClassifier" abstract="true" eSuperTypes="#//ENamedElement">
    <eOperations name="isInstance" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
      <eParameters name="object" eType="#//EJavaObject"/>
    </eOperations>
    <eOperations name="getClassifierID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceClassName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceClass" eType="#//EJavaClass"
        changeable="false" volatile="true" transient="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" eType="#//EJavaObject"
        changeable="false" volatile="true" transient="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="ePackage" eType="#//EPackage"
        changeable="false" transient="true" eOpposite="#//EPackage/eClassifiers"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EDataType" eSuperTypes="#//EClassifier">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="serializable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        defaultValueLiteral="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EEnum" eSuperTypes="#//EDataType">
    <eOperations name="getEEnumLiteral" eType="#//EEnumLiteral">
      <eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    </eOperations>
    <eOperations name="getEEnumLiteral" eType="#//EEnumLiteral">
      <eParameters name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eLiterals" upperBound="-1"
        eType="#//EEnumLiteral" containment="true" eOpposite="#//EEnumLiteral/eEnum"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EEnumLiteral" eSuperTypes="#//ENamedElement">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="instance" eType="#//EEnumerator"
        transient="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eEnum" eType="#//EEnum"
        changeable="false" transient="true" eOpposite="#//EEnum/eLiterals"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EFactory" eSuperTypes="#//EModelElement">
    <eOperations name="create" eType="#//EObject">
      <eParameters name="eClass" eType="#//EClass"/>
    </eOperations>
    <eOperations name="createFromString" eType="#//EJavaObject">
      <eParameters name="eDataType" eType="#//EDataType"/>
      <eParameters name="literalValue" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    </eOperations>
    <eOperations name="convertToString" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString">
      <eParameters name="eDataType" eType="#//EDataType"/>
      <eParameters name="instanceValue" eType="#//EJavaObject"/>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="ePackage" lowerBound="1"
        eType="#//EPackage" transient="true" resolveProxies="false" eOpposite="#//EPackage/eFactoryInstance"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EModelElement" abstract="true" eSuperTypes="#//EObject">
    <eOperations name="getEAnnotation" eType="#//EAnnotation">
      <eParameters name="source" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eAnnotations" upperBound="-1"
        eType="#//EAnnotation" containment="true" eOpposite="#//EAnnotation/eModelElement"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ENamedElement" abstract="true" eSuperTypes="#//EModelElement">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EObject">
    <eOperations name="eClass" eType="#//EClass"/>
    <eOperations name="eIsProxy" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eOperations name="eResource" eType="#//EResource"/>
    <eOperations name="eContainer" eType="#//EObject"/>
    <eOperations name="eContainingFeature" eType="#//EStructuralFeature"/>
    <eOperations name="eContainmentFeature" eType="#//EReference"/>
    <eOperations name="eContents" eType="#//EEList"/>
    <eOperations name="eAllContents" eType="#//ETreeIterator"/>
    <eOperations name="eCrossReferences" eType="#//EEList"/>
    <eOperations name="eGet" eType="#//EJavaObject">
      <eParameters name="feature" eType="#//EStructuralFeature"/>
    </eOperations>
    <eOperations name="eGet" eType="#//EJavaObject">
      <eParameters name="feature" eType="#//EStructuralFeature"/>
      <eParameters name="resolve" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    </eOperations>
    <eOperations name="eSet">
      <eParameters name="feature" eType="#//EStructuralFeature"/>
      <eParameters name="newValue" eType="#//EJavaObject"/>
    </eOperations>
    <eOperations name="eIsSet" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean">
      <eParameters name="feature" eType="#//EStructuralFeature"/>
    </eOperations>
    <eOperations name="eUnset">
      <eParameters name="feature" eType="#//EStructuralFeature"/>
    </eOperations>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EOperation" eSuperTypes="#//ETypedElement">
    <eStructuralFeatures xsi:type="ecore:EReference" name="eContainingClass" eType="#//EClass"
        changeable="false" transient="true" eOpposite="#//EClass/eOperations"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eParameters" upperBound="-1"
        eType="#//EParameter" containment="true" eOpposite="#//EParameter/eOperation"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eExceptions" upperBound="-1"
        eType="#//EClassifier"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EPackage" eSuperTypes="#//ENamedElement">
    <eOperations name="getEClassifier" eType="#//EClassifier">
      <eParameters name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    </eOperations>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="nsURI" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="nsPrefix" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eFactoryInstance" lowerBound="1"
        eType="#//EFactory" transient="true" resolveProxies="false" eOpposite="#//EFactory/ePackage"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eClassifiers" upperBound="-1"
        eType="#//EClassifier" containment="true" eOpposite="#//EClassifier/ePackage"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eSubpackages" upperBound="-1"
        eType="#//EPackage" containment="true" eOpposite="#//EPackage/eSuperPackage"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eSuperPackage" eType="#//EPackage"
        changeable="false" transient="true" eOpposite="#//EPackage/eSubpackages"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EParameter" eSuperTypes="#//ETypedElement">
    <eStructuralFeatures xsi:type="ecore:EReference" name="eOperation" eType="#//EOperation"
        changeable="false" transient="true" eOpposite="#//EOperation/eParameters"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EReference" eSuperTypes="#//EStructuralFeature">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="containment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="container" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        changeable="false" volatile="true" transient="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="resolveProxies" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        defaultValueLiteral="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eOpposite" eType="#//EReference"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eReferenceType" lowerBound="1"
        eType="#//EClass" changeable="false" volatile="true" transient="true" derived="true"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="EStructuralFeature" abstract="true"
      eSuperTypes="#//ETypedElement">
    <eOperations name="getFeatureID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
    <eOperations name="getContainerClass" eType="#//EJavaClass"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="changeable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        defaultValueLiteral="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="volatile" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="transient" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValueLiteral" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" eType="#//EJavaObject"
        changeable="false" volatile="true" transient="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="unsettable" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="derived" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eContainingClass" eType="#//EClass"
        changeable="false" transient="true" eOpposite="#//EClass/eStructuralFeatures"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EClass" name="ETypedElement" abstract="true" eSuperTypes="#//ENamedElement">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="ordered" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        defaultValueLiteral="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="unique" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        defaultValueLiteral="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"
        defaultValueLiteral="1"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="many" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        changeable="false" volatile="true" transient="true"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="required" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
        changeable="false" volatile="true" transient="true"/>
    <eStructuralFeatures xsi:type="ecore:EReference" name="eType" eType="#//EClassifier"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EDataType" name="EBigDecimal" instanceClassName="java.math.BigDecimal"/>
  <eClassifiers xsi:type="ecore:EDataType" name="EBigInteger" instanceClassName="java.math.BigInteger"/>
  <eClassifiers xsi:type="ecore:EDataType" name="EBoolean" instanceClassName="boolean"/>
  <eClassifiers xsi:type="ecore:EDataType" name="EBooleanObject" instanceClassName="java.lang.Boolean"/>
  <eClassifiers xsi:type="ecore:EDataType" name="EByte" instanceClassName="byte"/>
  <eClassifiers xsi:type="ecore:EDataType" name="EByteArray" instanceClassName="byte[]"/>
  <eClassifiers xsi:type="ecore:EDataType" name="EByteObject" instanceClassName="java.lang.Byte"/>
  <eClassifiers xsi:type="ecore:EDataType" name="EChar" instanceClassName="char"/>
  <eClassifiers xsi:type="ecore:EDataType" name="ECharacterObject" instanceClassName="java.lang.Character"/>
  <eClassifiers xsi:type="ecore:EDataType" name="EDate" instanceClassName="java.util.Date"/>
  <eClassifiers xsi:type="ecore:EDataType" name="EDouble" instanceClassName="double"/>
  <eClassifiers xsi:type="ecore:EDataType" name="EDoubleObject" instanceClassName="java.lang.Double"/>
  <eClassifiers xsi:type="ecore:EDataType" name="EEList" instanceClassName="org.eclipse.emf.common.util.EList"
      serializable="false"/>
  <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"/>
  <eClassifiers xsi:type="ecore:EDataType" name="EFloat" instanceClassName="float"/>
  <eClassifiers xsi:type="ecore:EDataType" name="EFloatObject" instanceClassName="java.lang.Float"/>
  <eClassifiers xsi:type="ecore:EDataType" name="EInt" instanceClassName="int"/>
  <eClassifiers xsi:type="ecore:EDataType" name="EIntegerObject" instanceClassName="java.lang.Integer"/>
  <eClassifiers xsi:type="ecore:EDataType" name="EJavaClass" instanceClassName="java.lang.Class"/>
  <eClassifiers xsi:type="ecore:EDataType" name="EJavaObject" instanceClassName="java.lang.Object"
      serializable="false"/>
  <eClassifiers xsi:type="ecore:EDataType" name="ELong" instanceClassName="long"/>
  <eClassifiers xsi:type="ecore:EDataType" name="ELongObject" instanceClassName="java.lang.Long"/>
  <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"/>
  <eClassifiers xsi:type="ecore:EDataType" name="EShortObject" instanceClassName="java.lang.Short"/>
  <eClassifiers xsi:type="ecore:EDataType" name="EString" instanceClassName="java.lang.String"/>
  <eClassifiers xsi:type="ecore:EClass" name="EStringToStringMapEntry" instanceClassName="java.util.Map$Entry">
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
    <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
  </eClassifiers>
  <eClassifiers xsi:type="ecore:EDataType" name="ETreeIterator" instanceClassName="org.eclipse.emf.common.util.TreeIterator"
      serializable="false"/>
</ecore:EPackage>
