|  | Qore Mapper Module Reference
    1.4.1
    | 
this class is a base class for mapping data; see Mapper Examples for usage examples More...
| Public Member Methods | |
| constructor (hash< auto > mapv, *hash< auto > opts) | |
| builds the object based on a hash providing field mappings, data constraints, and optionally custom mapping logic  More... | |
| int | getCount () | 
| returns the internal record count  More... | |
| string | getFieldName (string fname) | 
| returns a descriptive name of the given field if possible, otherwise returns the field name itself | |
| *hash< auto > | getInputRecord () | 
| returns the value of the "input"option | |
| *hash< auto > | getOutputRecord () | 
| returns the value of the "output"option | |
| auto | getRuntime (string key) | 
| get current runtime option value for a key  More... | |
| logOutput (hash< auto > h) | |
| calls the output logging closure or call reference (if any) to log the output record | |
| list< hash > | mapAll (list< auto > recs) | 
| maps all input records and returns the mapped data as a list of output records  More... | |
| list< hash > | mapAll (hash< auto > recs) | 
| maps all input records and returns the mapped data as a list of output records  More... | |
| hash< auto > | mapData (hash< auto > rec) | 
| processes the input record and returns a hash of the mapped values where the keys in the hash returned are the target field names; the order of the fields in the hash returned is the same order as the keys in the map hash.  More... | |
| hash< auto > | optionKeys () | 
| returns a list of valid constructor options for this class (can be overridden in subclasses)  More... | |
| replaceRuntime (*hash< auto > runtime) | |
| replaces runtime options  More... | |
| resetCount () | |
| resets the internal record count  More... | |
| setRuntime (string key, auto value) | |
| set the runtime option with "key" to value "value"  More... | |
| setRuntime (hash< auto > runtime) | |
| adds runtime options to the current runtime option hash  More... | |
| hash< string, bool > | validKeys () | 
| returns a list of valid field keys for this class (can be overridden in subclasses)  More... | |
| hash< string, bool > | validTypes () | 
| returns a list of valid field types for this class (can be overridden in subclasses)  More... | |
| Public Attributes | |
| const | ConstantConflictList = ("name", "struct", "code", "default") | 
| field keys that conflict with "constant" and "index" | |
| const | OptionKeys | 
| constructor option keys (can be extended by subclassing and reimplementing optionKeys()) | |
| const | OutputKeys | 
| output option keys | |
| const | ValidKeys | 
| default known mapper hash field keys (can be extended by subclassing and reimplementing validKeys()) | |
| const | ValidTypes | 
| default known field types (can be extended by subclassing and reimplementing validTypes() and mapFieldType()) | |
| Private Member Methods | |
| checkInputField (string k, string name) | |
| raises an error if an invalid input field name is declared; only call this if "input" is defined | |
| checkMap () | |
| verifies the input map in the constructor | |
| checkMapField (string k, reference< auto > fh) | |
| perform per-field pre-processing on the passed map in the constructor  More... | |
| checkTimezoneOption (hash< auto > opts, string rn) | |
| verifies a timezone constructor option | |
| constructor () | |
| private constructor for subclasses | |
| convertToHash (int t, string k, reference< auto > fh) | |
| convert a field definition to a hash if possible | |
| error (string fmt) | |
| throws a MAP-ERRORexception; prepends the map name to the description if known  More... | |
| error2 (string ex, string fmt) | |
| throws the given exception; prepends the map name to the description if known | |
| fieldLengthError (string k, string val, int ix, int sze, int maxlen, hash< auto > rc) | |
| called when a field exceeds its maximum length when processing hashes of lists | |
| hash< auto > | mapDataIntern (hash< auto > rec) | 
| processes the input record and returns a hash of the mapped values where the keys in the hash returned are the target field names; the order of the fields in the hash returned is the same order as the keys in the map hash.  More... | |
| nothing | mapFieldIntern (reference< hash< auto >> h, string key, hash< auto > rec, bool do_list, int list_size) | 
| maps a single field to the target  More... | |
| mapFieldType (string key, hash< auto > m, reference< auto > v, hash< auto > rec) | |
| performs type handling | |
| auto | mapSubclass (hash< auto > m, auto v) | 
| to be overridden as necessary in subclasses | |
| setup (hash< auto > mapv, *hash< auto > opts) | |
| sets up the mapper object before checking the mapper hash | |
| string | truncateField (string k, string val, int ix, int sze, int maxlen) | 
| called to truncate fields when processing hashes of lists | |
| Private Attributes | |
| bool | allow_dot = False | 
| do not assume struct when field names have a "."in them; instead allow input field names to have a"."in them | |
| bool | allow_output_dot = False | 
| do not assume structured/hash output when output field names have a "."in them; instead allow output field names to have a"."in them | |
| hash< auto > | consth | 
| map of constant fields | |
| int | count = 0 | 
| count of records mapped | |
| *string | date_format | 
| the global date format for parsing dates | |
| string | encoding = "utf-8" | 
| the output character encoding; if not given then the output encoding is assumed to be UTF-8 | |
| hash< auto > | identh | 
| map of fields to be mapped 1:1 input -> output | |
| *list< auto > | identl | 
| list of fields to be mapped 1:1 input -> output | |
| *code | info_log | 
| an optional info logging callback; must accept a sprintf()-style format specifier and optional arguments | |
| *hash< auto > | input | 
| an optional description of possible input hash keys | |
| *code | input_log | 
| an optional input data logging callback; must accept a hash giving the input data hash | |
| Qore::TimeZone | input_timezone = TimeZone::get() | 
| the timezone for input fields in case of parsing text values; if not set defaults to the current TimeZone (see Qore::TimeZone::get()) | |
| bool | m_empty_strings_to_nothing = False | 
| flag to enforce deletion of the empty string in the output record  More... | |
| *hash< auto > | m_runtime | 
| current runtime values  More... | |
| hash | mapc | 
| the hash providing output field names and mappings  More... | |
| hash< auto > | mapd | 
| the hash with a subset of the mappings used dynamically | |
| hash< auto > | mapo | 
| the hash of output records for key order | |
| *string | name | 
| the optional name for the object (for example a table name); will be prepended to field names in error messages | |
| *string | number_format | 
| the global number format for parsing numbers | |
| *hash< auto > | output | 
| an optional description of the output data structure | |
| *code | output_log | 
| an optional output data logging callback; must accept a hash giving the output data hash | |
| hash< auto > | rconsth | 
| map of constant runtime fields | |
| hash< string, hash< MapperRuntimeKeyInfo > > | runtime_independent_keys | 
| hash of runtime keys that provide independent mappings (where their "requires_input" values are False) | |
| hash< string, hash< MapperRuntimeKeyInfo > > | runtime_keys | 
| map of field keys provided by the "runtime_keys" option | |
| *Qore::TimeZone | timezone | 
| an optional timezone for output date fields | |
| bool | trunc_all = False | 
| truncate all option | |
| hash< string, bool > | valid_keys | 
| hash of valid keys | |
| hash< string, bool > | valid_types | 
| hash of valid types | |
this class is a base class for mapping data; see Mapper Examples for usage examples
| 
 | private | 
