| |
Angenommene Spezifikation UML Ocl 2,0 143 flatten(): Set(T2) Wenn die Elementart nicht eine Ansammlungsart dieses Resultat im gleichen Selbst ist . Wenn die Elementart eine Ansammlungsart ist, das Resultat ist der Satz, der alle Elemente aller Elemente von Selbst enthält . Pfosten: Resultat = wenn self.type.elementType.oclIsKindOf(CollectionType) dann Selbst->iterate(c; Akkumulator: Set() = Set{ }| Akkumulator->union(c->asSet())) sonst Selbst endif asSet(): Set(T) Ein Satz identisch zum Selbst. Dieser Betrieb besteht aus Hilfsgründen. Pfosten: Resultat = Selbst asOrderedSet(): OrderedSet(T) Ein OrderedSet, das alle Elemente vom Selbst enthält, in unbestimmtem Auftrag. Pfosten: Resultat->forAll(elem|Selbst->includes(elem)) asSequence(): Sequence(T) Eine Reihenfolge, die alle Elemente vom Selbst enthält, in unbestimmtem Auftrag. Pfosten: Resultat->forAll(elem|Selbst->includes(elem)) Pfosten: Selbst->forAll(elem|Resultat->count(elem) = 1) asBag(): Bag(T) Der Beutel, der alle Elemente vom Selbst enthält. Pfosten: Resultat->forAll(elem|Selbst->includes(elem)) Pfosten: Selbst->forAll(elem|Resultat->count(elem) = 1) 11,7,3 OrderedSet fügen Sie hinzu (Gegenstand: T): OrderedSet(T) Der Satz der Elemente, bestehend aus allen Elementen von Selbst gefolgt vom Gegenstand. Pfosten: Resultat->size() = Selbst->size() + 1 Pfosten: Resultat->at(result->size()) = Gegenstand Pfosten: Sequence{1..self->size() }->forAll(index: Ganzzahl| Resultats-->at(index) = Selbst->at(index)) prepend(object: T): OrderedSet(T) Die Reihenfolge, die aus Gegenstand besteht gefolgt von allen Elementen im Selbst. Pfosten: Resultat->size = Selbst->size() + 1 Pfosten: Resultat->at(1) = Gegenstand Pfosten: Sequence{1..self->size()}->forAll(index: Ganzzahl| Selbst-->at(index) = Resultat->at(index + 1)) insertAt(index: Ganzzahl, Gegenstand: T): OrderedSet(T) Der Satz, der aus Selbst besteht mit O bject eingesetzt am Positions- Index . Pfosten: Resultat->size = Selbst->size() + 1 Pfosten: Resultat->at(index) = Gegenstand |  |
|
| |
|
|