blob: 28a060541d9898aaa0df9b6e2658049d36fa8864 [file] [log] [blame]
--import '/org.eclipse.emf.examples.library/model/extlibrary.ecore'
package extlibrary
context Library
-- get all books with a title in a library and its branches (recursively)
def: getBooks(title : String) : Set(Book) =
books->select(b | b.title = title)->asSet()->union(
branches.getBooks(title)->asSet())
context Book
-- the library containing a book
def: library : Library = Library.allInstances()->any(books->includes(self))
-- book titles are unique within their library branch (and its sub-branches)
inv unique_title: not library.oclIsUndefined() implies
library.getBooks(title) = Set{self}
endpackage