T
- The type managed by the Header
.public abstract class AbstractHeader<T,C extends Column<? extends T>> extends ArrayList<C> implements HeaderTemplate<T,C>, Cloneable
modCount
Constructor and Description |
---|
AbstractHeader()
Constructs the
AbstractHeader instance. |
AbstractHeader(C... aHeader)
Constructs the
AbstractHeader instance configured with the
provided Column instances. |
Modifier and Type | Method and Description |
---|---|
boolean |
add(C aColumn) |
void |
add(int aIndex,
C aColumn) |
boolean |
containsKey(String aKey) |
Record<T> |
fromStorageString(Record<String> aStringRecord)
A special
Column implementation might provide its own text
exchange format for the given objects. |
Row<T> |
fromStorageString(Row<String> aStringRow)
A special
Column implementation might provide its own text
exchange format for the given objects. |
Row<T> |
fromStorageStringRecord(Record<String> aStringRecord)
A special
Column implementation might provide its own text
exchange format for the given objects. |
Record<T> |
fromStorageStringRow(Row<String> aStringRow)
A special
Column implementation might provide its own text
exchange format for the given objects. |
Record<T> |
fromStorageStrings(Record<String[]> aStringsRecord)
A special
Column implementation might provide its own text
exchange format for the given objects. |
Row<T> |
fromStorageStrings(Row<String[]> aStringsRow)
A special
Column implementation might provide its own text
exchange format for the given objects. |
Row<T> |
fromStorageStringsRecord(Record<String[]> aStringsRecord)
A special
Column implementation might provide its own text
exchange format for the given objects. |
Record<T> |
fromStorageStringsRow(Row<String[]> aStringsRow)
A special
Column implementation might provide its own text
exchange format for the given objects. |
C |
get(String aKey) |
int |
indexOf(String aKey)
Determines the index of the column with the given key or -1 if there is
none such column.
|
Set<String> |
keySet()
-----------------------------------------------------------
-------------- A
LinkedHashSet is returned in order to preserve
the order of the elements as contained in the Header itself |
C |
removeByKey(String aKey) |
Record<String> |
toPrintable(Record<? extends T> aRecord)
A special
Column implementation might provide its own printable
format of the given objects; for example a human readable text
representation of the value (or in very specialized cases even enriched
with ANSI Escape-Codes). |
Row<String> |
toPrintable(Row<? extends T> aRow)
A special
Column implementation might provide its own printable
format of the given objects; for example a human readable text
representation of the value (or in very specialized cases even enriched
with ANSI Escape-Codes). |
Record<String> |
toPrintableRecord(Row<? extends T> aRow)
A special
Column implementation might provide its own printable
format of the given objects; for example a human readable text
representation of the value (or in very specialized cases even enriched
with ANSI Escape-Codes). |
Row<String> |
toPrintableRow(Record<? extends T> aRecord)
A special
Column implementation might provide its own printable
format of the given objects; for example a human readable text
representation of the value (or in very specialized cases even enriched
with ANSI Escape-Codes). |
Record<T> |
toRecord(Row<? extends T> aRow)
|
Record<?> |
toRecordIgnoreType(Row<?> aRow)
Similar to
HeaderTemplate.toRecord(Row) with the difference that conversion is
done ignoring the type of the HeaderTemplate Column
instances and the according value(s). |
Row<T> |
toRow(Record<? extends T> aRecord)
|
Row<?> |
toRowIgnoreType(Record<?> aRecord)
Similar to
HeaderTemplate.toRow(Record) with the difference that conversion is
done ignoring the type of the HeaderTemplate Column
instances and the according value(s). |
Record<String> |
toStorageString(Record<? extends T> aRecord)
A special
Column implementation might provide its own text
exchange format for the given objects. |
Row<String> |
toStorageString(Row<? extends T> aRow)
A special
Column implementation might provide its own text
exchange format for the given objects. |
Record<String> |
toStorageStringRecord(Row<? extends T> aRow)
A special
Column implementation might provide its own text
exchange format for the given objects. |
Row<String> |
toStorageStringRow(Record<? extends T> aRecord)
A special
Column implementation might provide its own text
exchange format for the given objects. |
Record<String[]> |
toStorageStrings(Record<? extends T> aRecord)
A special
Column implementation might provide its own text
exchange format for the given objects. |
Row<String[]> |
toStorageStrings(Row<? extends T> aRow)
A special
Column implementation might provide its own text
exchange format for the given objects. |
Record<String[]> |
toStorageStringsRecord(Row<? extends T> aRow)
A special
Column implementation might provide its own text
exchange format for the given objects. |
Row<String[]> |
toStorageStringsRow(Record<? extends T> aRecord)
A special
Column implementation might provide its own text
exchange format for the given objects. |
Collection<C> |
values() |
addAll, addAll, clear, clone, contains, ensureCapacity, forEach, get, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, removeIf, removeRange, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray, trimToSize
equals, hashCode
containsAll, toString
finalize, getClass, notify, notifyAll, wait, wait, wait
withColumns
addAll, addAll, clear, contains, containsAll, equals, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray
parallelStream, removeIf, stream
public AbstractHeader()
AbstractHeader
instance.@SafeVarargs public AbstractHeader(C... aHeader)
AbstractHeader
instance configured with the
provided Column
instances.aHeader
- The Column
instances to be contained in the
AbstractHeader
in the order as passed.public boolean containsKey(String aKey)
public Set<String> keySet()
LinkedHashSet
is returned in order to preserve
the order of the elements as contained in the Header
itself.
-------------------------------------------------------------------------public int indexOf(String aKey)
HeaderTemplate
public Record<String> toStorageString(Record<? extends T> aRecord) throws HeaderMismatchException, ColumnMismatchException
HeaderTemplate
Column
implementation might provide its own text
exchange format for the given objects. This method enables the
HeaderTemplate
to convert a Record
of the given type to a
Record
containing only String
values and via
HeaderTemplate.fromStorageString(Record)
back to the actual Record
(bijective).
This method may use a Column
instance's method
Column.toStorageString(Object)
.toStorageString
in interface HeaderTemplate<T,C extends Column<? extends T>>
aRecord
- the Record
to be converted to a String
Record
.String
representation of the value.HeaderMismatchException
- Thrown in case there is a mismatch
between the given Columns
and the Row
, i.e. the
index for the given key in the header may be out of index of the
given row or the given key does not exist in the
HeaderTemplate
.ColumnMismatchException
- Thrown in case a value was found in the
e.g. in a Record
of the wrong type than specified by a
Column
of the HeaderTemplate
.public Row<String> toStorageString(Row<? extends T> aRow) throws HeaderMismatchException, ColumnMismatchException
HeaderTemplate
Column
implementation might provide its own text
exchange format for the given objects. This method enables the
HeaderTemplate
to convert a Row
of the given type to a
Row
containing only String
values and via
HeaderTemplate.fromStorageString(Row)
back to the actual Row
(bijective).
This method may use a Column
instance's method
Column.toStorageString(Object)
.toStorageString
in interface HeaderTemplate<T,C extends Column<? extends T>>
aRow
- the Row
to be converted to a String
Row
.String
representation of the value.HeaderMismatchException
- Thrown in case there is a mismatch
between the given HeaderMismatchException
and the
Row
, i.e. the index for the given key in the header may
be out of index of the given row or the given key does not exist
in the HeaderTemplate
.ColumnMismatchException
- Thrown in case a value was found in the
e.g. in a Row
of the wrong type than specified by a
Column
of the HeaderTemplate
.public Record<T> fromStorageString(Record<String> aStringRecord) throws HeaderMismatchException, ParseException
HeaderTemplate
Column
implementation might provide its own text
exchange format for the given objects. This method enables the
HeaderTemplate
to convert a Record
containing only
String
objects to a Record
with the given types and via
HeaderTemplate.toStorageString(Record)
back to the String
Record
(bijective).
This method may use a Column
instance's method
Column.fromStorageString(String)
.fromStorageString
in interface HeaderTemplate<T,C extends Column<? extends T>>
aStringRecord
- the String
Record
to be converted to
a type Record
.HeaderMismatchException
- Thrown in case there is a mismatch
between the given Columns
and the Row
, i.e. the
index for the given key in the header may be out of index of the
given row or the given key does not exist in the
HeaderTemplate
.ParseException
- in case parsing the input was not possiblepublic Row<T> fromStorageString(Row<String> aStringRow) throws HeaderMismatchException, ParseException
HeaderTemplate
Column
implementation might provide its own text
exchange format for the given objects. This method enables the
HeaderTemplate
to convert a Row
containing only
String
objects to a Row
with the given types and via
HeaderTemplate.toStorageString(Row)
back to the String
Row
(bijective).
This method may use a Column
instance's method
Column.fromStorageString(String)
.fromStorageString
in interface HeaderTemplate<T,C extends Column<? extends T>>
aStringRow
- the String
Row
to be converted to a
type Row
.HeaderMismatchException
- Thrown in case there is a mismatch
between the given HeaderMismatchException
and the
Row
, i.e. the index for the given key in the header may
be out of index of the given row or the given key does not exist
in the HeaderTemplate
.ParseException
- in case parsing the input was not possiblepublic Record<String[]> toStorageStrings(Record<? extends T> aRecord) throws HeaderMismatchException, ColumnMismatchException
HeaderTemplate
Column
implementation might provide its own text
exchange format for the given objects. This method enables the
HeaderTemplate
to convert a Record
of the given type to a
Record
containing only String
arrays and via
HeaderTemplate.fromStorageStrings(Record)
back to the actual Record
(bijective).
This method may use a Column
instance's method
Column.toStorageStrings(Object)
.
Supporting String
arrays enables to address data sinks which
support multiple values in one filed (for example some NoSQL databases
such as Amazon's simple DB supports multiple values in one row's entry).toStorageStrings
in interface HeaderTemplate<T,C extends Column<? extends T>>
aRecord
- the Record
to be converted to a String
Record
.String
representation of the value.HeaderMismatchException
- Thrown in case there is a mismatch
between the given Columns
and the Row
, i.e. the
index for the given key in the header may be out of index of the
given row or the given key does not exist in the
HeaderTemplate
.ColumnMismatchException
- Thrown in case a value was found in the
e.g. in a Record
of the wrong type than specified by a
Column
of the HeaderTemplate
.public Row<String[]> toStorageStrings(Row<? extends T> aRow) throws HeaderMismatchException, ColumnMismatchException
HeaderTemplate
Column
implementation might provide its own text
exchange format for the given objects. This method enables the
HeaderTemplate
to convert a Row
of the given type to a
Row
containing only String
arrays and via
HeaderTemplate.fromStorageStrings(Row)
back to the actual Row
(bijective).
This method may use a Column
instance's method
Column.toStorageStrings(Object)
.
Supporting String
arrays enables to address data sinks which
support multiple values in one filed (for example some NoSQL databases
such as Amazon's simple DB supports multiple values in one row's entry).toStorageStrings
in interface HeaderTemplate<T,C extends Column<? extends T>>
aRow
- the Row
to be converted to a String
Row
.String
representation of the value.HeaderMismatchException
- Thrown in case there is a mismatch
between the given HeaderMismatchException
and the
Row
, i.e. the index for the given key in the header may
be out of index of the given row or the given key does not exist
in the HeaderTemplate
.ColumnMismatchException
- Thrown in case a value was found in the
e.g. in a Row
of the wrong type than specified by a
Column
of the HeaderTemplate
.public Row<T> fromStorageStrings(Row<String[]> aStringsRow) throws HeaderMismatchException, ParseException
HeaderTemplate
Column
implementation might provide its own text
exchange format for the given objects. This method enables the
HeaderTemplate
to convert a Row
containing only
String
objects to a Row
with the given types and via
HeaderTemplate.toStorageStrings(Row)
back to the String
array
Row
(bijective).
This method may use a Column
instance's method
Column.fromStorageStrings(String[])
.
Supporting String
arrays enables to address data sinks which
support multiple values in one filed (for example some NoSQL databases
such as Amazon's simple DB supports multiple values in one row's entry).fromStorageStrings
in interface HeaderTemplate<T,C extends Column<? extends T>>
aStringsRow
- the String
array Row
to be converted
to a type Row
.HeaderMismatchException
- Thrown in case there is a mismatch
between the given HeaderMismatchException
and the
Row
, i.e. the index for the given key in the header may
be out of index of the given row or the given key does not exist
in the HeaderTemplate
.ParseException
- in case parsing the input was not possiblepublic Record<T> fromStorageStrings(Record<String[]> aStringsRecord) throws HeaderMismatchException, ParseException
HeaderTemplate
Column
implementation might provide its own text
exchange format for the given objects. This method enables the
HeaderTemplate
to convert a Record
containing only
String
objects to a Record
with the given types and via
HeaderTemplate.toStorageStrings(Record)
back to the String
Record
(bijective).
This method may use a Column
instance's method
Column.fromStorageStrings(String[])
.
Supporting String
arrays enables to address data sinks which
support multiple values in one filed (for example some NoSQL databases
such as Amazon's simple DB supports multiple values in one row's entry).fromStorageStrings
in interface HeaderTemplate<T,C extends Column<? extends T>>
aStringsRecord
- the String
array Record
to be
converted to a type Record
.HeaderMismatchException
- Thrown in case there is a mismatch
between the given Columns
and the Row
, i.e. the
index for the given key in the header may be out of index of the
given row or the given key does not exist in the
HeaderTemplate
.ParseException
- in case parsing the input was not possiblepublic Record<String> toPrintable(Record<? extends T> aRecord) throws HeaderMismatchException, ColumnMismatchException
HeaderTemplate
Column
implementation might provide its own printable
format of the given objects; for example a human readable text
representation of the value (or in very specialized cases even enriched
with ANSI Escape-Codes). This method enables the HeaderTemplate
to convert a value of the given type to a human readable text. The human
readable text, in comparison to the method
HeaderTemplate.toStorageString(Record)
(or HeaderTemplate.toStorageStrings(Record)
)
is not intended to be converted back to the actual value (not bijective).
This method may use a Column
instance's method
Column.toPrintable(Object)
; it also might enrich the output of
the Column.toPrintable(Object)
with device specific additional
data such as ANSI Escape-Codes and with information regarding the
Record
as a whole and not just be regarding a single value.toPrintable
in interface HeaderTemplate<T,C extends Column<? extends T>>
aRecord
- the Record
to be converted to a human readable
text Record
.Record
.HeaderMismatchException
- Thrown in case there is a mismatch
between the given Columns
and the Row
, i.e. the
index for the given key in the header may be out of index of the
given row or the given key does not exist in the
HeaderTemplate
.ColumnMismatchException
- Thrown in case a value was found in the
e.g. in a Record
of the wrong type than specified by a
Column
of the HeaderTemplate
.public Row<String> toPrintable(Row<? extends T> aRow) throws HeaderMismatchException, ColumnMismatchException
HeaderTemplate
Column
implementation might provide its own printable
format of the given objects; for example a human readable text
representation of the value (or in very specialized cases even enriched
with ANSI Escape-Codes). This method enables the HeaderTemplate
to convert a value of the given type to a human readable text. The human
readable text, in comparison to the method HeaderTemplate.toStorageString(Row)
(or HeaderTemplate.toStorageStrings(Row)
) is not intended to be converted back
to the actual value (not bijective).
This method may use a Column
instance's method
Column.toPrintable(Object)
; it also might enrich the output of
the Column.toPrintable(Object)
with device specific additional
data such as ANSI Escape-Codes and with information regarding the
Row
as a whole and not just be regarding a single value.toPrintable
in interface HeaderTemplate<T,C extends Column<? extends T>>
aRow
- the Row
to be converted to a human readable text
Row
.Row
.HeaderMismatchException
- Thrown in case there is a mismatch
between the given HeaderMismatchException
and the
Row
, i.e. the index for the given key in the header may
be out of index of the given row or the given key does not exist
in the HeaderTemplate
.ColumnMismatchException
- Thrown in case a value was found in the
e.g. in a Row
of the wrong type than specified by a
Column
of the HeaderTemplate
.public Row<T> toRow(Record<? extends T> aRecord) throws HeaderMismatchException, ColumnMismatchException
HeaderTemplate
Row
of the Record
with the values in the order
of the HeaderTemplate
. This method is kind of "strong typed" as
any type mismatch between the Column
defined in the
HeaderTemplate
and the according value of the Record
we
get a ColumnMismatchException
.
If you want to get a Row
in any case use the "weak typed"
TabularUtility#toUncheckedRow(Record,HeaderTemplate)
method which
will create a Row
even if there is a column type mismatch.
/////////////////////////////////////////////////////////////////////////
In order to get separated values (CSV),use the HeaderTemplate.toRow(Record)
or
TabularUtility#toUncheckedRow(Record,HeaderTemplate)
methods as
only in conjunction with an order of a HeaderTemplate
we can
retrieve valid separated values.
/////////////////////////////////////////////////////////////////////////toRow
in interface HeaderTemplate<T,C extends Column<? extends T>>
aRecord
- The Record
to use when creating the Row
.Row
according to the Column
instances of the
HeaderTemplate
.HeaderMismatchException
- Thrown in case there is a mismatch
between the given HeaderMismatchException
and the
Row
, i.e. the index for the given key in the header may
be out of index of the given row or the given key does not exist
in the HeaderTemplate
.ColumnMismatchException
- Thrown in case a value was found in the
e.g. in a Record
of the wrong type than specified by a
Column
of the HeaderTemplate
.public Row<?> toRowIgnoreType(Record<?> aRecord) throws HeaderMismatchException
HeaderTemplate
HeaderTemplate.toRow(Record)
with the difference that conversion is
done ignoring the type of the HeaderTemplate
Column
instances and the according value(s).toRowIgnoreType
in interface HeaderTemplate<T,C extends Column<? extends T>>
aRecord
- The Record
to use when creating the Row
.Row
according to the Column
instances of the
HeaderTemplate
.HeaderMismatchException
- Thrown in case there is a mismatch
between the given HeaderMismatchException
and the
Row
, i.e. the index for the given key in the header may
be out of index of the given row or the given key does not exist
in the HeaderTemplate
.public Record<T> toRecord(Row<? extends T> aRow) throws HeaderMismatchException, ColumnMismatchException
HeaderTemplate
Record
of the Row
with the values in the order
of the HeaderTemplate
. This method is kind of "strong typed" as
any type mismatch between the Column
defined in the
HeaderTemplate
and the according value of the Row
we get
a ColumnMismatchException
. If you want to get a Row
in
any case use the "weak typed"
TabularUtility#toUncheckedRecord(Row,HeaderTemplate)
method which
will create a Row
even if there is a column type mismatch.
/////////////////////////////////////////////////////////////////////////
In order to get separated values (CSV),use the HeaderTemplate.toRow(Record)
or
TabularUtility#toUncheckedRecord(Row,HeaderTemplate)
methods as
only in conjunction with an order of a HeaderTemplate
we can
retrieve valid separated values.
/////////////////////////////////////////////////////////////////////////toRecord
in interface HeaderTemplate<T,C extends Column<? extends T>>
aRow
- The Record
to use when creating the Record
.Row
according to the Column
instances of the
HeaderTemplate
.HeaderMismatchException
- Thrown in case there is a mismatch
between the given HeaderMismatchException
and the
Row
, i.e. the index for the given key in the header may
be out of index of the given row or the given key does not exist
in the HeaderTemplate
.ColumnMismatchException
- Thrown in case a value was found in the
e.g. in a Record
of the wrong type than specified by a
Column
of the HeaderTemplate
.public Record<?> toRecordIgnoreType(Row<?> aRow) throws HeaderMismatchException
HeaderTemplate
HeaderTemplate.toRecord(Row)
with the difference that conversion is
done ignoring the type of the HeaderTemplate
Column
instances and the according value(s).toRecordIgnoreType
in interface HeaderTemplate<T,C extends Column<? extends T>>
aRow
- The Record
to use when creating the Record
.Row
according to the Column
instances of the
HeaderTemplate
.HeaderMismatchException
- Thrown in case there is a mismatch
between the given HeaderMismatchException
and the
Row
, i.e. the index for the given key in the header may
be out of index of the given row or the given key does not exist
in the HeaderTemplate
.public Row<T> fromStorageStringRecord(Record<String> aStringRecord) throws HeaderMismatchException, ParseException
Column
implementation might provide its own text
exchange format for the given objects. This method enables the
HeaderTemplate
to convert a Record
containing only
String
objects to a Row
with the given types and via
HeaderTemplate.toStorageStringRecord(Row)
back to the String
Record
(bijective).
This method may use a Column
instance's method
Column.fromStorageString(String)
.
-------------------------------------------------------------------------
TODO !!! STILL TO BE TESTED !!!
-------------------------------------------------------------------------fromStorageStringRecord
in interface HeaderTemplate<T,C extends Column<? extends T>>
aStringRecord
- the String
Record
to be converted to
a type Row
.Row
representation of the String
Record
.HeaderMismatchException
- Thrown in case there is a mismatch
between the given HeaderMismatchException
and the
Row
, i.e. the index for the given key in the header may
be out of index of the given row or the given key does not exist
in the HeaderTemplate
.ParseException
- in case parsing the input was not possiblepublic Record<String> toStorageStringRecord(Row<? extends T> aRow) throws HeaderMismatchException, ColumnMismatchException
Column
implementation might provide its own text
exchange format for the given objects. This method enables the
HeaderTemplate
to convert a Row
of the given type to a
Record
containing only String
values and via
HeaderTemplate.fromStorageStringRecord(Record)
back to the actual Row
(bijective).
This method may use a Column
instance's method
Column.toStorageString(Object)
.
-------------------------------------------------------------------------
TODO !!! STILL TO BE TESTED !!!
-------------------------------------------------------------------------toStorageStringRecord
in interface HeaderTemplate<T,C extends Column<? extends T>>
aRow
- The Row
to be converted to a String
Record
.String
representation of the value.HeaderMismatchException
- Thrown in case there is a mismatch
between the given HeaderMismatchException
and the
Row
, i.e. the index for the given key in the header may
be out of index of the given row or the given key does not exist
in the HeaderTemplate
.ColumnMismatchException
- Thrown in case a value was found in the
e.g. in a Row
of the wrong type than specified by a
Column
of the HeaderTemplate
.public Record<T> fromStorageStringRow(Row<String> aStringRow) throws HeaderMismatchException, ParseException
Column
implementation might provide its own text
exchange format for the given objects. This method enables the
HeaderTemplate
to convert a Row
containing only
String
objects to a Record
with the given types and via
#toStringRow(Record)
back to the String
Row
(bijective).
This method may use a Column
instance's method
Column.fromStorageString(String)
.
-------------------------------------------------------------------------
TODO !!! STILL TO BE TESTED !!!
-------------------------------------------------------------------------fromStorageStringRow
in interface HeaderTemplate<T,C extends Column<? extends T>>
aStringRow
- the String
Row
to be converted to a
type Record
.HeaderMismatchException
- Thrown in case there is a mismatch
between the given HeaderMismatchException
and the
Row
, i.e. the index for the given key in the header may
be out of index of the given row or the given key does not exist
in the HeaderTemplate
.ParseException
- in case parsing the input was not possiblepublic Row<String> toStorageStringRow(Record<? extends T> aRecord) throws HeaderMismatchException, ColumnMismatchException
Column
implementation might provide its own text
exchange format for the given objects. This method enables the
HeaderTemplate
to convert a Record
of the given type to a
Row
containing only String
values and via
HeaderTemplate.fromStorageStringRecord(Record)
back to the actual
Record
(bijective).
This method may use a Column
instance's method
Column.toStorageString(Object)
.
-------------------------------------------------------------------------
TODO !!! STILL TO BE TESTED !!!
-------------------------------------------------------------------------toStorageStringRow
in interface HeaderTemplate<T,C extends Column<? extends T>>
aRecord
- The Row
to be converted to a String
Record
.String
representation of the value.HeaderMismatchException
- Thrown in case there is a mismatch
between the given HeaderMismatchException
and the
Row
, i.e. the index for the given key in the header may
be out of index of the given row or the given key does not exist
in the HeaderTemplate
.ColumnMismatchException
- Thrown in case a value was found in the
e.g. in a Record
of the wrong type than specified by a
Column
of the HeaderTemplate
.public Row<T> fromStorageStringsRecord(Record<String[]> aStringsRecord) throws HeaderMismatchException, ParseException
Column
implementation might provide its own text
exchange format for the given objects. This method enables the
HeaderTemplate
to convert a Record
containing only
String
arrays to a Row
with the given types and via
HeaderTemplate.toStorageStringsRecord(Row)
back to the String
Record
(bijective).
This method may use a Column
instance's method
Column#fromStorageStrings(String)
.
Supporting String
arrays enables to address data sinks which
support multiple values in one filed (for example some NoSQL databases
such as Amazon's simple DB supports multiple values in one row's entry).
-------------------------------------------------------------------------
TODO !!! STILL TO BE TESTED !!!
-------------------------------------------------------------------------fromStorageStringsRecord
in interface HeaderTemplate<T,C extends Column<? extends T>>
aStringsRecord
- the String
Record
to be converted
to a type Row
.Row
representation of the String
Record
.HeaderMismatchException
- Thrown in case there is a mismatch
between the given HeaderMismatchException
and the
Row
, i.e. the index for the given key in the header may
be out of index of the given row or the given key does not exist
in the HeaderTemplate
.ParseException
- in case parsing the input was not possiblepublic Record<String[]> toStorageStringsRecord(Row<? extends T> aRow) throws HeaderMismatchException, ColumnMismatchException
Column
implementation might provide its own text
exchange format for the given objects. This method enables the
HeaderTemplate
to convert a Row
of the given type to a
Record
containing only String
arrays and via
HeaderTemplate.fromStorageStringsRecord(Record)
back to the actual Row
(bijective).
This method may use a Column
instance's method
Column.toStorageStrings(Object)
.
Supporting String
arrays enables to address data sinks which
support multiple values in one filed (for example some NoSQL databases
such as Amazon's simple DB supports multiple values in one row's entry).
-------------------------------------------------------------------------
TODO !!! STILL TO BE TESTED !!!
-------------------------------------------------------------------------toStorageStringsRecord
in interface HeaderTemplate<T,C extends Column<? extends T>>
aRow
- The Row
to be converted to a String
Record
.String
representation of the value.HeaderMismatchException
- Thrown in case there is a mismatch
between the given HeaderMismatchException
and the
Row
, i.e. the index for the given key in the header may
be out of index of the given row or the given key does not exist
in the HeaderTemplate
.ColumnMismatchException
- Thrown in case a value was found in the
e.g. in a Row
of the wrong type than specified by a
Column
of the HeaderTemplate
.public Record<T> fromStorageStringsRow(Row<String[]> aStringsRow) throws HeaderMismatchException, ParseException
Column
implementation might provide its own text
exchange format for the given objects. This method enables the
HeaderTemplate
to convert a Row
containing only
String
arrays to a Record
with the given types and via
HeaderTemplate.toStorageStringsRow(Record)
back to the String
Row
(bijective).
This method may use a Column
instance's method
Column#fromStorageStrings(String)
.
Supporting String
arrays enables to address data sinks which
support multiple values in one filed (for example some NoSQL databases
such as Amazon's simple DB supports multiple values in one row's entry).
-------------------------------------------------------------------------
TODO !!! STILL TO BE TESTED !!!
-------------------------------------------------------------------------fromStorageStringsRow
in interface HeaderTemplate<T,C extends Column<? extends T>>
aStringsRow
- the String
Row
to be converted to a
type Record
.HeaderMismatchException
- Thrown in case there is a mismatch
between the given HeaderMismatchException
and the
Row
, i.e. the index for the given key in the header may
be out of index of the given row or the given key does not exist
in the HeaderTemplate
.ParseException
- in case parsing the input was not possiblepublic Row<String[]> toStorageStringsRow(Record<? extends T> aRecord) throws HeaderMismatchException, ColumnMismatchException
Column
implementation might provide its own text
exchange format for the given objects. This method enables the
HeaderTemplate
to convert a Record
of the given type to a
Row
containing only String
arrays and via
HeaderTemplate.fromStorageStringsRecord(Record)
back to the actual
Record
(bijective).
This method may use a Column
instance's method
Column.toStorageStrings(Object)
.
Supporting String
arrays enables to address data sinks which
support multiple values in one filed (for example some NoSQL databases
such as Amazon's simple DB supports multiple values in one row's entry).
-------------------------------------------------------------------------
TODO !!! STILL TO BE TESTED !!!
-------------------------------------------------------------------------toStorageStringsRow
in interface HeaderTemplate<T,C extends Column<? extends T>>
aRecord
- The Row
to be converted to a String
Record
.String
representation of the value.HeaderMismatchException
- Thrown in case there is a mismatch
between the given HeaderMismatchException
and the
Row
, i.e. the index for the given key in the header may
be out of index of the given row or the given key does not exist
in the HeaderTemplate
.ColumnMismatchException
- Thrown in case a value was found in the
e.g. in a Record
of the wrong type than specified by a
Column
of the HeaderTemplate
.public Row<String> toPrintableRow(Record<? extends T> aRecord) throws HeaderMismatchException, ColumnMismatchException
HeaderTemplate
Column
implementation might provide its own printable
format of the given objects; for example a human readable text
representation of the value (or in very specialized cases even enriched
with ANSI Escape-Codes). This method enables the HeaderTemplate
to convert a value of the given type to a human readable text. The human
readable text, in comparison to the method #toStringRow(Record)
(or #toInterchangeableRow(Record)
) is not intended to be
converted back to the actual value (not bijective).
This method may use a Column
instance's method
Column.toPrintable(Object)
; it also might enrich the output of
the Column.toPrintable(Object)
with device specific additional
data such as ANSI Escape-Codes and with information regarding the
Record
as a whole and not just be regarding a single value.toPrintableRow
in interface HeaderTemplate<T,C extends Column<? extends T>>
aRecord
- the Record
to be converted to a human readable
text Row
.Row
representation of the
Record
.HeaderMismatchException
- Thrown in case there is a mismatch
between the given HeaderMismatchException
and the
Row
, i.e. the index for the given key in the header may
be out of index of the given row or the given key does not exist
in the HeaderTemplate
.ColumnMismatchException
- Thrown in case a value was found in the
e.g. in a Record
of the wrong type than specified by a
Column
of the HeaderTemplate
.public Record<String> toPrintableRecord(Row<? extends T> aRow) throws HeaderMismatchException, ColumnMismatchException
Column
implementation might provide its own printable
format of the given objects; for example a human readable text
representation of the value (or in very specialized cases even enriched
with ANSI Escape-Codes). This method enables the HeaderTemplate
to convert a Row
of the given type to a human readable text
Record
. The human readable text, in comparison to the method
#toStringRecord(Row)
(or #toInterchangeableRecord(Row)
)
is not intended to be converted back to the actual value (not bijective).
This method may use a Column
instance's method
Column.toPrintable(Object)
; it also might enrich the output of
the Column.toPrintable(Object)
with device specific additional
data such as ANSI Escape-Codes and with information regarding the
Row
as a whole and not just be regarding a single value.
-------------------------------------------------------------------------
TODO !!! STILL TO BE TESTED !!!
-------------------------------------------------------------------------toPrintableRecord
in interface HeaderTemplate<T,C extends Column<? extends T>>
aRow
- the Row
to be converted to a human readable text
Record
.Record
representation of the
Row
.HeaderMismatchException
- Thrown in case there is a mismatch
between the given HeaderMismatchException
and the
Row
, i.e. the index for the given key in the header may
be out of index of the given row or the given key does not exist
in the HeaderTemplate
.ColumnMismatchException
- Thrown in case a value was found in the
e.g. in a Row
of the wrong type than specified by a
Column
of the HeaderTemplate
.public boolean add(C aColumn)
public void add(int aIndex, C aColumn)
Copyright © 2017. All rights reserved.