| |
April 2002 Omg-mof, v1.4: Berechnungssemantik für das IDL-Diagramm 5-13 5 Abhängige M1-levelpaketgegenstände, M1-levelverbindungsgegenstände und M1-levelkategorie Proxygegenstände können nicht vom Benutzer direkt zerstört werden. Eine Implementierung von refDeletebetrieb für diese Gegenstände wird angefordert, um eine Ausnahme aufzuwerfen, wenn er vorbei benannt wird Klientencode. (die Betriebe können verwendet werden, um äußerste Paketauslassung einzuführen, aber dieses ist über dem Bereich dieser Spezifikation hinaus.), 5,3,4,2 Fallgegenstand-Lebensdauersemantik Ein M1-levelfallgegenstand kann, indem man das passende, verursacht werden hervorruft verursachen Betrieb. Verwendbar verursachen Sie Betriebe sind anwesend auf beiden M1-levelkategorienproxygegenständen und M1-levelfallgegenstände, abhängig von dem M2-levelkategorien-Erbschaftdiagramm. A verursachen Sie Betrieb erfordert den Anrufer, Werte für allen nicht-abgeleiteten Fall-scoped zu liefern Attribute für den Fallgegenstand. Wenn kein Wert sich nicht an das Attribut s anpaßt Vielfältigkeit oder wenn verletzen sie einzeln oder zusammen alle sofortigen Begrenzungen an das Metamodell, eine Ausnahme wird angehoben. Ein Fallgegenstand wird innerhalb des Umfangs eines Kategorienproxygegenstandes für verursacht Kategorie des Falls s M2-level. Der Kategorienproxy kann gefunden werden, wie folgt: 1. Finden Sie den äußersten Paketumfang, den Gegenstand zu enthalten, auf dem verursachen Betrieb wurde hervorgerufen. 2. Innerhalb dieses Umfanges finden Sie das und einzigen den Kategorienproxygegenstand für die M2-Kategorie deren Fall wird verursacht. Wenn kein Kategorienproxy durch das oben genannte gefunden werden kann, verletzt der verursachenantrag das Supertype Schliessenrichtlinie (sehen Sie Abschnitt 5,3,10, die Schliessenrichtlinie Supertype, auf Seite 5-26) und Ausnahme wird angehoben. Kreation eines Fallgegenstandes fällt auch aus, wenn die entsprechende M2-levelkategorie ist Auszug. Ähnlich fällt sie aus, wenn die M2-levelkategorie eine singletonkategorie und ist Instance Gegenstand für diese Kategorie besteht bereits innerhalb des Umfanges des Kategorienproxy s. In irgendeinem Fall, eine Ausnahme wird angehoben. Wenn ein Fallgegenstand (erfolgreich) innerhalb des Umfangs eines Kategorienproxy verursacht wenden Sie, es wird Teil einer Ansammlung ein, die durch den Kategorienproxygegenstand s zurückgebracht wird all_of_kindbetrieb. Der Fallgegenstand bleibt ein Mitglied dieser Ansammlung für seine Lebenszeit (d.h., bis sie gelöscht ist). Ein Fallgegenstand wird in den folgenden drei Situationen gelöscht: 1. Wenn ein Klient den refDeletebetrieb auf dem Fallgegenstand hervorruft; sehen Sie Abschnitt 6,2,3, Reflective::RefObject, auf Seite 6-10. 2. Wenn der Paketgegenstand für den äußersten Paketumfang des Fallgegenstandes s ist gelöscht (sehen Sie oben) und 3. Wenn der Fall ein Bestandteil eines zusammengesetzten Falls ist, der gelöscht wird. Dieses trifft auf die Zusammensetzungen zu, die durch beide Verbindungen und Attribute gebildet werden. Wenn ein Fallgegenstand gelöscht wird, müssen die folgenden Sachen auftreten: |  |
|
| |
|
|