| |
März 2003 OMG-Vereinheitlicht, Sprache, v1.5 Modellierend 6-23 Begrenzungs-SprachcSpezifikation Mit 6 Gegenständen Der Parameter von auserwähltem hat eine spezielle Syntax, die einem ermöglicht, zu spezifizieren, welche Elemente von der Ansammlung möchten wir vorwählen. Es gibt drei unterschiedliche Formen, von denen einfachstes man ist: Ansammlungs->select(Boolesch-ausdruck) Dieses ergibt eine Ansammlung, die alle Elemente von der Ansammlung enthält für welches Boolesch-Ausdruck wertet aus, um auszurichten. Das Resultat dieses Ausdruckes, für jedes finden Element in der Ansammlung der Ausdrucks- Boolesch-Ausdruck wird ausgewertet. Wenn dieses auswertet , um auszurichten, wird das Element in der Resultatsansammlung, andernfalls nicht umfaßt. Als Beispiel der folgende OCL-Ausdruck spezifiziert daß die Ansammlung aller älteren Angestellten als 50 Jahre ist nicht leer: Kontext Firma inv : self.employee->select(age > 50)->notEmpty() Das self.employee ist von der Art Set(Person). Das auserwählte nimmt jede Person von self.employee und wertet aus Alter > 50 für diese Person. Wenn dieses innen resultiert richten Sie aus, dann Person ist im Resultatssatz. Wie im vorhergehenden Beispiel gezeigt, der Kontext für den Ausdruck im auserwählten Argument ist das Element der Ansammlung, auf der das auserwählte hervorgerufen wird. So das Alter Eigenschaft wird im Kontext einer Person genommen. Im oben genannten Beispiel ausdrücklich zu verweisen ist unmöglich, auf die Personen selbst; Sie Dose beziehen nur sich auf Eigenschaften von ihnen. Ermöglichen, sich auf die Personen selbst zu beziehen, dort ist eine allgemeinere Syntax für den auserwählten Ausdruck: Ansammlung->select(V|Boolesch-Ausdruck-mit-v) Die Variable V wird das iterator benannt. Wenn das auserwählte ausgewertet wird, v wiederholt über Ansammlung und Boolesch-Ausdruck-mit-v wird für jedes ausgewertet V . V ist a Hinweis auf dem Gegenstand von der Ansammlung und kann verwendet werden, um sich auf die Gegenstände zu beziehen selbst von Ansammlung . Die zwei Beispiele folgend sind identisch: Kontext Firma inv : self.employee->select(age > 50)->notEmpty() Kontext- Firma inv : self.employee->select(p|p.age > 50)->notEmpty() Das Resultat des kompletten auserwählten ist die Ansammlung der Personen p für welches p.age > 50 wertet aus, um auszurichten. Dieses beträgt eine Teilmenge von self.employee. Als abschließende Verlängerung zur auserwählten Syntax, kann die erwartete Art des variablen v sein gegeben. Das auserwählte jetzt wird wie geschrieben: Ansammlung->select(V: Art|Boolesch-Ausdruck-mit-v) Die Bedeutung von diesem ist daß die Gegenstände in der Ansammlung muß von der Art- Art sein . Das folgende Beispiel ist zu den vorhergehenden Beispielen identisch: Kontext- Firma inv : self.employee.select(p: Person|p.age > 50)->notEmpty() Die auserwählte Syntax konkurrieren sieht jetzt wie ein von aus: Ansammlung->select(V: Art|Boolesch-Ausdruck-mit-v) |  |
|
| |
|
|