perform per-field pre-processing on the passed map in the constructor
| k | the field name | 
| fh | a reference to the field's value in the map; will be converted to a hash | 
builds the object based on a hash providing field mappings, data constraints, and optionally custom mapping logic
| mapv | a hash providing field mappings; each hash key is the name of the output field; each value is either True (meaning no translations are done; the data is copied 1:1) or a hash describing the mapping; see Mapper Specification Format for detailed documentation for this option | 
| opts | an optional hash of options for the mapper; see Mapper Options for a description of valid mapper options | 
| MAP-ERROR | the map hash has a logical error (ex: "trunc"key given without"maxlen", invalid map key) | 
| 
 | private | 
throws a MAP-ERROR exception; prepends the map name to the description if known 
if this method is subclassed, it must also cause an exception to be thrown
| int Mapper::Mapper::getCount | ( | ) | 
returns the internal record count
| auto Mapper::Mapper::getRuntime | ( | string | key | ) | 
get current runtime option value for a key
| key | the runtime option key | 
maps all input records and returns the mapped data as a list of output records
this method applies the mapData() method to all input records and returns the resulting list
| recs | the list of input records | 
| MISSING-INPUT | a field marked mandatory is missing | 
| STRING-TOO-LONG | a field value exceeds the maximum value and the 'trunc' key is not set | 
| INVALID-NUMBER | the field is marked as numeric but the input value contains non-numeric data | 
maps all input records and returns the mapped data as a list of output records
this method applies the mapData() method to all input records and returns the resulting list
| recs | a hash of lists of input records | 
| MISSING-INPUT | a field marked mandatory is missing | 
| STRING-TOO-LONG | a field value exceeds the maximum value and the 'trunc' key is not set | 
| INVALID-NUMBER | the field is marked as numeric but the input value contains non-numeric data | 
processes the input record and returns a hash of the mapped values where the keys in the hash returned are the target field names; the order of the fields in the hash returned is the same order as the keys in the map hash.
| rec | the record to translate | 
| MISSING-INPUT | a field marked mandatory is missing | 
| STRING-TOO-LONG | a field value exceeds the maximum value and the 'trunc' key is not set | 
| INVALID-NUMBER | the field is marked as numeric but the input value contains non-numeric data | 
processes the input record and returns a hash of the mapped values where the keys in the hash returned are the target field names; the order of the fields in the hash returned is the same order as the keys in the map hash.
| rec | the record to translate | 
| MISSING-INPUT | a field marked mandatory is missing | 
| STRING-TOO-LONG | a field value exceeds the maximum value and the 'trunc' key is not set | 
| INVALID-NUMBER | the field is marked as numeric but the input value contains non-numeric data | 
| 
 | private | 
