261 "allow_dot":
"allows input fields to have a dot in their name without implying a structured format",
262 "allow_output_dot":
"allows output fields to have a dot in their name without implying a structured format",
263 "date_format":
"gives the default format for parsing dates from strings; ex: \"MM/DD/YYYY HH:mm:SS\"",
264 "encoding":
"gives the default output character encoding for string fields",
265 "info_log":
"a call reference / closure for informational logging",
266 "input":
"a hash describing the input record",
267 "input_log":
"a call reference / closure for input record logging",
268 "input_timezone":
"the default timezone to assume when parsing input dates",
269 "name":
"the name of the Mapper object",
270 "number_format":
"the default number format when parsing number fields from strings; ex: \".,\"",
271 "output":
"a hash describing the output record",
272 "output_log":
"a call reference / closure for input record logging",
273 "timezone":
"the default output timezone for date/time values",
274 "runtime":
"runtime options as a hash (see also setRuntime(), replaceRuntime())",
275 "empty_strings_to_nothing":
"converts out record's empty strings and into NOTHING - actually the value is deleted",
292 "number_format":
True,
294 "empty_strings_to_nothing" :
True,
675 nothing
mapFieldIntern(reference<hash> h,
string key,
hash rec,
bool do_list,
int list_size);
682 string truncateField(
string k,
string val,
int ix,
int sze,
int maxlen);
728 error2(
string ex,
string fmt);
auto getRuntime(string key)
get current runtime option value for a key
Qore::AbstractIterator i
input iterator; AbstractIterator::getValue() must return a hash
Definition: Mapper.qm.dox.h:750
int getCount()
returns the internal record count
*hash getOutputRecord()
returns the value of the "output" option
const ConstantConflictList
field keys that conflict with "constant" and "index"
Definition: Mapper.qm.dox.h:257
*string date_format
the global date format for parsing dates
Definition: Mapper.qm.dox.h:357
hash validTypes()
returns a list of valid field types for this class (can be overridden in subclasses) ...
checkInputField(string k, string name)
raises an error if an invalid input field name is declared; only call this if "input" is defined ...
Mapper::Mapper mapc
data mapper
Definition: Mapper.qm.dox.h:791
nothing mapFieldIntern(reference< hash > h, string key, hash rec, bool do_list, int list_size)
maps a single field to the target
hash mapd
the hash with a subset of the mappings used dynamically
Definition: Mapper.qm.dox.h:321
bool next()
Moves the current position of the iterator to the next element; returns False if there are no more el...
checkMap()
verifies the input map in the constructor
hash consth
map of constant fields
Definition: Mapper.qm.dox.h:388
string getFieldName(string fname)
returns a descriptive name of the given field if possible, otherwise returns the field name itself ...
bool m_empty_strings_to_nothing
flag to enforce deletion of the empty string in the output record
Definition: Mapper.qm.dox.h:379
const OptionKeys
constructor option keys (can be extended by subclassing and reimplementing optionKeys()) ...
Definition: Mapper.qm.dox.h:260
*code output_log
an optional output data logging callback; must accept a hash giving the output data hash ...
Definition: Mapper.qm.dox.h:339
*code info_log
an optional info logging callback; must accept a sprintf()-style format specifier and optional argume...
Definition: Mapper.qm.dox.h:333
provides a hash iterator based on a mapper object and an iterator input source
Definition: Mapper.qm.dox.h:782
convertToHash(int t, string k, reference< any > fh)
convert a field definition to a hash if possible
checkTimezoneOption(hash opts, string rn)
verifies a timezone constructor option
bool allow_dot
do not assume struct when field names have a "." in them; instead allow input field names to have a "...
Definition: Mapper.qm.dox.h:351
this class is a base class for mapping data; see Mapper Examples for usage examples ...
Definition: Mapper.qm.dox.h:252
hash mapc
the hash providing output field names and mappings
Definition: Mapper.qm.dox.h:318
hash getValue()
returns the current row transformed with the mapper
int count
count of records mapped
Definition: Mapper.qm.dox.h:369
hash mapo
the hash of output records for key order
Definition: Mapper.qm.dox.h:324
resetCount()
resets the internal record count
constructor(Qore::AbstractIterator i, hash mapv, *hash opts)
creates the iterator from the arguments passed
list< hash > mapBulk(int size)
performs bulk mapping; if the iterator does not support bulk mapping then it is simulated in this met...
*string number_format
the global number format for parsing numbers
Definition: Mapper.qm.dox.h:360
auto mapSubclass(hash m, auto v)
to be overridden as necessary in subclasses
Qore::TimeZone input_timezone
the timezone for input fields in case of parsing text values; if not set defaults to the current Time...
Definition: Mapper.qm.dox.h:345
setup(hash mapv, *hash opts)
sets up the mapper object before checking the mapper hash
abstract base class for hash iterator mappping classes based on a mapper object and an iterator input...
Definition: Mapper.qm.dox.h:741
hash validKeys()
returns a list of valid field keys for this class (can be overridden in subclasses) ...
bool allow_output_dot
do not assume structured/hash output when output field names have a "." in them; instead allow output...
Definition: Mapper.qm.dox.h:354
const ValidKeys
default known mapper hash field keys (can be extended by subclassing and reimplementing validKeys()) ...
Definition: Mapper.qm.dox.h:279
string truncateField(string k, string val, int ix, int sze, int maxlen)
called to truncate fields when processing hashes of lists
*list identl
list of fields to be mapped 1:1 input -> output
Definition: Mapper.qm.dox.h:385
hash identh
map of fields to be mapped 1:1 input -> output
Definition: Mapper.qm.dox.h:382
error(string fmt)
throws a MAP-ERROR exception; prepends the map name to the description if known
*Qore::TimeZone timezone
an optional timezone for output date fields
Definition: Mapper.qm.dox.h:342
logOutput(hash h)
calls the output logging closure or call reference (if any) to log the output record ...
bool trunc_all
truncate all option
Definition: Mapper.qm.dox.h:348
const ValidTypes
default known field types (can be extended by subclassing and reimplementing validTypes() and mapFiel...
Definition: Mapper.qm.dox.h:298
hash mapData(hash rec)
processes the input record and returns a hash of the mapped values where the keys in the hash returne...
constructor(Qore::AbstractIterator iter)
creates the iterator from the arguments passed
*hash output
an optional description of the output data structure
Definition: Mapper.qm.dox.h:366
setRuntime(string key, auto value)
set the runtime option with "key" to value "value"
constructor()
private constructor for subclasses
bool hasBulk()
returns True if the iterator supports bulk mode; this method returns False (the default) ...
*string name
the optional name for the object (for example a table name); will be prepended to field names in erro...
Definition: Mapper.qm.dox.h:330
string encoding
the output character encoding; if not given then the output encoding is assumed to be UTF-8 ...
Definition: Mapper.qm.dox.h:327
int getCount()
returns the internal record count
hash optionKeys()
returns a list of valid constructor options for this class (can be overridden in subclasses) ...
*hash input
an optional description of possible input hash keys
Definition: Mapper.qm.dox.h:363
*hash getInputRecord()
returns the value of the "input" option
hash mapDataIntern(hash rec)
processes the input record and returns a hash of the mapped values where the keys in the hash returne...
list< hash > mapAll(list recs)
maps all input records and returns the mapped data as a list of output records
*code input_log
an optional input data logging callback; must accept a hash giving the input data hash ...
Definition: Mapper.qm.dox.h:336
replaceRuntime(*hash runtime)
replaces runtime options
checkMapField(string k, reference< any > fh)
perform per-field pre-processing on the passed map in the constructor
mapFieldType(string key, hash m, reference< any > v, hash rec)
performs type handling
hash rconsth
map of constant runtime fields
Definition: Mapper.qm.dox.h:391
const OutputKeys
output option keys
Definition: Mapper.qm.dox.h:307
bool valid()
returns True if the iterator is currently pointing at a valid element, False if not ...
error2(string ex, string fmt)
throws the given exception; prepends the map name to the description if known
*hash m_runtime
current runtime values
Definition: Mapper.qm.dox.h:374
resetCount()
resets the internal record count
fieldLengthError(string k, string val, int ix, int sze, int maxlen, hash rc)
called when a field exceeds its maximum length when processing hashes of lists