FixedLengthUtil::FixedLengthAbstractWriter Class Referenceabstract

Structured abstract writer for fixed-length lines. More...

Inheritance diagram for FixedLengthUtil::FixedLengthAbstractWriter:
[legend]

## Public Member Functions

bool | checkTransition (*string from, *string to)
| A verification function to be called for each line. This method can be overridden to achieve a begin-to-end validation of the whole input file. More...
| constructor (hash< auto > specs, *hash< auto > opts)
| creates the FixedLengthAbstractWriter object More...
string | formatLine (hash< auto > line)
| Formats a single line from a hash describing the record type and its contents. More...
int | linesCount ()
| get processed lines count
abstract | write (hash< auto > line)
| Renders a single line for a single input record hash to the output. More...
abstract | write (list< auto > lines)
| iterates the input records and writes rendered versions of all input records to the output More...
abstract | write (Qore::AbstractIterator lines)
| iterates the input records and writes rendered versions of all input records to the output More...
Public Member Functions inherited from FixedLengthUtil::FixedLengthBase
| constructor (hash< auto > m_specs, *hash< auto > m_opts)
| Creates the object from the record specifications.
*hash< string, AbstractDataField > | getRecordType ()
| Returns the description of the record type, if any.

## Additional Inherited Members

Protected Attributes inherited from FixedLengthUtil::FixedLengthBase
const | GlobalOptionMap = ...
| Translates from global options to data provider options.
*hash< auto > | m_opts
| Global input or output options.
hash< auto > | m_specs
| The record specifications.

## Detailed Description

Structured abstract writer for fixed-length lines.

## Member Function Documentation

## checkTransition()

bool FixedLengthUtil::FixedLengthAbstractWriter::checkTransition | ( | *string | from,
|  | *string | to
| ) |  |

A verification function to be called for each line. This method can be overridden to achieve a begin-to-end validation of the whole input file.

Parameters

  from | Type of previous line being processed
  to | Type of the current line being processed

## constructor()

FixedLengthUtil::FixedLengthAbstractWriter::constructor | ( | hash< auto > | specs,
|  | *hash< auto > | opts
| ) |  |

creates the FixedLengthAbstractWriter object

Parameters

  specs | Fixed-length line specification; see Specification Hash for more information
  opts | Global options; see Global Options for valid values

## formatLine()

string FixedLengthUtil::FixedLengthAbstractWriter::formatLine | ( | hash< auto > | line | ) |

Formats a single line from a hash describing the record type and its contents.

Parameters

  line

  a hash describing the record to be formatted; the hash must have the following keys:
  - `"type"`: a string giving the record type (must be defined in Specification Hash given in the constructor)
  - `"record"`: a hash giving the input record to be rendered (with keys as defined in the Record Description Hash for the record identified by the type argument)

Exceptions

  INVALID-LINE-DATA | line argument missing either type or record keys
  INVALID-RECORD | record name (type key in the record hash) not recognized
  FIELD-INPUT-ERROR | the input value is too large to render into the output field
  RECORD-TRANSITION-ERROR | a record transition error occurred; an invalid record sequence was given in the input data

## write() [1/3]

abstract FixedLengthUtil::FixedLengthAbstractWriter::write | ( | hash< auto > | line | ) |

pure virtual

Renders a single line for a single input record hash to the output.

Parameters

  line

  A hash representing input data to be written to the output; the hash must have the following keys:
  - `"type"`: a string giving the record type (must be defined in Specification Hash given in the constructor)
  - `"record"`: a hash giving the input record to be rendered (with keys as defined in the Record Description Hash for the record identified by the type argument)

Exceptions

  INVALID-RECORD | record name (type key in the record hash) not recognized
  FIELD-INPUT-ERROR | the input value is too large to render into the output field
  RECORD-TRANSITION-ERROR | a record transition error occurred; an invalid record sequence was given in the input data

Implemented in FixedLengthUtil::FixedLengthWriter, FixedLengthUtil::FixedLengthFileWriter, and FixedLengthUtil::FixedLengthDataWriter.

## write() [2/3]

abstract FixedLengthUtil::FixedLengthAbstractWriter::write | ( | list< auto > | lines | ) |

pure virtual

iterates the input records and writes rendered versions of all input records to the output

Parameters

  lines

  A list of input records; each list value must be a hash with the following keys:
  - `"type"`: a string giving the record type (must be defined in Specification Hash given in the constructor)
  - `"record"`: a hash giving the input record to be rendered (with keys as defined in the Record Description Hash for the record identified by the type argument)

Exceptions

  INVALID-RECORD | record name (type key in the record hash) not recognized
  FIELD-INPUT-ERROR | the input value is too large to render into the output field
  RECORD-TRANSITION-ERROR | a record transition error occurred; an invalid record sequence was given in the input data

Implemented in FixedLengthUtil::FixedLengthWriter, FixedLengthUtil::FixedLengthFileWriter, and FixedLengthUtil::FixedLengthDataWriter.

## write() [3/3]

abstract FixedLengthUtil::FixedLengthAbstractWriter::write | ( | Qore::AbstractIterator | lines | ) |

pure virtual

iterates the input records and writes rendered versions of all input records to the output

Parameters

  lines

  An iterator to stream input records; each iterator value must be a hash with the following keys:
  - `"type"`: a string giving the record type (must be defined in Specification Hash given in the constructor)
  - `"record"`: a hash giving the input record to be rendered (with keys as defined in the Record Description Hash for the record identified by the type argument)

Exceptions

  INVALID-RECORD | record name (type key in the record hash) not recognized
  FIELD-INPUT-ERROR | the input value is too large to render into the output field
  RECORD-TRANSITION-ERROR | a record transition error occurred; an invalid record sequence was given in the input data

Implemented in FixedLengthUtil::FixedLengthWriter, FixedLengthUtil::FixedLengthFileWriter, and FixedLengthUtil::FixedLengthDataWriter.