/**
* The refinement mapping for the SortedSet specification.
*
* Project Quest.
*
* @author Gloss
* @version 1.0 - 23/Nov/2012
**/
refinement
TotalOrder is E {
geq: Orderable e:Orderable is boolean isGreaterEq(E e);
}
SortedSet[TotalOrder] is TreeSet {
empty: --> SortedSet[Orderable] is
TreeSet();
insert: SortedSet[Orderable] e:Orderable --> SortedSet[Orderable] is
void add(E e);
isEmpty: SortedSet[Orderable] is
boolean isEmpty();
isIn: SortedSet[Orderable] e:Orderable is
boolean isIn(E e);
isSubset: SortedSet[Orderable] s:SortedSet[Orderable] is
boolean isSubset(TreeSet s);
largest: SortedSet[Orderable] -->? Orderable is E last();
union: SortedSet[Orderable] s:SortedSet[Orderable] --> SortedSet[Orderable] is
void addAll(TreeSet s);
tailSet: SortedSet[Orderable] e:Orderable --> SortedSet[Orderable] is TreeSet tailSet(E e);
}
end refinement