Lade...
 

CX_DESCRIPTIVE_REF::SpanDateValidity

CX_DESCRIPTIVE_REF::SpanDateValidity

Beschreibung:

Diese Zugriffsfunktion gestattet Zugriff auf den Gültigkeitszeitraum des Wrappers. Beim Lesen wird der effektive Gültigkeitszeitraum des Wrappers geliefert, der als Schnittmenge der Gültigkeitszeiträume von Wrapper und Zielobjekte definiert ist. Sollte der Gültigkeitszeitraum des Wrappers keine Überschneidung mit dem Gültigkeitszeitraum des Zielobjekts aufweisen, dann ist das Ergebnis eine leere Zeitspanne (∅) - Das Objekt ist immer ungültig. Da das Zielobjekt wiederum ein Wrapper sein kann, ist die Gültigkeitszeitspanne die Schnittmenge aller Gültigkeitszeiträume, die bei der Verfolgung der Wrapper-Objekte bis zum Zielobjekt definiert sind.

Beim Schreiben wird nur der Gültigkeitsbereich des Wrappers gesetzt.

Aufgrund dieses asymetrischen Verhaltens sollte SpanDateValidity() nicht die Gültigkeit eines Wrappers über ein Widget mit Data-Binding manipulieren. Das Widget wird nämlich mit dem effektiven Gültigkeitsbereich vorbelegt. Ein anschließends DrainWindow schreibt diese errechnete Gültigkeitsdauer dann in den Wrapper (auch wenn dieser vorher keine eigene Gültigkeit hatte). Wird anschließend die Gültigkeit des Quellobjekts verändert, dann ist das Objekt durch den Wrapper möglicher Weise gar nicht mehr erreichbar, obwohl der Benutzer die Gültigkeit des Wrappers nicht bewusst verändert hat.

Code-Beispiel:
Var(ref, today)
CreateTransObject(CX_DATE) -> today
user WrapObject(DESCRIPTIVE) -> ref
today user Call(Valid) // -> TRUE
today ref Call(Valid) // -> TRUE

"01.01.2000-31.12.2000" ref Put(SpanDateValidity()) // Only valid in year 2000
today ref Call(Valid) // -> FALSE
ref Copy(SpanDateValidity()) // -> "1.1.2000 - 31.12.2000"

"01.01.1999-31.12.1999" user Put(SpanDateValidity()) // Only valid in year 1999
ref Copy(SpanDateValidity()) // -> "∅"
Funktionsaufruf: Copy(SpanDateValidity()), Put(SpanDateValidity())