maps a single field to the target
Performs the actual mapping
| h | the hash to be updated with the mapped key/value pair; Depending on the mapper specification and the input, it can contain a bulk record (hash of lists) or a hash of both list and non-list keys (these are considered a "constants" in the output record. | 
| key | the column name (hash key) to be mapped (target field) | 
| rec | input record - either single record of hash of lists (batch); to increase performance, the input type (single record vs. batch) is determined by the do_list parameter. In case of bulk input, all the lists are supposed to have the same length list_size | 
| do_list | - whether the input record rec is single record or bulk format (hash of lists) | 
| list_size | - size of the lists in case the input is in bulk format (all lists must have the same length, asserted inside the method). | 
| hash<auto> Mapper::Mapper::optionKeys | ( | ) | 
returns a list of valid constructor options for this class (can be overridden in subclasses)
| Mapper::Mapper::replaceRuntime | ( | *hash< auto > | runtime | ) | 
replaces runtime options
| runtime | a hash of runtime options to use to replace the current runtime option hash | 
| RUNTIME-OPTION-CHANGED | the option has changed during while already processing the data. | 
| Mapper::Mapper::resetCount | ( | ) | 
resets the internal record count
| Mapper::Mapper::setRuntime | ( | string | key, | 
| auto | value | ||
| ) | 
set the runtime option with "key" to value "value"
| key | a string with valid runtime key | 
| value | anything passed to the current runtime key | 
| RUNTIME-OPTION-CHANGED | the option has changed during while already processing the data. | 
| Mapper::Mapper::setRuntime | ( | hash< auto > | runtime | ) | 
adds runtime options to the current runtime option hash
| runtime | a hash of runtime options to add to the current runtime option hash | 
| RUNTIME-OPTION-CHANGED | the option has changed during while already processing the data. | 
returns a list of valid field keys for this class (can be overridden in subclasses)
returns a list of valid field types for this class (can be overridden in subclasses)
| 
 | private | 
flag to enforce deletion of the empty string in the output record
| 
 | private | 
the hash providing output field names and mappings
note that we must strip types here