Lade...
 

CX_OBJECT_DICTIONARY_CI

CX_OBJECT_DICTIONARY_CI CX_INDEX_CI.png

Klassenhierarchie
Beschreibung: (Business Pattern)

Die Klasse CX_OBJECT_DICTIONARY_CI ist zur Eingabe von Paaren von Objekten und von der eingestellten Spache unabhängigen Begriffen (wie Barcodes) geeignet und entspricht weitgehend der Klasse CX_OBJECT_DICTIONARY, mit dem einzigen Unterschied, dass beim Einfügen/Suchen/Löschen im Dictionary Groß- und Kleinbuchstaben nicht unterschieden werden (case insensitive).

Das Dictionary behält aber die bei der Eingabe der Begriffe vorliegende Groß-/Kleinschreibung bei. (siehe GetAllKeys / GetNames)

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 mehrspachigen Methoden EnterML und RemoveML sind zwecks einheitlichem Interface eingeführt worden. Die Schlüssel werden trotzdem nur einsprachig (aktuelle Sprache des übergebenen ML_STRINGS) eingefügt.

CX_OBJECT_DICTIONARY_CI gehört zur Familie der Object-Dictionary-Klassen.

Code-Beispiel:
Var(dict) CreateTransObject(CX_OBJECT_DICTIONARY_CI) -> dict "cx" user dict Call(Enter) "cx" user dict Call(Exists) // -> TRUE "CX" user dict Call(Exists) // -> TRUE "c*" 0 dict Call(Query) // -> Collection (user) "cx" user dict Call(Remove) "c*" 0 dict Call(Query) // -> empty Collection

 

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
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 
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
EnterMLIfNotThere   MULTIPLE_STRING, OBJECT   wie EnterIfNotThere
Exists   STRING, OBJECT INTEGER Testet ob das Objekt unter dem Begriff im Dictionary eingetragen ist
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 zum ein Objekt als CX_OBJECT_KEYWORDs
GetObjectsWithDLDistance
17449
  STRING, STRING, INTEGER, INTEGER, STRING COLLECTION alle Objekte, welche einen Key haben, der ähnlich dem Suchbegriff sind
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
QueryByType   STRING, STRING, INTEGER, INTEGER COLLECTION wie Query, Ergebnis nach Klasse filtern
QueryByDoubleMetaphone
174494
  STRING COLLECTION alle Objekte, welche einen Key haben, der eine ähnliche Phonetik wie der Suchbegriff hat
QueryByDLDistance
174494
  INTEGER, STRING COLLECTION alle Objekte, welche einen Key haben, der ähnlich dem Suchbegriff sind
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
RegExQueryByType   STRING, STRING, INTEGER, INTEGER COLLECTION wie ReqExQuery, Ergebnis nach Klasse filtern
Remove   STRING, OBJECT   Eintrag für das Objekt löschen 
RemoveDuplicateKeys       alle duplizierte Einträge löschen 
RemoveLonelyKeys       alle Einträge ohne Beziehung zum Objekt löschen 
RemoveML
220415
  ML_STRING, OBJECT   Wie Remove
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
RepairSharpSKeys       Reparatur alter Dictionaries in Bezug auf ss und ß
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