Lade...
 

CX_OBJECT_DICTIONARY_ML

CX_OBJECT_DICTIONARY_ML

Klassenhierarchie
Beschreibung:

Die Klasse CX_OBJECT_DICTIONARY_ML ermöglicht es, Objekte unter beliebigen mehrsprachigen Bezeichnungen zu registrieren. Ein Objekt kann beliebig viele Bezeichner haben, und pro Bezeichner können beliebig viele Objekte im Dictionary eingetragen werden. Konzeptionell entspricht ein Dictionary einer Multimap

Die Objekte können mittels der ihnen zugeordneten Bezeichnungen sehr schnell wieder aufgefunden werden.
Das Dictionary verwaltet auch eine Rückbeziehung, so dass man zu einem Objekt alle Bezeichnungen, unter denen es eingetragen wurde, erhalten kann. 

Bei mehrsprachigen Bezeichnern ist zu beachten, dass diese über alle Sprachen gleich sein müssen, um als gleicher Bezeichner erkannt zu werden. Dies spielt eine Rolle bei bei Erkennung von doppelten Einträgen in EnterML und bei beim Auffinden des zu löschenden Bezeichners in RemoveML.

Bei der Suche im Dictionary werden Groß-/Kleinbuchstaben unterschieden (case sensitive).

Methoden, die einsprachig arbeiten, beziehen sich immer auf die aktuell aktive Systemsprache. (Enter, Query, Exists, Remove)

CX_OBJECT_DICTIONARY_ML gehört zur Familie der Objekt-Dictionary-Klassen und ist ab Dll-Version 141847 verfügbar.

Code-Beispiel:
Var(dict) CreateTransObject(CX_OBJECT_DICTIONARY_ML) -> dict T("de", "en") obj dict Call(EnterML) "de" obj dict Call(Enter) // <-> T("de", "") obj dict Call(EnterML) "de" obj dict Call(Exists) // -> TRUE T("de", "en") obj dict Call(RemoveML) "de" obj dict Call(Exists) // -> TRUE (the second entry still exists) "de" obj dict Call(Remove) // <-> T("de", "") obj dict Call(RemoveML) "de" obj dict Call(Exists) // -> FALSE

 

Methodenverzeichnis (MDI)
Funktion MA* Parameter Rückgabe Kurzbeschreibung
Cardinalities     VECTOR<INTEGER> Anzahl der Elemente im Dictionary  
Clear       Löscht alle Einträge  
CreateBKTree
230545
      erstellt BK-Tree für nachfolgende DLDistance-Suchen Baum für aktuelle Sprache
DestroyBKTree
230545
      Entfernt BK-Tree
Enter   STRING, OBJECT   neuen Eintrag für das Objekt einfügen, falls genau dieser Eintrag (Begriff, Objekt) schon existiert -> Fehlermeldung  Begriff in der aktueller Sprache angeben
EnterAlways   STRING, OBJECT   nur für Testzwecke !
wie Enter, aber ohne Test, Doppel-Eintragungen möglich
EnterIfNotThere   STRING, OBJECT   wie Enter, falls genau dieser Eintrag (Begriff, Objekt) schon existiert -> keine Operation
EnterML   MULTIPLE_STRING, OBJECT   wie Enter Begriffe für alle Sprachen angeben
EnterMLIfNotThere   MULTIPLE_STRING, OBJECT   wie EnterIfNotThere
Exists   STRING, OBJECT INTEGER Testet ob das Objekt unter dem Begriff im Dictionary eingetragen ist Begriff in der aktueller Sprache angeben
FixKeyOwnership
220621
  STRING   Reorg für Dictionaries, die vor Dll-Version 220415 angelegt wurden.  
GetAllKeys     COLLECTION Rückgabe: alle Dictionary- Einträge als CX_OBJECT_KEYWORDs  
GetNames   OBJECT COLLECTION Rückgabe: alle Einträge zu einem Objekt als CX_OBJECT_KEYWORDs  
GetObjectsWithDLDistance
222024
  STRING, STRING, INTEGER, INTEGER, STRING COLLECTION alle Objekte, welche einen Key haben, der ähnlich dem Suchbegriff ist Suchargument in der aktuellen Sprache
GetObjectsWithDLDistanceWithBKTree
230545
  STRING, STRING, INTEGER, INTEGER, STRING, INTEGER COLLECTION wie GetObjectsWithDLDistance aber logarithmische Suche in einem BK-Tree anstelle linearer Suche
GetRelatedObjects   OBJECT COLLECTION Rückgabe: alle Einträge zu einem Objekt als CX_OBJECT_KEYWORDs  
NewKey   OBJECT OBJECT neuen Eintrag = neues Objekt CX_KEYWORD erzeugen  
Query   STRING, INTEGER COLLECTION alle Objekte zu einem  Suchbegriff finden Suchargument in der aktuellen Sprache
QueryByType   STRING, STRING, INTEGER, INTEGER COLLECTION wie Query,  Ergebnis nach Klasse filtern Suchargument in der aktuellen Sprache
QueryByDLDistance
222024
  INTEGER, STRING COLLECTION alle Objekte, welche einen Key haben, der ähnlich dem Suchbegriff ist Suchargument in der aktuellen Sprache
QueryByDLDistanceWithBKTree
230545
  INTEGER, STRING, INTEGER COLLECTION wie QueryByDLDistance aber logarithmische Suche in einem BK-Tree anstelle linearer Suche
RebuildDictionary       Dictionary komplett neu aufbauen.  
RegExQuery   STRING, INTEGER COLLECTION alle Objekte zum Suchbegriff finden, Suchargument ist regular Expression Suchargument in der aktuellen Sprache
RegExQueryByType   STRING, STRING, INTEGER, INTEGER COLLECTION wie ReqExQuery, Ergebnis nach Klasse filtern Suchargument in der aktuellen Sprache
Remove   STRING, OBJECT   Eintrag für das Objekt löschen   
RemoveDuplicateKeys       alle duplizierten Einträge löschen   
RemoveLonelyKeys       alle Einträge ohne umgekehrte Beziehung löschen   
RemoveML
220415
  ML_STRING, OBJECT   Eintrag für das Objekt löschen  
RemoveNames   OBJECT   alle Einträge für das Objekt löschen   
RemoveNamesOfDeletedObjects       alle Einträge löschen, die auf ein logisch gelöschtes Objekt verweisen  
SanityCheck     INTEGER Feststellen, ob interne Strukturen frei von logischen Fehlern sind  
Clone   INTEGER OBJECT Erzeugt ein neues Dictionary mit den gleichen Einträgen für die gleichen Objekte  
string   INTEGER CX_STRING Liefert die String-Darstellung des Objektes  
  • MA = Member-Access-Funktion,
    grau unterlegt = geerbte Funktion

 

Datenverzeichnis (DDI)
Datenfeld Typ Referenz-Klasse I* Kurzbeschreibung
uniqueID STRING   * Name
  • I = Indizierbares Datenfeld,
    grau unterlegt = geerbtes Datenfeld

 

Verwendung in AppsWH
Modul Kurzbeschreibung