AbstractRowProcessor

com.phasmidsoftware.tableparser.core.parse.AbstractRowProcessor
abstract class AbstractRowProcessor[Row] extends RowProcessor[Row]

Abstract class representing a row processor for handling input rows and parsing them into a specified row type.

This class extends the RowProcessor type class and provides additional methods for processing iterators of input rows based on headers and transformation functions. It relies on the implicit evidence of the Joinable type class to define behavior for handling the input type.

Type parameters

Row

the type of rows output by this processor.

Attributes

Graph
Supertypes
trait RowProcessor[Row]
class Object
trait Matchable
class Any
Known subtypes
class StringRowProcessor[Row]

Members list

Type members

Inherited and Abstract types

type Input

The input type, typically String.

The input type, typically String.

Attributes

Inherited from:
RowProcessor

Value members

Concrete methods

def process(xs: Iterator[Input], n: Int)(using ev: Joinable[Input]): Iterator[Row]

Processes an iterator of input rows with an optional header and parses them into rows.

Processes an iterator of input rows with an optional header and parses them into rows.

NOTE this will not work as required because it will still have to collect all of the individual elements inside a Try at some point. That defeats the purpose of just being able to iterate.

Depending on the presence of a fixed header and the number of rows to drop (n):

  • If a fixed header is available, the processing starts after dropping the first n rows.
  • If no fixed header is available but n > 0, the first n rows are extracted and used to parse the header, and subsequent rows are processed accordingly.
  • If no fixed header is available and n <= 0, an error is returned indicating a logic issue.

This method heavily relies on implicit evidence (Joinable[Input]) to ensure the input type adheres to the necessary constraints for the transformation and joining of rows.

Value parameters

ev

an implicit evidence parameter ensuring the input type adheres to the Joinable type class, which provides methods to combine or validate input elements during processing.

n

the number of initial rows to ignore (e.g., when rows are part of the header). This parameter is ignored if maybeHeader is defined.

xs

an iterator of inputs, where each element corresponds to a row of input data.

Attributes

Returns

a Try containing an iterator of parsed Row objects if the parsing succeeds, or a failure if any step of the process encounters an error (e.g., invalid header or processing logic).

Inherited fields

protected val forgiving: Boolean

Method to determine how errors are handled.

Method to determine how errors are handled.

Attributes

Returns

true if individual errors are logged but do not cause parsing to fail.

Inherited from:
RowProcessor
val headerRowsToRead: Int

This indicates the number of header rows which must be read from the input. If maybeHeader exists, then this property is ignored.

This indicates the number of header rows which must be read from the input. If maybeHeader exists, then this property is ignored.

Attributes

Inherited from:
RowProcessor
protected val maybeHeader: Option[Header]

This variable determines if there is a programmed, i.e., fixed, header for the parser. If its value is None, it signifies that we must look to the first line(s) of data for an appropriate header.

This variable determines if there is a programmed, i.e., fixed, header for the parser. If its value is None, it signifies that we must look to the first line(s) of data for an appropriate header.

Attributes

Inherited from:
RowProcessor
protected val multiline: Boolean

Value to determine whether it is acceptable to have a quoted string span more than one line.

Value to determine whether it is acceptable to have a quoted string span more than one line.

Attributes

Returns

true if quoted strings may span more than one line.

Inherited from:
RowProcessor
protected val predicate: Try[Row] => Boolean

Function to determine whether or not a row should be included in the table. Typically used for random sampling.

Function to determine whether or not a row should be included in the table. Typically used for random sampling.

Attributes

Inherited from:
RowProcessor

Inherited and Abstract fields

protected val rowParser: RowParser[Row, Input]

Method to define a row parser.

Method to define a row parser.

Attributes

Returns

a RowParser[Row, Input].

Inherited from:
RowProcessor