has(method)

rich.has(method) ist die Live-Fähigkeits-Probe (Capability-Probe) des Rich-Client-Handles: sie prüft, ob die Bridge (window.osClient) das Mitglied method aktuell als Funktion bereitstellt. Sie ist eine Methode des Rich-Client-Handles — der Handle wird einmal über dashlet.getRichClientApi() bezogen; has() sondiert die Bridge bei jedem Aufruf (live, ohne Cache).

1. Signatur

has(method: string): boolean;

2. Parameter

Name Typ Beschreibung

method

string

Der Name des Bridge-Mitglieds (z. B. 'osjxGetEnvironment', 'osjxOpenObject') — die Probe prüft window.osClient[method].

3. Verhalten

has() ist synchron und liefert true genau dann, wenn das Bridge-Mitglied existiert und eine Funktion ist — die exakte probeFunction-Semantik. Alle anderen Zustände liefern false:

Bridge-Zustand Ergebnis Anmerkung

method existiert und ist eine Funktion

true

method fehlt, ist undefined oder keine Funktion

false

Der Lesezugriff auf method wirft (Host-Proxy)

false

Beide Host-Verhalten — werfende Lesezugriffe und stille undefined-Ergebnisse — zählen als „nicht vorhanden".

window.osClient fehlt oder ist kein Objekt

false

Kein Cache. Jeder Aufruf sondiert den aktuellen Bridge-Zustand — window.osClient wird pro Aufruf gelesen, ohne Snapshot. Eine später ausgetauschte oder reduzierte Bridge-Oberfläche wird sofort sichtbar: ein später injiziertes Mitglied liefert daraufhin true, ein entferntes false.

Nie ein Fehler für den Bridge-Zustand. Ein fehlendes, nicht funktionales oder ausnahmswerfendes Mitglied liefert false — nicht einen Fehler.

Reduzierte Bridge. Die reduzierte COM-OpenBrowser-Bridge trägt nur osjxGetBrowserEnvironment + osjxSetBrowserCaption (ohne das Dashlet-Marker-Mitglied osjxGetSelectedObjects); dort gilt daher: rich.has('osjxGetSelectedObjects') → false und rich.has('osjxGetBrowserEnvironment') → true.

Muster. has('osjxGetEnvironment') unterscheidet ein fehlendes Mitglied von einem unbekannten Slot bei getEnvironment(code): ein unbekannter Slot (das Mitglied existiert, der Code ist unbekannt) liefert null, während has() true bleibt; ein fehlendes Mitglied lässt has() false liefern.

4. Beispiele

if (rich.has('osjxGetEnvironment')) { const lang = rich.getEnvironment(24); }

5. Fehler

has() wirft für keinen Bridge-Zustand eine Ausnahme — ein nicht lesbares oder ausnahmswerfendes Mitglied liefert false statt eines Fehlers. Die einzigen harten Fehler sind:

  • Error('dashlet destroyed') — das Dashlet wurde zerstört (Guard jeder Handle-Methode, auch von has()).

  • TypeError: Dashlet.getRichClientApi(): the environment is not resolved yet - await the dashlet.init promise first — der Accessor wurde aufgerufen, bevor die Umgebung aufgelöst war.

  • TypeError: Dashlet.getRichClientApi(): the rich client API handle is only available in the richClient environment (current: …) — der Accessor wurde in der falschen Umgebung aufgerufen (der aktuelle Wert wird genannt).