CX_OBJECT_DICTIONARY_ML
Klassenhierarchie
- CX_CLASS
- CX_SIMPLE
- CX_TERMED
- CX_EXPANDABLE
- CX_STRUCTURED
- CX_OBJECT_DICTIONARY_ML
- CX_STRUCTURED
- CX_EXPANDABLE
- CX_TERMED
- CX_SIMPLE
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
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
- I = Indizierbares Datenfeld,
grau unterlegt = geerbtes Datenfeld
Modul | Kurzbeschreibung |
---|---|