7. Possible Variations and Extensions

7.1. Set-valued versus ordered-set-valued reference properties

In Java,both set-valued and ordered-set-valued reference properties, such as Author::authoredBooks and Book::authors in the example model below, can be implemented with the pre-defined generic interface type List<T> as their range. However, it seems that set-valued reference properties should be rather implemented with Set<T>, such as declaring Set<Book> as the range of Author::authoredBooks, while ordered-set-valued reference properties should be implemented with SortedSet<T>, such as declaring SortedSet<Author> as the range of Book::authors. This issue has still to be investigated for future editions of this tutorial.

Figure 13.1. An example with a set-valued reference property authoredBooks and an ordered-set-valued reference property authors

An example with a set-valued reference property authoredBooks and an ordered-set-valued reference property authors