Qore Mapper Module Reference
1.0
|
This module provides classes that help with structured data mapping, meaning the transformation of data in one or more input formats to a different output format.
Classes provided by this module:
The following is an example map hash with comments:
If this map is applied to the following data in the following way:
The result will be:
list: (2 elements) [0]=hash: (5 members) id : 1 name : "John Smith" explicit_count : 1 implicit_count : 1 order_date : 2014-01-02 10:37:45.103948 Thu +01:00 (CET) [1]=hash: (5 members) id : 2 name : "Steve Austin" explicit_count : 2 implicit_count : 2 order_date : 2014-01-04 19:21:08.882634 Sat +01:00 (CET))
The mapper hash is made up of target (ie output) field names as the key values assigned to field specifications as follows:
"name"
: the value of this key gives the name of the input field; only use this if the input record name is different than the output field name; note that if this value contains "."
characters and the allow_dot option is not set (see Mapper Options), then the value will be treated like "struct"
"struct"
: the value of this key gives the location of the input field in an input hash in dot notation, ex: "element.name"
would ook for the field's value in the "name"
key of the "element"
hash in the input record"code"
: a closure or call reference to process the field data"date_format"
: gives the format for converting a string to a date; see date_formatting for the format of this string; note that this also implies "type"
= "date"
"maxlen"
: an integer giving the maximum output string field length in bytes"trunc"
: assign to boolean True if the field should be truncated if over the maximum field length; this key can only be set to True if the "maxlen"
key is also given"mand"
: assign to boolean True if the field is mandatory and an exception should be thrown if no input data is supplied"type"
: this gives the output field type, can be:"number"
: field accepts only numeric values (any non-numeric values on input will cause an exception to be thrown when mapping)"integer"
: fields accepts only integer values (any non-integer values on input will cause an exception to be thrown when mapping; note: also "int"
is accepted as an alias for "integer"
)"date"
: date fieldMapper objects accept the following options in the option hash:
"enc"
: the output character encoding; if not present then "UTF-8"
is assumed"name"
: the name of the mapper for use in logging and error strings"trunc"
: an optional closure or call reference for a callback for field truncation warnings; must accept a single string giving the warning text"trunc_all"
: if True (as evaluated by parse_boolean()) then any field without a "trunc"
key (see Mapper Specification Format "trunc"
description) will automatically be truncated if a "maxlen"
attribute is set for the field"allow_dot"
: if True (as evaluated by parse_boolean()) then field names with "."
characters do not imply a structured internal element lookup; in this case input field names may have "."
characters in them, use the "struct"
key to use structured internal element loopups (see Mapper Specification Format "struct"
docs for more info)"input_log"
: an optional input data logging callback; must accept a hash giving the input data hash"output_log"
: an optional output data logging callback; must accept a hash giving the output data hashInitial release.