CX_OBJECT_DICTIONARY_CI 
Class hierarchy
- CX_CLASS
- CX_SIMPLE
- CX_TERMED
- CX_EXPANDABLE
- CX_STRUCTURED
- CX_OBJECT_DICTIONARY_CI
- CX_STRUCTURED
- CX_EXPANDABLE
- CX_TERMED
- CX_SIMPLE
Description: (Business Pattern)
The class CX_OBJECT_DICTIONARY_CI is suitable for entering pairs of objects and terms independent of the language set (such as barcodes) and is largely the same as the class CX_OBJECT_DICTIONARY, with the only difference being that upper and lower case letters are not distinguished when inserting/searching/deleting in the Dictionary (case insensitive).
However, the dictionary retains the upper/lower case present when the terms are entered. (see GetAllKeys / GetNames).
An object can have any number of identifiers, and any number of objects can be entered in the dictionary per identifier. Conceptually, a dictionary corresponds to a multimap.
To enable the lookup of identifiers for an object (GetNames), a second dictionary is managed internally, which maps the back relation (object 🡒 Identifier).
The multi-language methods EnterML and RemoveML have been introduced for the purpose of a uniform interface. The keys are nevertheless only inserted in one language (current language of the transferred ML_STRINGS).
CX_OBJECT_DICTIONARY_CI belongs to the family of object dictionary classes.
Code example:
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
| Function | MA* | Parameters | Return | Brief description |
|---|---|---|---|---|
| Cardinalities | VECTOR&lmt;INTEGER> | Number of elements in the dictionary | ||
| Clear | Deletes all entries | |||
| CreateBKTree 230545 | Creates BK tree for subsequent DLDistance searches. | |||
| DestroyBKTree 230545 | Removes BK-Tree | |||
| Enter | STRING, OBJECT | insert new entry for the object, if exactly this entry (term, object) already exists -> error message | ||
| EnterAlways | STRING, OBJECT | for test purposes only ! like Enter, but without test, double entries possible | ||
| EnterIfNotThere | STRING, OBJECT | like Enter; if exactly this entry (term, object) already exists -> no operation | ||
| EnterML | MULTIPLE_STRING, OBJECT | like Enter | ||
| EnterMLIfNotThere | MULTIPLE_STRING, OBJECT | like EnterIfNotThere | ||
| Exists | STRING, OBJECT | INTEGER | Tests whether the object is entered in the dictionary under the term | |
| FixKeyOwnership 220621 | STRING | Reorg for dictionaries created before Dll version 220415. | ||
| GetAllKeys | COLLECTION | Return: all dictionary entries as CX_OBJECT_KEYWORDs | ||
| GetNames | OBJECT | COLLECTION | Return: all entries for an object as CX_OBJECT_KEYWORDs | |
| GetObjectsWithDLDistance 17449 | STRING, STRING, INTEGER, INTEGER, STRING | COLLECTION | all objects that have a key similar to the search term | |
| GetObjectsWithDLDistanceWithBKTree 230545 | STRING, STRING, INTEGER, INTEGER, STRING, INTEGER | COLLECTION | like GetObjectsWithDLDistance but logarithmic search in a BK-tree instead of linear search | |
| GetRelatedObjects | VECTOROBJECT | Returns all objects of the dictionary without duplicates | ||
| NewKey | OBJECT | OBJECT | new entry = create new object CX_KEYWORD | |
| Query | STRING, INTEGER | COLLECTION | find all objects for a search term | |
| QueryByType | STRING, STRING, INTEGER, INTEGER | COLLECTION | like query, filter result by class | |
| QueryByDoubleMetaphone 174494 | STRING | COLLECTION | all objects that have a key that has a similar phonetics to the search term | |
| QueryByDLDistance 174494 | INTEGER, STRING | COLLECTION | all objects that have a key similar to the search term | |
| QueryByDLDistanceWithBKTree 230545 | INTEGER, STRING, INTEGER | COLLECTION | like QueryByDLDistance but logarithmic search in a BK-tree instead of linear search | |
| RebuildDictionary | Rebuild dictionary completely | |||
| RebuildFromForwardDictionary 238291 | INTEGER | Rebuild dictionary from the data of the back relation | ||
| RegExQuery | STRING, INTEGER | COLLECTION | find all objects for the search term, search argument is regular expression | |
| RegExQueryByType | STRING, STRING, INTEGER, INTEGER | COLLECTION | like ReqExQuery, filter result by class | |
| Remove | STRING, OBJECT | Delete entry for the object | ||
| RemoveDuplicateKeys | Delete all duplicated entries | |||
| RemoveLonelyKeys | delete all entries without relation to the object | |||
| RemoveML 220415 | ML_STRING, OBJECT | Like Remove | ||
| RemoveNames | OBJECT | delete all entries for the object | ||
| RemoveNamesOfDeletedObjects | delete all entries that refer to a logically deleted object | |||
| RepairSharpSKeys | Repair of old dictionaries with regard to ss and ß | |||
| SanityCheck | INTEGER | Determine whether internal structures are free from logical errors | ||
| Clone | INTEGER | OBJECT | Creates a new dictionary with the same entries for the same objects | |
| string | INTEGER | CX_STRING | Returns the string representation of the object |
*MA= Member access function,
grey background = inherited function
| Data field | Type | Reference class | I* | Brief description |
|---|---|---|---|---|
| uniqueID | STRING | * | Name |
*I= Indexable data field,
grey background = inherited data field
| Module | Brief description |
|---|---|