public class ExamplesTable
extends java.lang.Object
Represents a tabular structure that holds rows of example data for parameters named via the column headers:
|header 1|header 2| .... |header n| |value 11|value 12| .... |value 1n| ... |value m1|value m2| .... |value mn|
Different header and value column separators can be specified to replace the default separator "|":
!!header 1!!header 2!! .... !!header n!! !value 11!value 12! .... !value 1n! ... !value m1!value m2| .... !value mn!
Rows starting with an ignorable separator are allowed and ignored:
|header 1|header 2| .... |header n| |-- A commented row --| |value 11|value 12| .... |value 1n| ... |-- Another commented row --| |value m1|value m2| .... |value mn|
Ignorable separator is configurable and defaults to "|--".
The separators are also configurable via inlined properties:
{ignorableSeparator=!--,headerSeparator=!,valueSeparator=!} !header 1!header 2! .... !header n! !-- A commented row --! !value 11!value 12! .... !value 1n! ... !-- Another commented row --! !value m1!value m2! .... !value mn!
By default all column values are trimmed. To avoid trimming the values, use the "trim" inlined property:
{trim=false} | header 1 | header 2 | .... | header n | | value 11 | value 12 | .... | value 1n |
Comments is column values are supported via the "commentSeparator" inlined property:
{commentSeparator=#} | header 1#comment | header 2 | .... | header n | | value 11#comment | value 12 | .... | value 1n |Comments including the separator are stripped.
The table allows the retrieval of row values as converted parameters. Use
getRowAsParameters(int)
and invoke
Parameters.valueAs(String, Class)
specifying the header and the class
type of the parameter.
The table allows the transformation of its string representation via the "transformer" inlined property:
{transformer=myTransformerName} |header 1|header 2| .... |header n| |value 11|value 12| .... |value 1n| ... |value m1|value m2| .... |value mn|The transformer needs to be registered by name via the
TableTransformers.useTransformer(String, TableTransformer)
. A few
transformers are already registered by default in TableTransformers
.
Once created, the table row can be modified, via the
withRowValues(int, Map)
method, by specifying the map of row values
to be changed.
A table can also be created by providing the entire data content, via the
#withRows(List
method.
Modifier and Type | Class and Description |
---|---|
static class |
ExamplesTable.ParametersNotMappableToType |
static class |
ExamplesTable.RowNotFound |
Modifier and Type | Field and Description |
---|---|
static ExamplesTable |
EMPTY |
Constructor and Description |
---|
ExamplesTable(java.lang.String tableAsString) |
ExamplesTable(java.lang.String tableAsString,
java.lang.String headerSeparator,
java.lang.String valueSeparator) |
ExamplesTable(java.lang.String tableAsString,
java.lang.String headerSeparator,
java.lang.String valueSeparator,
java.lang.String ignorableSeparator,
ParameterConverters parameterConverters) |
ExamplesTable(java.lang.String tableAsString,
java.lang.String headerSeparator,
java.lang.String valueSeparator,
java.lang.String ignorableSeparator,
ParameterConverters parameterConverters,
TableTransformers tableTransformers) |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
asString() |
java.util.List<java.lang.String> |
getHeaders() |
java.lang.String |
getHeaderSeparator() |
java.util.Properties |
getProperties() |
java.util.Map<java.lang.String,java.lang.String> |
getRow(int row) |
Parameters |
getRowAsParameters(int row) |
Parameters |
getRowAsParameters(int row,
boolean replaceNamedParameters) |
int |
getRowCount() |
java.util.List<java.util.Map<java.lang.String,java.lang.String>> |
getRows() |
<T> java.util.List<T> |
getRowsAs(java.lang.Class<T> type) |
<T> java.util.List<T> |
getRowsAs(java.lang.Class<T> type,
java.util.Map<java.lang.String,java.lang.String> fieldNameMapping) |
java.util.List<Parameters> |
getRowsAsParameters() |
java.util.List<Parameters> |
getRowsAsParameters(boolean replaceNamedParameters) |
java.lang.String |
getValueSeparator() |
void |
outputTo(java.io.PrintStream output) |
java.lang.String |
toString() |
ExamplesTable |
withDefaults(Parameters defaults) |
ExamplesTable |
withNamedParameters(java.util.Map<java.lang.String,java.lang.String> namedParameters) |
ExamplesTable |
withRows(java.util.List<java.util.Map<java.lang.String,java.lang.String>> values) |
ExamplesTable |
withRowValues(int row,
java.util.Map<java.lang.String,java.lang.String> values) |
public static final ExamplesTable EMPTY
public ExamplesTable(java.lang.String tableAsString)
public ExamplesTable(java.lang.String tableAsString, java.lang.String headerSeparator, java.lang.String valueSeparator)
public ExamplesTable(java.lang.String tableAsString, java.lang.String headerSeparator, java.lang.String valueSeparator, java.lang.String ignorableSeparator, ParameterConverters parameterConverters)
public ExamplesTable(java.lang.String tableAsString, java.lang.String headerSeparator, java.lang.String valueSeparator, java.lang.String ignorableSeparator, ParameterConverters parameterConverters, TableTransformers tableTransformers)
public ExamplesTable withDefaults(Parameters defaults)
public ExamplesTable withNamedParameters(java.util.Map<java.lang.String,java.lang.String> namedParameters)
public ExamplesTable withRowValues(int row, java.util.Map<java.lang.String,java.lang.String> values)
public ExamplesTable withRows(java.util.List<java.util.Map<java.lang.String,java.lang.String>> values)
public java.util.Properties getProperties()
public java.util.List<java.lang.String> getHeaders()
public java.util.Map<java.lang.String,java.lang.String> getRow(int row)
public Parameters getRowAsParameters(int row)
public Parameters getRowAsParameters(int row, boolean replaceNamedParameters)
public int getRowCount()
public java.util.List<java.util.Map<java.lang.String,java.lang.String>> getRows()
public java.util.List<Parameters> getRowsAsParameters()
public java.util.List<Parameters> getRowsAsParameters(boolean replaceNamedParameters)
public <T> java.util.List<T> getRowsAs(java.lang.Class<T> type)
public <T> java.util.List<T> getRowsAs(java.lang.Class<T> type, java.util.Map<java.lang.String,java.lang.String> fieldNameMapping)
public java.lang.String getHeaderSeparator()
public java.lang.String getValueSeparator()
public java.lang.String asString()
public void outputTo(java.io.PrintStream output)
public java.lang.String toString()
toString
in class java.lang.Object
Copyright © 2003-2014. All Rights Reserved.