diff --git a/src/test/java/de/tudresden/inf/st/e2j/parser/ParserTest.java b/src/test/java/de/tudresden/inf/st/e2j/parser/ParserTest.java index 7c8b0244919bc62b1913efb429c6eab521d28723..4c12e7e2dd6e7bc87a4716125974ee144335a944 100644 --- a/src/test/java/de/tudresden/inf/st/e2j/parser/ParserTest.java +++ b/src/test/java/de/tudresden/inf/st/e2j/parser/ParserTest.java @@ -5,13 +5,15 @@ import de.tudresden.inf.st.e2j.jastadd.model.EPackage; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; +import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; +import java.io.PrintWriter; class ParserTest { @Test - void parsePackage() { + void parseBigraph() { EObject ePackage = null; @@ -36,6 +38,47 @@ class ParserTest { p.writeXMI(b); + try (PrintWriter out = new PrintWriter("bigraph_out.ecore")) { + out.println(b.toString()); + } catch (FileNotFoundException e) { + Assertions.fail("unable to write output file", e); + } + + System.out.println(b.toString()); + } + + @Test + void parseEcore() { + + EObject ePackage = null; + + final String fileName = "/ecore/ecore.ecore"; + + EcoreParser parser = new EcoreParser(); + + try (InputStream stream = this.getClass().getResourceAsStream(fileName)) { + Assertions.assertNotNull(stream, "unable to load resource '" + fileName + "'"); + ePackage = parser.parse(stream); + } catch (IOException | XMIParseException e) { + Assertions.fail(e); + } + + Assertions.assertNotNull(ePackage); + + Assertions.assertTrue(ePackage instanceof EPackage); + + EPackage p = (EPackage) ePackage; + + StringBuilder b = new StringBuilder(); + + p.writeXMI(b); + + try (PrintWriter out = new PrintWriter("ecore_out.ecore")) { + out.println(b.toString()); + } catch (FileNotFoundException e) { + Assertions.fail("unable to write output file", e); + } + System.out.println(b.toString()); } diff --git a/src/test/resources/ecore/bigraph.ecore b/src/test/resources/ecore/bigraph.ecore index db72fd127a191003ed74e6712a973bcf759409dd..e84c7e961770c515c92346bafb3819be6f0e2f24 100644 --- a/src/test/resources/ecore/bigraph.ecore +++ b/src/test/resources/ecore/bigraph.ecore @@ -2,13 +2,11 @@ <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="bigraphBaseModel" - nsURI="http://de.tudresden.inf.st.bigraphs.models" - nsPrefix="bigraphBaseModel"> + nsURI="http://de.tudresden.inf.st.bigraphs.models" nsPrefix="bigraphBaseModel"> <eClassifiers xsi:type="ecore:EClass" name="BPlace" abstract="true"> <eStructuralFeatures xsi:type="ecore:EReference" name="bChild" upperBound="-1" eType="#//BPlace" containment="true" eOpposite="#//BPlace/bPrnt"/> - <eStructuralFeatures xsi:type="ecore:EReference" name="bPrnt" eType="#//BPlace" - eOpposite="#//BPlace/bChild"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="bPrnt" eType="#//BPlace" eOpposite="#//BPlace/bChild"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="BRoot" eSuperTypes="#//BPlace"> <eStructuralFeatures xsi:type="ecore:EAttribute" name="index" @@ -27,8 +25,8 @@ eOpposite="#//BLink/bPoints"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="BLink" abstract="true" eSuperTypes="#//NameableType"> - <eStructuralFeatures xsi:type="ecore:EReference" name="bPoints" lowerBound="1" - upperBound="-1" eType="#//BPoint" eOpposite="#//BPoint/bLink"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="bPoints" lowerBound="1" upperBound="-1" eType="#//BPoint" + eOpposite="#//BPoint/bLink"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="BPort" eSuperTypes="#//BPoint"> <eStructuralFeatures xsi:type="ecore:EAttribute" name="index" @@ -41,7 +39,6 @@ <eClassifiers xsi:type="ecore:EClass" name="BOuterName" eSuperTypes="#//BLink"/> <eClassifiers xsi:type="ecore:EClass" name="NameableType" abstract="true" interface="true"> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" - eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" - iD="true"/> + eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" iD="true"/> </eClassifiers> </ecore:EPackage> diff --git a/src/test/resources/ecore/ecore.ecore b/src/test/resources/ecore/ecore.ecore new file mode 100644 index 0000000000000000000000000000000000000000..30cd5bc3f51329ab23cf3caad760e557ba71e718 --- /dev/null +++ b/src/test/resources/ecore/ecore.ecore @@ -0,0 +1,526 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="ecore" nsURI="http://www.eclipse.org/emf/2002/Ecore" nsPrefix="ecore"> + <eClassifiers xsi:type="ecore:EClass" name="EAttribute" eSuperTypes="#//EStructuralFeature"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="ConsistentTransient"/> + </eAnnotations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="iD" eType="#//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"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="WellFormed WellFormedSourceURI"/> + </eAnnotations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="source" eType="#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="details" upperBound="-1" + eType="#//EStringToStringMapEntry" containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eModelElement" eType="#//EModelElement" + transient="true" resolveProxies="false" eOpposite="#//EModelElement/eAnnotations"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="contents" upperBound="-1" + eType="#//EObject" containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="references" upperBound="-1" + eType="#//EObject"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EClass" eSuperTypes="#//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="#//EBoolean"> + <eParameters name="someClass" eType="#//EClass"/> + </eOperations> + <eOperations name="getFeatureCount" eType="#//EInt"/> + <eOperations name="getEStructuralFeature" eType="#//EStructuralFeature"> + <eParameters name="featureID" eType="#//EInt"/> + </eOperations> + <eOperations name="getFeatureID" eType="#//EInt"> + <eParameters name="feature" eType="#//EStructuralFeature"/> + </eOperations> + <eOperations name="getEStructuralFeature" eType="#//EStructuralFeature"> + <eParameters name="featureName" eType="#//EString"/> + </eOperations> + <eOperations name="getOperationCount" eType="#//EInt"/> + <eOperations name="getEOperation" eType="#//EOperation"> + <eParameters name="operationID" eType="#//EInt"/> + </eOperations> + <eOperations name="getOperationID" eType="#//EInt"> + <eParameters name="operation" eType="#//EOperation"/> + </eOperations> + <eOperations name="getOverride" eType="#//EOperation"> + <eParameters name="operation" eType="#//EOperation"/> + </eOperations> + <eOperations name="getFeatureType" eType="#//EGenericType"> + <eParameters name="feature" eType="#//EStructuralFeature"/> + </eOperations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="abstract" eType="#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="interface" eType="#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eSuperTypes" upperBound="-1" + eType="#//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="#//EOperation" containment="true" resolveProxies="false" 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" resolveProxies="false" eOpposite="#//EStructuralFeature/eContainingClass"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eGenericSuperTypes" upperBound="-1" + eType="#//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="#//EGenericType" changeable="false" volatile="true" + transient="true" derived="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EClassifier" abstract="true" eSuperTypes="#//ENamedElement"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="WellFormedInstanceTypeName UniqueTypeParameterNames"/> + </eAnnotations> + <eOperations name="isInstance" eType="#//EBoolean"> + <eParameters name="object" eType="#//EJavaObject"/> + </eOperations> + <eOperations name="getClassifierID" eType="#//EInt"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceClassName" eType="#//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="#//EJavaClass"> + <eTypeArguments/> + </eGenericType> + </eStructuralFeatures> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" eType="#//EJavaObject" + changeable="false" volatile="true" transient="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="instanceTypeName" eType="#//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="#//EPackage" + changeable="false" transient="true" eOpposite="#//EPackage/eClassifiers"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeParameters" upperBound="-1" + eType="#//ETypeParameter" containment="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EDataType" eSuperTypes="#//EClassifier"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="serializable" eType="#//EBoolean" + defaultValueLiteral="true"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EEnum" eSuperTypes="#//EDataType"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="UniqueEnumeratorNames UniqueEnumeratorLiterals"/> + </eAnnotations> + <eOperations name="getEEnumLiteral" eType="#//EEnumLiteral"> + <eParameters name="name" eType="#//EString"/> + </eOperations> + <eOperations name="getEEnumLiteral" eType="#//EEnumLiteral"> + <eParameters name="value" eType="#//EInt"/> + </eOperations> + <eOperations name="getEEnumLiteralByLiteral" eType="#//EEnumLiteral"> + <eParameters name="literal" eType="#//EString"/> + </eOperations> + <eStructuralFeatures xsi:type="ecore:EReference" name="eLiterals" upperBound="-1" + eType="#//EEnumLiteral" containment="true" resolveProxies="false" eOpposite="#//EEnumLiteral/eEnum"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EEnumLiteral" eSuperTypes="#//ENamedElement"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//EInt"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="instance" eType="#//EEnumerator" + transient="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="literal" eType="#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eEnum" eType="#//EEnum" + changeable="false" transient="true" resolveProxies="false" 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="#//EString"/> + </eOperations> + <eOperations name="convertToString" eType="#//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"> + <eOperations name="getEAnnotation" eType="#//EAnnotation"> + <eParameters name="source" eType="#//EString"/> + </eOperations> + <eStructuralFeatures xsi:type="ecore:EReference" name="eAnnotations" upperBound="-1" + eType="#//EAnnotation" containment="true" resolveProxies="false" eOpposite="#//EAnnotation/eModelElement"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ENamedElement" abstract="true" eSuperTypes="#//EModelElement"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="WellFormedName"/> + </eAnnotations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="#//EString"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EObject"> + <eOperations name="eClass" eType="#//EClass"/> + <eOperations name="eIsProxy" eType="#//EBoolean"/> + <eOperations name="eResource" eType="#//EResource"/> + <eOperations name="eContainer" eType="#//EObject"/> + <eOperations name="eContainingFeature" eType="#//EStructuralFeature"/> + <eOperations name="eContainmentFeature" eType="#//EReference"/> + <eOperations name="eContents"> + <eGenericType eClassifier="#//EEList"> + <eTypeArguments eClassifier="#//EObject"/> + </eGenericType> + </eOperations> + <eOperations name="eAllContents"> + <eGenericType eClassifier="#//ETreeIterator"> + <eTypeArguments eClassifier="#//EObject"/> + </eGenericType> + </eOperations> + <eOperations name="eCrossReferences"> + <eGenericType eClassifier="#//EEList"> + <eTypeArguments eClassifier="#//EObject"/> + </eGenericType> + </eOperations> + <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="#//EBoolean"/> + </eOperations> + <eOperations name="eSet"> + <eParameters name="feature" eType="#//EStructuralFeature"/> + <eParameters name="newValue" eType="#//EJavaObject"/> + </eOperations> + <eOperations name="eIsSet" eType="#//EBoolean"> + <eParameters name="feature" eType="#//EStructuralFeature"/> + </eOperations> + <eOperations name="eUnset"> + <eParameters name="feature" eType="#//EStructuralFeature"/> + </eOperations> + <eOperations name="eInvoke" eType="#//EJavaObject" eExceptions="#//EInvocationTargetException"> + <eParameters name="operation" eType="#//EOperation"/> + <eParameters name="arguments"> + <eGenericType eClassifier="#//EEList"> + <eTypeArguments/> + </eGenericType> + </eParameters> + </eOperations> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EOperation" eSuperTypes="#//ETypedElement"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="UniqueParameterNames UniqueTypeParameterNames NoRepeatingVoid"/> + </eAnnotations> + <eOperations name="getOperationID" eType="#//EInt"/> + <eOperations name="isOverrideOf" eType="#//EBoolean"> + <eParameters name="someOperation" eType="#//EOperation"/> + </eOperations> + <eStructuralFeatures xsi:type="ecore:EReference" name="eContainingClass" eType="#//EClass" + changeable="false" transient="true" resolveProxies="false" eOpposite="#//EClass/eOperations"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeParameters" upperBound="-1" + eType="#//ETypeParameter" containment="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eParameters" upperBound="-1" + eType="#//EParameter" containment="true" resolveProxies="false" eOpposite="#//EParameter/eOperation"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eExceptions" upperBound="-1" + eType="#//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="#//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="#//ENamedElement"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="WellFormedNsURI WellFormedNsPrefix UniqueSubpackageNames UniqueClassifierNames UniqueNsURIs"/> + </eAnnotations> + <eOperations name="getEClassifier" eType="#//EClassifier"> + <eParameters name="name" eType="#//EString"/> + </eOperations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="nsURI" eType="#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="nsPrefix" eType="#//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" resolveProxies="false" eOpposite="#//EOperation/eParameters"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EReference" eSuperTypes="#//EStructuralFeature"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="ConsistentOpposite SingleContainer ConsistentKeys ConsistentUnique ConsistentContainer"/> + </eAnnotations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="containment" eType="#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="container" eType="#//EBoolean" + changeable="false" volatile="true" transient="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="resolveProxies" eType="#//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"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eKeys" upperBound="-1" + eType="#//EAttribute"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="EStructuralFeature" abstract="true" + eSuperTypes="#//ETypedElement"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="ValidDefaultValueLiteral"/> + </eAnnotations> + <eOperations name="getFeatureID" eType="#//EInt"/> + <eOperations name="getContainerClass"> + <eGenericType eClassifier="#//EJavaClass"> + <eTypeArguments/> + </eGenericType> + </eOperations> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="changeable" eType="#//EBoolean" + defaultValueLiteral="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="volatile" eType="#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="transient" eType="#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValueLiteral" eType="#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="defaultValue" eType="#//EJavaObject" + changeable="false" volatile="true" transient="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="unsettable" eType="#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="derived" eType="#//EBoolean"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eContainingClass" eType="#//EClass" + changeable="false" transient="true" resolveProxies="false" eOpposite="#//EClass/eStructuralFeatures"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ETypedElement" abstract="true" eSuperTypes="#//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="#//EBoolean" + defaultValueLiteral="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="unique" eType="#//EBoolean" + defaultValueLiteral="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="lowerBound" eType="#//EInt"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="upperBound" eType="#//EInt" + defaultValueLiteral="1"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="many" eType="#//EBoolean" + changeable="false" volatile="true" transient="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="required" eType="#//EBoolean" + changeable="false" volatile="true" transient="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eType" eType="#//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="#//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="#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//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"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="ConsistentType ConsistentBounds ConsistentArguments"/> + </eAnnotations> + <eOperations name="isInstance" eType="#//EBoolean"> + <eParameters name="object" eType="#//EJavaObject"/> + </eOperations> + <eStructuralFeatures xsi:type="ecore:EReference" name="eUpperBound" eType="#//EGenericType" + containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeArguments" upperBound="-1" + eType="#//EGenericType" containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eRawType" lowerBound="1" + eType="#//EClassifier" changeable="false" transient="true" derived="true"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eLowerBound" eType="#//EGenericType" + containment="true" resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eTypeParameter" eType="#//ETypeParameter" + resolveProxies="false"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="eClassifier" eType="#//EClassifier"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EClass" name="ETypeParameter" eSuperTypes="#//ENamedElement"> + <eStructuralFeatures xsi:type="ecore:EReference" name="eBounds" upperBound="-1" + eType="#//EGenericType" containment="true" resolveProxies="false"/> + </eClassifiers> + <eClassifiers xsi:type="ecore:EDataType" name="EInvocationTargetException" instanceClassName="java.lang.reflect.InvocationTargetException" + serializable="false"/> +</ecore:EPackage>