| @M | |
| Resource extlibraryResource { | |
| URI = "extlibrary"; | |
| contentType = "ECore"; | |
| content += extlibrary; | |
| } | |
| new EPackage extlibrary { | |
| nsURI = "http://www.eclipse.org/Intent/Extlibrary/1.0.0"; | |
| nsPrefix = "extlib"; | |
| } | |
| extlibrary { | |
| eClassifiers += new EClass Book { | |
| eStructuralFeatures += new EAttribute { | |
| name = "title"; | |
| eType = EString; | |
| changeable = "true"; | |
| ordered = "true"; | |
| }; | |
| eStructuralFeatures += new EReference book_writer { | |
| name = "author"; | |
| eType = Writer; | |
| lowerBound = "1"; | |
| changeable = "true"; | |
| ordered = "true"; | |
| eOpposite = writer_books; | |
| }; | |
| }; | |
| } | |
| @Annotation javaDoc documentation="Number of pages of a Book. By default, we set it to 100." | |
| Book { | |
| eStructuralFeatures += new EAttribute { | |
| name = "pages"; | |
| eType = EInt; | |
| changeable = "true"; | |
| defaultValueLiteral = "100"; | |
| ordered = "true"; | |
| }; | |
| } | |
| extlibrary { | |
| eClassifiers += new EEnum BookCategory { | |
| serializable = "true"; | |
| eLiterals += new EEnumLiteral { | |
| name = "Mystery"; | |
| literal = "Mystery"; | |
| value = "0"; | |
| }; | |
| eLiterals += new EEnumLiteral { | |
| name = "ScienceFiction"; | |
| literal = "ScienceFiction"; | |
| value = "1"; | |
| }; | |
| eLiterals += new EEnumLiteral { | |
| name = "Biography"; | |
| literal = "Biography"; | |
| value = "2"; | |
| }; | |
| }; | |
| } | |
| Book { | |
| eStructuralFeatures += new EAttribute { | |
| name = "category"; | |
| eType = BookCategory; | |
| changeable = "true"; | |
| ordered = "true"; | |
| unsettable = "true"; | |
| }; | |
| eSuperTypes += CirculatingItem; | |
| } | |
| extlibrary { | |
| eClassifiers += new EClass Library { | |
| eSuperTypes += Addressable; | |
| eStructuralFeatures += new EAttribute { | |
| name = "name"; | |
| eType = EString; | |
| changeable = "true"; | |
| ordered = "true"; | |
| }; | |
| eStructuralFeatures += new EReference { | |
| name = "writers"; | |
| eType = Writer; | |
| containment = "true"; | |
| resolveProxies = "false"; | |
| upperBound = "-1"; | |
| changeable = "true"; | |
| derived = "true"; | |
| ordered = "true"; | |
| transient = "true"; | |
| volatile = "true"; | |
| }; | |
| eStructuralFeatures += new EReference { | |
| name = "stock"; | |
| eType = Item; | |
| containment = "true"; | |
| resolveProxies = "false"; | |
| upperBound = "-1"; | |
| changeable = "true"; | |
| ordered = "false"; | |
| }; | |
| eStructuralFeatures += new EReference { | |
| name = "books"; | |
| eType = Book; | |
| upperBound = "-1"; | |
| changeable = "true"; | |
| derived = "true"; | |
| transient = "true"; | |
| ordered = "false"; | |
| }; | |
| }; | |
| } | |
| Library { | |
| eStructuralFeatures += new EReference { | |
| name = "employees"; | |
| eType = Employee; | |
| containment = "true"; | |
| resolveProxies = "false"; | |
| upperBound = "-1"; | |
| changeable = "true"; | |
| derived = "true"; | |
| ordered = "true"; | |
| transient = "true"; | |
| volatile = "true"; | |
| }; | |
| eStructuralFeatures += new EReference { | |
| name = "borrowers"; | |
| eType = Borrower; | |
| containment = "true"; | |
| resolveProxies = "false"; | |
| upperBound = "-1"; | |
| changeable = "true"; | |
| derived = "true"; | |
| ordered = "false"; | |
| transient = "true"; | |
| volatile = "true"; | |
| }; | |
| eStructuralFeatures += new EAttribute { | |
| name = "people"; | |
| eType = EFeatureMapEntry; | |
| upperBound = "-1"; | |
| changeable = "true"; | |
| ordered = "true"; | |
| }; | |
| } | |
| Library { | |
| eStructuralFeatures += new EReference lib_branches { | |
| name = "branches"; | |
| eType = Library; | |
| containment = "true"; | |
| upperBound = "-1"; | |
| changeable = "true"; | |
| ordered = "true"; | |
| eOpposite = lib_parentBranch; | |
| }; | |
| eStructuralFeatures += new EReference lib_parentBranch { | |
| name = "parentBranch"; | |
| eType = Library; | |
| container = "true"; | |
| changeable = "true"; | |
| ordered = "true"; | |
| eOpposite = lib_branches; | |
| }; | |
| } | |
| extlibrary { | |
| eClassifiers += new EClass Writer { | |
| eSuperTypes += Person; | |
| eStructuralFeatures += new EAttribute { | |
| name = "name"; | |
| eType = EString; | |
| changeable = "true"; | |
| ordered = "true"; | |
| transient = "true"; | |
| volatile = "true"; | |
| }; | |
| eStructuralFeatures += new EReference writer_books { | |
| name = "books"; | |
| eType = Book; | |
| upperBound = "-1"; | |
| changeable = "true"; | |
| ordered = "true"; | |
| eOpposite = book_writer; | |
| }; | |
| }; | |
| } | |
| extlibrary { | |
| eClassifiers += new EClass Item { | |
| abstract = "true"; | |
| eStructuralFeatures += new EAttribute { | |
| name = "publicationDate"; | |
| eType = EDate; | |
| changeable = "true"; | |
| ordered = "true"; | |
| }; | |
| }; | |
| } | |
| extlibrary { | |
| eClassifiers += new EClass Lendable { | |
| abstract = "true"; | |
| interface = "true"; | |
| eStructuralFeatures += new EAttribute { | |
| name = "copies"; | |
| eType = EInt; | |
| lowerBound = "1"; | |
| changeable = "true"; | |
| ordered = "true"; | |
| }; | |
| eStructuralFeatures += new EReference lendable_borrowers { | |
| name = "borrowers"; | |
| eType = Borrower; | |
| upperBound = "-1"; | |
| changeable = "true"; | |
| eOpposite = borrowed; | |
| ordered = "true"; | |
| }; | |
| }; | |
| } | |
| extlibrary { | |
| eClassifiers += new EClass CirculatingItem { | |
| abstract = "true"; | |
| eSuperTypes += [ Item , Lendable ]; | |
| }; | |
| } | |
| extlibrary { | |
| eClassifiers += new EClass Periodical { | |
| abstract = "true"; | |
| eSuperTypes += Item; | |
| eStructuralFeatures += new EAttribute { | |
| name = "title"; | |
| eType = EString; | |
| changeable = "true"; | |
| ordered = "true"; | |
| }; | |
| eStructuralFeatures += new EAttribute { | |
| name = "issuesPerYear"; | |
| eType = EInt; | |
| lowerBound = "1"; | |
| changeable = "true"; | |
| ordered = "true"; | |
| }; | |
| }; | |
| } | |
| extlibrary { | |
| eClassifiers += new EClass AudioVisualItem { | |
| eSuperTypes += CirculatingItem; | |
| abstract = "true"; | |
| eStructuralFeatures += new EAttribute { | |
| name = "title"; | |
| eType = EString; | |
| changeable = "true"; | |
| ordered = "true"; | |
| }; | |
| eStructuralFeatures += new EAttribute { | |
| name = "minutesLength"; | |
| eType = EInt; | |
| lowerBound = "1"; | |
| changeable = "true"; | |
| ordered = "true"; | |
| }; | |
| eStructuralFeatures += new EAttribute { | |
| name = "damaged"; | |
| eType = EBoolean; | |
| changeable = "true"; | |
| ordered = "true"; | |
| }; | |
| }; | |
| } | |
| extlibrary { | |
| eClassifiers += new EClass BookOnTape { | |
| eSuperTypes += AudioVisualItem; | |
| eStructuralFeatures += new EReference { | |
| name = "reader"; | |
| eType = Person; | |
| changeable = "true"; | |
| ordered = "true"; | |
| }; | |
| eStructuralFeatures += new EReference { | |
| name = "author"; | |
| eType = Writer; | |
| changeable = "true"; | |
| ordered = "true"; | |
| }; | |
| }; | |
| } | |
| extlibrary { | |
| eClassifiers += new EClass VideoCassette { | |
| eSuperTypes += AudioVisualItem; | |
| eStructuralFeatures += new EReference { | |
| name = "cast"; | |
| eType = Person; | |
| upperBound = "-1"; | |
| changeable = "true"; | |
| ordered = "true"; | |
| }; | |
| }; | |
| } | |
| extlibrary { | |
| eClassifiers += new EClass Borrower { | |
| eSuperTypes += Person; | |
| eStructuralFeatures += new EReference borrowed { | |
| name = "borrowed"; | |
| eType = Lendable; | |
| upperBound = "-1"; | |
| changeable = "true"; | |
| ordered = "true"; | |
| eOpposite = lendable_borrowers; | |
| }; | |
| }; | |
| } | |
| extlibrary { | |
| eClassifiers += new EClass Person { | |
| eSuperTypes += Addressable; | |
| eStructuralFeatures += new EAttribute { | |
| name = "firstName"; | |
| eType = EString; | |
| lowerBound = "1"; | |
| changeable = "true"; | |
| ordered = "true"; | |
| }; | |
| eStructuralFeatures += new EAttribute { | |
| name = "lastName"; | |
| eType = EString; | |
| lowerBound = "1"; | |
| changeable = "true"; | |
| ordered = "true"; | |
| }; | |
| }; | |
| } | |
| extlibrary { | |
| eClassifiers += new EClass Employee { | |
| eSuperTypes += Person; | |
| eStructuralFeatures += new EReference { | |
| name = "manager"; | |
| eType = Employee; | |
| changeable = "true"; | |
| ordered = "true"; | |
| }; | |
| }; | |
| } | |
| extlibrary { | |
| eClassifiers += new EClass Addressable { | |
| abstract = "true"; | |
| interface = "true"; | |
| eStructuralFeatures += new EAttribute { | |
| name = "address"; | |
| eType = EString; | |
| changeable = "true"; | |
| ordered = "true"; | |
| }; | |
| }; | |
| } | |
| M@ |