blob: 4efc0b32a2ba49f2372e53e3fee10184b50cdbd5 [file] [log] [blame]
import 'http:///org/eclipse/emf/examples/library/extlibrary.ecore/1.0.0'
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