Lade...
 

CX_DESCRIPTIVE_REF::RestrictedValidity

CX_DESCRIPTIVE_REF::RestrictedValidity

Beschreibung:

Diese Zugriffsfunktion liefert TRUE, falls eine Gültigkeit für den Wrapper oder das Zielobjekt definiert ist. Dabei wird nicht geprüft, was für ein Gültigkeitszeitraum definiert ist. Es wird lediglich geprüft, ob _validity im Wrapper oder validity im Zielobjekt auf ein CX_VALIDITY-Objekt verweist. Die Prüfung für das Zielobjekt erfolgt rekursiv, sodass auch Wrapper von Wrappern korrekt geprüft werden.

Bei Schreibzugriff kann das CX_VALIDITY-Objekt des Wrappers gelöscht (FALSE) oder angelegt (TRUE) werden. Dabei kann nur das Validity-Objekt des Wrappers verändert werden. Die Validity darf nur dann gelöscht werden, wenn der Wrapper keine Austauschobjekte hat (Link, Unlink). Sollte der Wrapper teil eines Austauschrings sein, dann muss der Wrapper zunächst per Unlink aus dem Ring entfernt werden, ansonsten liefert RestrictedValidity() eine Fehlermeldung.

Diese Asymetrie kann manchmal zu unerwarteten Ergebnissen führen. Falls das Zielobjekt eine Gültigkeit hat und über FALSE wrapper Put(RestrictedValidity()) versucht wird, die Gültigkeit zu löschen, dann wird der Aufruf die Gültigkeit nicht verändern, da im Wrapper keine Gültigkeit definiert ist und wrapper Copy(RestrictedValidity()) wird immer TRUE zurückgeben.

 

Code-Beispiel:
Var(ref)
user WrapObject(DESCRIPTIVE) -> ref
user Copy(RestrictedValidity()) // -> FALSE
ref Copy(RestrictedValidity()) // -> FALSE

TRUE ref Put(RestrictedValidity()) 
user Copy(RestrictedValidity()) // -> FALSE
ref Copy(RestrictedValidity()) // -> TRUE

"1.1.2000-31.12.2000" user Put(SpanDateValidity())
user Copy(RestrictedValidity()) // -> TRUE
ref Copy(RestrictedValidity()) // -> TRUE

FALSE ref Put(RestrictedValidity()) // this doesn't modify user's validity
user Copy(RestrictedValidity()) // -> TRUE
ref Copy(RestrictedValidity()) // -> TRUE

FALSE user Put(RestrictedValidity())
user Copy(RestrictedValidity()) // -> FALSE
ref Copy(RestrictedValidity()) // -> FALSE
Funktionsaufruf: Copy(RestrictedValidity()), Put(RestrictedValidity())