| <?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="library" |
| nsURI="http:///org/eclipse/emf/examples/library/library.ecore/1.0.0" nsPrefix="lib"> |
| <eClassifiers xsi:type="ecore:EClass" name="Book" eSuperTypes="#//CirculatingItem"> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="pages" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt" |
| defaultValueLiteral="100"/> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="category" eType="#//BookCategory" |
| unsettable="true"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="author" lowerBound="1" |
| eType="#//Writer" eOpposite="#//Writer/books"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Library" eSuperTypes="#//Addressable"> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="writers" upperBound="-1" |
| eType="#//Writer" volatile="true" transient="true" derived="true" containment="true" |
| resolveProxies="false"> |
| <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> |
| <details key="group" value="#people"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="employees" upperBound="-1" |
| eType="#//Employee" volatile="true" transient="true" derived="true" containment="true" |
| resolveProxies="false"> |
| <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> |
| <details key="group" value="#people"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="borrowers" upperBound="-1" |
| eType="#//Borrower" volatile="true" transient="true" derived="true" containment="true" |
| resolveProxies="false"> |
| <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> |
| <details key="group" value="#people"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="stock" ordered="false" |
| upperBound="-1" eType="#//Item" containment="true" resolveProxies="false"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="books" ordered="false" |
| upperBound="-1" eType="#//Book" transient="true" derived="true"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="branches" upperBound="-1" |
| eType="#//Library" containment="true" eOpposite="#//Library/parentBranch"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="parentBranch" eType="#//Library" |
| eOpposite="#//Library/branches"/> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="people" upperBound="-1" |
| eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry"> |
| <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> |
| <details key="kind" value="group"/> |
| </eAnnotations> |
| </eStructuralFeatures> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Writer" eSuperTypes="#//Person"> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" |
| volatile="true" transient="true"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="books" upperBound="-1" |
| eType="#//Book" eOpposite="#//Book/author"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EEnum" name="BookCategory"> |
| <eLiterals name="Mystery"/> |
| <eLiterals name="ScienceFiction" value="1"/> |
| <eLiterals name="Biography" value="2"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Item" abstract="true"> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="publicationDate" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EDate"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Lendable" abstract="true" interface="true"> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="copies" lowerBound="1" |
| eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="borrowers" ordered="false" |
| upperBound="-1" eType="#//Borrower" eOpposite="#//Borrower/borrowed"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="CirculatingItem" abstract="true" eSuperTypes="#//Item #//Lendable"/> |
| <eClassifiers xsi:type="ecore:EClass" name="Periodical" abstract="true" eSuperTypes="#//Item"> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="issuesPerYear" lowerBound="1" |
| eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="AudioVisualItem" abstract="true" eSuperTypes="#//CirculatingItem"> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="title" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="minutesLength" lowerBound="1" |
| eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="damaged" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="BookOnTape" eSuperTypes="#//AudioVisualItem"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="reader" eType="#//Person"/> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="author" eType="#//Writer"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="VideoCassette" eSuperTypes="#//AudioVisualItem"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="cast" upperBound="-1" eType="#//Person"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Borrower" eSuperTypes="#//Person"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="borrowed" upperBound="-1" |
| eType="#//Lendable" eOpposite="#//Lendable/borrowers"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Person" eSuperTypes="#//Addressable"> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="firstName" lowerBound="1" |
| eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="lastName" lowerBound="1" |
| eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Employee" eSuperTypes="#//Person"> |
| <eStructuralFeatures xsi:type="ecore:EReference" name="manager" eType="#//Employee"/> |
| </eClassifiers> |
| <eClassifiers xsi:type="ecore:EClass" name="Addressable" abstract="true" interface="true"> |
| <eStructuralFeatures xsi:type="ecore:EAttribute" name="address" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> |
| </eClassifiers> |
| </ecore:EPackage> |