Lade...
 

CX_COND_WRAPPER - Conditioned Wrapper

CX_COND_WRAPPER

Klassenhierarchie
Beschreibung:

Ein Conditioned Wrapper ist ein Conditioned Bag, der sich nach außen hin wie ein Wrapper verhält. D.h. Operationen, die mit dem CX_COND_WRAPPER durchgeführt werden (Put, Copy, etc.), werden mit dem Objekt durchgeführt, auf das dieses Objekt zeigt.

Beim Zugriff auf einen Conditioned Wrapper (W) werden der Reihe nach die Formeln ausgewertet, die in dem Conditioned Bag (C) abgelegt sind. Dazu werden die Objekte herangezogen, die sich auf dem Plugspace befinden. Sobald eine Formel gefunden wurde, dessen Wahrheitswert 1 ist, wird das Objekt (O) zurückgeliefert, das mit dieser Formel verbunden ist. Von InstantView® sieht das so aus, als wäre der Conditioned Wrapper genau dieses Objekt. Der Programmierer kann den Conditioned Wrapper also so behandeln, als wäre es das gewünschte Objekt.

Achtung!
Im Gegensatz zum descriptive und overwriting wrapper kann der Conditioned Wrapper keine zusätzlichen Attribute aufnehmen oder gar Werte überschreiben. Alle Operationen werden unmittelbar an das jeweilige Objekt durchgeleitet! Der Conditioned Wrapper ist quasi transparent.

Wichtig!
Vor jedem Zugriff auf einen Conditioned Wrapper muss gewährleistet sein, dass der Plugspace korrekt gesetzt ist. Im günstigsten Fall erscheint bei einem falschen Plugspace eine Fehlermeldung, dass kein passendes Objekt gefunden wurde, im schlimmsten Fall wird ein falsches Objekt oder, noch schlimmer, zufälligerweise das richtige Objekt zurückgeliefert.

Code-Beispiel:
Var(condWrapper,a) CreateTransObject(CX_COND_WRAPPER) // Conditioned Wrapper (W) erzeugen -> condWrapper CreateTransObject(CX_PERSON) -> a // Objekt (O) erzeugen "Alpha" a Put(name) "counter = 0" a condWrapper Call(GetConditionedBag) Insert // Objekt dem Conditioned Wrapper hinzufügen // unter der Bedingung, dass "x = 0" ist // (anstelle von counter kann ein beliebiger Slot stehen) CreateTransObject(CX_CONTAINER) // Objekt erzeugen, dass "x = 0" enthält 0 Over Put(counter) PlugSpace // "counter = 0" befindet sich jetzt im PlugSpace condWrapper Copy(name) Attention // Gibt "Alpha" aus

 

Methodenverzeichnis (MDI)
Funktion MA* Parameter Rückgabe Kurzbeschreibung
GetConditionedBag     OBJECT Liefert den Conditioned Bag zurück, auf dem CX_COND_WRAPPER basiert
Pick     OBJECT Pickt das Objekt aus dem enthaltenen Conditioned Bag heraus, das zuerst zu den Werten auf dem Plugspace passt
GetDomain     INTEGER Domain dieses Objektes
GetSiblings     COLLECTION Alle Siblings dieses Objektes
GetSiblings2     COLLECTION Alle Siblings dieses Objektes
SetDomain   INTEGER, INTEGER   Domain setzen
string   INTEGER CX_STRING Liefert die String-Darstellung des Objektes
Unlink2       Dieses Objekt aus der Liste der Objekte mit Gültigkeit entfernen
VerifySiblings     INTEGER Ring der Austauschobjekte prüfen

* MA = Member-Access-Funktion,
grau unterlegt = geerbte Funktion

 

Verwendung in AppsWH
Modul Kurzbeschreibung