![]() |
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-ERROR exception; 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