Qore CsvUtil Module Reference  1.2
 All Classes Namespaces Functions Variables Groups Pages
CsvUtil::AbstractCsvWriter Class Referenceabstract

the AbstractCsvWriter class provides a parent for all CSV writers More...

Inheritance diagram for CsvUtil::AbstractCsvWriter:

Public Member Functions

 constructor (string errname, *hash opts)
 creates the AbstractCsvWriter More...
 
private string dateFormat (int ix)
 format date to string by options. Priority: 1) column definition 2) standard format
 
private string prepareRawLine (list values)
 Prepare a string (line with EOF) with formatting and escaping. More...
 
 write (AbstractIterator iterator)
 stream iterator into the file. More...
 
 writeLine (list values)
 write a line with list of values. Data are checked against column rules. More...
 
 writeLine (hash values)
 write a line with headers-values hash More...
 
abstract private writeRawLine (list values)
 real write implementation. Without any checking.
 

Private Attributes

const Options
 valid options for the object (a hash for quick lookups of valid keys)
 

Additional Inherited Members

- Private Member Functions inherited from CsvHelper
private setFields ()
 sets field description list
 

Detailed Description

the AbstractCsvWriter class provides a parent for all CSV writers

Any inherited class has to implement pure virtual (abstract) method, where should be the real physical write action placed.

private writeRawLine(list $values)

AbstractCsvWriter Constructor Option Hash Overview

The AbstractCsvWriter class constructor takes an optional hash with possible keys given in the following table. Note that key names are case-sensitive, and data types are soft (conversions are made when possible).

AbstractCsvWriter Options

Option Data Type Description
"encoding" String the character encoding for the file (and for tagging string data read); if the value of this key is not a string then it will be ignored
"separator" String the string separating the fields in the file (default: ",")
"quote" String the field quote character (default: '"')
"eol" String the end of line character(s) (default: auto-detect); if the value of this key is not a string then it will be ignored
"headers" List of strings list of header / column names for the data iterated
"verify-columns" Boolean if True (the default is False) then if a line is parsed with a different column count than other lines, a CSVFILEWRITER-DATA-ERROR exception is thrown
"date-format" String the default mask for date values formatting

Member Function Documentation

CsvUtil::AbstractCsvWriter::constructor ( string  errname,
*hash  opts 
)

creates the AbstractCsvWriter

Parameters
errnamea string to construct child class error message. For example: value 'FOO' will result in exception names 'CSVFOOWRITER-ERROR'
optsAbstractCsvWriter Constructor Option Hash Overview
Exceptions
CSV<errname>ITER-ERRORin the case of incorrect options
private string CsvUtil::AbstractCsvWriter::prepareRawLine ( list  values)

Prepare a string (line with EOF) with formatting and escaping.

Parameters
valuesa list with values
Returns
string a formatted and escaped line with EOF
CsvUtil::AbstractCsvWriter::write ( AbstractIterator  iterator)

stream iterator into the file.

Parameters
iteratoran iterator to stream data into file

The iterator has to contain List or Hash as a return value of getValue() method.

Exceptions
CSVFILEWRITER-DATA-ERRORwhen the data does not fit defined column constraints or when getValue does not return list or hash
CsvUtil::AbstractCsvWriter::writeLine ( list  values)

write a line with list of values. Data are checked against column rules.

Parameters
valuesa list with values
Exceptions
CSVFILEWRITER-DATA-ERRORwhen the data does not fit defined column constraints
CsvUtil::AbstractCsvWriter::writeLine ( hash  values)

write a line with headers-values hash

Parameters
valuesa hash with keys as column headers.
Exceptions
CSVFILEWRITER-DATA-ERRORwhen the data does not fit defined column constraints