Token List, Named List, Named Map, Value Splitter
Lists
Our documentation uses the term list with two different meanings. Token List (also 'comma separated list') and Named List.
Tokens inside of a token list are text sections, separated from each other by a delimiter, e.g. a comma.
A Token List is a list of tokens (values) inside of a string, separated by a comma or another delimiter. The occurrence of the delimiter itself is not allowed in one of the tokens. E.g. used in function replace-chars(a, list b, list c).
A Named List is an object referenced by a name and in which multiple typed values can be stored in numeric order. The order is defined by the sequence of adding items to this list object. After this, a single value can be accessed via the value's index number in the list and the list name. If the list name is not specified, then name default is used.
Serialized/Autoserialized Lists
See functions serialize map/list(a,b) and deserialize map/list(a,b,c).
Maps
A Named Map object can save multiple typed values, analogous to a Named List. But the values are not ordered and thus cannot be addressed by an index. They must be accessed later on by a unique key and the map's name. If the name is not specified, then the name default is used.
Serialized/Autoserialized Maps
See functions serialize map/list(a,b) and deserialize map/list(a,b,c).
Value Splitters (DEPRACTED)
Value Splitters are objects similar to named list which can contain a structure data type, which consists of a sequence of field values. Structures can be regarded also as an ordered sequence of field values. A Value Splitter is bound to a target node. By repeatedly calling the function next the function returns the next field value from the structure until all values are processed. So the field values from the structure value are distributed into the fields, which are located directly within the bound node. The name of a value splitter is the name of the node to which it is bound. Since structure data can be represented as a csv file line or a fixed record file line, there are two operation types of a value splitter, csv or fix. Only a single function with many different methods is used with Value Splitters: value-splitter( cmd a, [mode/delim b], [value c] ). Some advanced methods of this function also allow general operations on data collections, as well as the order, elimination of duplicates, and the selection of values from a collection of values.
Notes
Named Lists, Named Maps, and Value Splitters use separate namespaces. In consequence, the name of a list can also be used as the name of a map. There are no relations between the list and the map with the same names.
Named Lists and Named Maps are objects that are kept in the main memory. Therefore, the number and size of these objects are limited by the available main memory. This is also true for variables of type String and therefore for token lists. Storing too many values in map or list objects can lead to a memory overflow (OutOfMemoryError). If you have to deal with mass data, please use a database table instead. List and map objects are (dynamically) created during runtime when they are first used and exist till the end of the profile job. So they can be used (like variables) to pass on data between records. To empty map or list objects at the beginning of a record (or elsewhere), please use the 'clear' functions.