Normalisierungshilfen

Die Normalisierungshilfen werden aus dem Paketstamm exportiert, damit Verbraucher und Tests dieselbe Logik wiederverwenden können, die die Bibliothek intern verwendet. Alle sind reine Funktionen: beliebige Eingabeform, eine normalisierte Ausgabeform, keine Seiteneffekte.

1. Haupttyp-Konstanten

MAIN_TYPE_FOLDER   // 0
MAIN_TYPE_REGISTER // 99

Die beiden bekannten mainType-Werte (alles andere ist ein Dokument). Siehe SelectedEntry für die Berechnung von mainType.

2. Auswahl-Grenzen

MAX_SELECTION_RAW_LENGTH  // 65 536 Zeichen
MAX_SELECTION_ENTRIES     // 10 000 Einträge

Die Rich-Client-Auswahl-Zeichenkette wird unter diesen Grenzen geparst (begrenztes Parsen): eine rohe Zeichenkette über der Längengrenze oder ein geparstes Ergebnis über der Eintragsgrenze gilt als unlesbar — die normalisierte Auswahl ist leer und es wird nichts geworfen. Die Längengrenze wird zuerst geprüft, damit das Aufteilen niemals auf feindliche Eingabe läuft.

3. Funktionen

Funktion Verhalten

parseRichClientSelectionString(raw)

Parst die rohe Rich-Client-Auswahl-Zeichenkette ("osid,objectTypeId;…") in SelectedEntry[] um; leere Eingabe → []. Phantom-Einträge (osid 0 mit Typ 0 oder null) werden verworfen; fehlerhafte ID-Teile erzeugen Einträge mit osid null, die die sie nutzenden Rich-Client-Pfade (Init und getSelectedObjects) filtern; typeless Dokumente tragen den -1- Typmarker. Eingaben über der Grenze → [], kein Werfen.

normalizeEntry(osid, objectTypeId, declaredMainType?)

Normalisiert ein rohes ID/Typ-Paar in ein SelectedEntry (Webclient- Einträge); der deklarierte Haupttyp wird nur verwendet, wenn keine Typ-ID vorliegt.

normalizeLocation(fields)

Leitet den umgebenden LocationInfo aus rohen Rich-Client-Ortsfeldern ab (folderid/foldertype, registerid/registertype); das Register schlägt dem Ordner; fehlende/null-IDs → null (Root).

normalizeSession(raw, env?)

Extrahiert den Sitzungsblock (SessionInfo) aus einem rohen Payload (beide Host-Formen) mit Fallback auf die Umgebungsdaten, wo das Payload schweigt.

normalizeUser(raw, env?)

Extrahiert den Benutzerblock (UserInfo) aus einem rohen Payload, mit dem selben Umgebungs-Fallback.

normalizeWebclientPayload(raw, environment?)

Normalisiert ein Webclient-Event-Payload (onInit/onUpdate-Daten) in einen InitContext; die Umgebung wird aus sessionInfo.clientType bestätigt.

normalizeRichClientPayload(raw, selectedEntries, envInfo?)

Normalisiert ein rohes Rich-Client-Payload (alle-Strings-Feldsatz) in einen InitContext. Im Self-Init-Pfad (noch kein Host-Callback) übergeben Sie null oder {} als raw und füllen die Benutzer/Sitzungsdaten aus envInfo aus.

4. RichEnvironmentInfo

Die Felder, die aus osjxGetEnvironment(n)-Lesungen abgeleitet werden können (Self-Init-Pfad):

Feld Slot Bedeutung

version

10

Client-Version (kann ein Leerzeichen am Ende tragen)

language

—

Sprachkürzel der Oberfläche (de, en, fr, …)

userName

3

Benutzer-Login-Name

fullName

14

Vollständiger Benutzername

email

16

Benutzer-E-Mail

userGuid

18

Benutzer-GUID

sessionId

27

Aktuelle Sitzungs-GUID