Package jisa.results
Class Column<T>
- java.lang.Object
-
- jisa.results.Column<T>
-
- Direct Known Subclasses:
BooleanColumn
,DoubleColumn
,IntColumn
,LongColumn
,StringColumn
public abstract class Column<T> extends java.lang.Object
-
-
Constructor Summary
Constructors Constructor Description Column(java.lang.String name, java.lang.Class<T> type)
Constructs a column with given name, and data type.Column(java.lang.String name, java.lang.Class<T> type, RowEvaluable<T> evaluable)
Constructs an auto-evaluating column with given name, and data type.Column(java.lang.String name, java.lang.String units, java.lang.Class<T> type)
Constructs a column with given name, units, and data type.Column(java.lang.String name, java.lang.String units, java.lang.Class<T> type, RowEvaluable<T> evaluable)
Constructs an auto-evaluating column with given name, units, and data type.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static <T> Column<T>
byExample(T example, java.lang.String name, java.lang.String units)
Creates a column for data of the same type as a supplied example.T
calculate(Row row)
For auto-evaluable columns, this will return their calculated value based on the supplied row.java.lang.String
getMatcherName()
Returns a specially formatted instance of this column's name for findColumn(...) purposes.java.lang.String
getMatcherTitle()
Returns a specially formatted instance of this column's title for findColumn(...) purposes.java.lang.String
getName()
Returns the name of this column.java.lang.String
getTitle()
Returns a formatted string of both the column's name and units.java.lang.Class<T>
getType()
Returns the class of this column's data type.java.lang.String
getUnits()
Returns the units of this column.boolean
hasUnits()
Returns whether this column has units or not.boolean
isCalculated()
Returns whether this column is auto-evaluated or not.static <T> Column<T>
of(java.lang.Class<T> type, java.lang.String name, java.lang.String units)
Creates a column for data of a given type.static <T> Column<T>
of(kotlin.reflect.KClass<T> type, java.lang.String name, java.lang.String units)
Creates a column for data of a given type.static Column<java.lang.Boolean>
ofBooleans(java.lang.String name)
Creates a column for storing boolean values.static Column<java.lang.Boolean>
ofBooleans(java.lang.String name, java.lang.String units)
Creates a column for storing boolean values.static Column<java.lang.Boolean>
ofBooleans(java.lang.String name, java.lang.String units, RowEvaluable<java.lang.Boolean> evaluable)
Creates an auto-evaluating column for storing boolean values.static Column<java.lang.Boolean>
ofBooleans(java.lang.String name, RowEvaluable<java.lang.Boolean> evaluable)
Creates an auto-evaluating column for storing boolean values.static Column<java.lang.Double>
ofDecimals(java.lang.String name)
Creates a column for storing double values.static Column<java.lang.Double>
ofDecimals(java.lang.String name, java.lang.String units)
Creates a column for storing double values.static Column<java.lang.Double>
ofDecimals(java.lang.String name, java.lang.String units, RowEvaluable<java.lang.Double> evaluable)
Creates an auto-evaluating column for storing double values.static Column<java.lang.Double>
ofDecimals(java.lang.String name, RowEvaluable<java.lang.Double> evaluable)
Creates an auto-evaluating column for storing double values.static Column<java.lang.Double>
ofDoubles(java.lang.String name)
Creates a column for storing double values.static Column<java.lang.Double>
ofDoubles(java.lang.String name, java.lang.String units)
Creates a column for storing double values.static Column<java.lang.Double>
ofDoubles(java.lang.String name, java.lang.String units, RowEvaluable<java.lang.Double> evaluable)
Creates an auto-evaluating column for storing double values.static Column<java.lang.Double>
ofDoubles(java.lang.String name, RowEvaluable<java.lang.Double> evaluable)
Creates an auto-evaluating column for storing double values.static Column<java.lang.Integer>
ofIntegers(java.lang.String name)
Creates a column for storing integer values.static Column<java.lang.Integer>
ofIntegers(java.lang.String name, java.lang.String units)
Creates a column for storing integer values.static Column<java.lang.Integer>
ofIntegers(java.lang.String name, java.lang.String units, RowEvaluable<java.lang.Integer> evaluable)
Creates an auto-evaluating column for storing integer values.static Column<java.lang.Integer>
ofIntegers(java.lang.String name, RowEvaluable<java.lang.Integer> evaluable)
Creates an auto-evaluating column for storing integer values.static Column<java.lang.Long>
ofLongs(java.lang.String name)
Creates a column for storing long integer values.static Column<java.lang.Long>
ofLongs(java.lang.String name, java.lang.String units)
Creates a column for storing long integer values.static Column<java.lang.Long>
ofLongs(java.lang.String name, java.lang.String units, RowEvaluable<java.lang.Long> evaluable)
Creates an auto-evaluating column for storing long integer values.static Column<java.lang.Long>
ofLongs(java.lang.String name, RowEvaluable<java.lang.Long> evaluable)
Creates an auto-evaluating column for storing long integer values.static Column<java.lang.String>
ofStrings(java.lang.String name)
Creates a column for storing String values.static Column<java.lang.String>
ofStrings(java.lang.String name, java.lang.String units)
Creates a column for storing String values.static Column<java.lang.String>
ofStrings(java.lang.String name, java.lang.String units, RowEvaluable<java.lang.String> evaluable)
Creates an auto-evaluating column for storing String values.static Column<java.lang.String>
ofStrings(java.lang.String name, RowEvaluable<java.lang.String> evaluable)
Creates an auto-evaluating column for storing String values.static Column<java.lang.String>
ofText(java.lang.String name)
Creates a column for storing String values.static Column<java.lang.String>
ofText(java.lang.String name, java.lang.String units)
Creates a column for storing String values.static Column<java.lang.String>
ofText(java.lang.String name, java.lang.String units, RowEvaluable<java.lang.String> evaluable)
Creates an auto-evaluating column for storing String values.static Column<java.lang.String>
ofText(java.lang.String name, RowEvaluable<java.lang.String> evaluable)
Creates an auto-evaluating column for storing String values.abstract T
parse(java.lang.String string)
Parses a string representation of a value of this column's data type into its true representation.abstract java.lang.String
stringify(java.lang.Object value)
Converts a value of this column's data type into a String, for outputting.java.util.Map.Entry<Column,java.lang.Object>
to(T value)
Maps this column to a value, for ResultTable::mapRow.
-
-
-
Constructor Detail
-
Column
public Column(java.lang.String name, java.lang.String units, java.lang.Class<T> type)
Constructs a column with given name, units, and data type.- Parameters:
name
- The name of the columnunits
- The units of the columntype
- The data type that the column will hold
-
Column
public Column(java.lang.String name, java.lang.Class<T> type)
Constructs a column with given name, and data type.- Parameters:
name
- The name of the columntype
- The data type that the column will hold
-
Column
public Column(java.lang.String name, java.lang.Class<T> type, RowEvaluable<T> evaluable)
Constructs an auto-evaluating column with given name, and data type.- Parameters:
name
- The name of the columntype
- The data type that the column will holdevaluable
- Lambda for auto-evaluation
-
Column
public Column(java.lang.String name, java.lang.String units, java.lang.Class<T> type, RowEvaluable<T> evaluable)
Constructs an auto-evaluating column with given name, units, and data type.- Parameters:
name
- The name of the columnunits
- The units of the columntype
- The data type that the column will holdevaluable
- Lambda for auto-evaluation
-
-
Method Detail
-
of
public static <T> Column<T> of(java.lang.Class<T> type, java.lang.String name, java.lang.String units)
Creates a column for data of a given type.- Type Parameters:
T
- Type- Parameters:
type
- Type class of the data to hold: Double/Long/Integer/Boolean/Stringname
- Name of the columnunits
- Units of the column- Returns:
- The created column
-
of
public static <T> Column<T> of(kotlin.reflect.KClass<T> type, java.lang.String name, java.lang.String units)
Creates a column for data of a given type.- Type Parameters:
T
- Type- Parameters:
type
- Type class of the data to hold: Double/Long/Integer/Boolean/Stringname
- Name of the columnunits
- Units of the column- Returns:
- The created column
-
byExample
public static <T> Column<T> byExample(T example, java.lang.String name, java.lang.String units)
Creates a column for data of the same type as a supplied example.- Type Parameters:
T
- Data Type- Parameters:
example
- The example dataname
- Name of columnunits
- Units of column- Returns:
- The created column
-
ofStrings
public static Column<java.lang.String> ofStrings(java.lang.String name, java.lang.String units)
Creates a column for storing String values.- Parameters:
name
- Name of the columnunits
- Units of the column- Returns:
- The created column
-
ofStrings
public static Column<java.lang.String> ofStrings(java.lang.String name)
Creates a column for storing String values.- Parameters:
name
- Name of the column- Returns:
- The created column
-
ofStrings
public static Column<java.lang.String> ofStrings(java.lang.String name, RowEvaluable<java.lang.String> evaluable)
Creates an auto-evaluating column for storing String values.- Parameters:
name
- Name of the columnevaluable
- Lambda for calculating column value- Returns:
- The created column
-
ofStrings
public static Column<java.lang.String> ofStrings(java.lang.String name, java.lang.String units, RowEvaluable<java.lang.String> evaluable)
Creates an auto-evaluating column for storing String values.- Parameters:
name
- Name of the columnunits
- Units of the columnevaluable
- Lambda for calculating column value- Returns:
- The created column
-
ofText
public static Column<java.lang.String> ofText(java.lang.String name, java.lang.String units)
Creates a column for storing String values. Alias for Column.ofStrings(...).- Parameters:
name
- Name of the columnunits
- Units of the column- Returns:
- The created column
-
ofText
public static Column<java.lang.String> ofText(java.lang.String name)
Creates a column for storing String values. Alias for Column.ofStrings(...).- Parameters:
name
- Name of the column- Returns:
- The created column
-
ofText
public static Column<java.lang.String> ofText(java.lang.String name, RowEvaluable<java.lang.String> evaluable)
Creates an auto-evaluating column for storing String values. Alias for Column.ofStrings(...).- Parameters:
name
- Name of the columnevaluable
- Lambda for calculating column value- Returns:
- The created column
-
ofText
public static Column<java.lang.String> ofText(java.lang.String name, java.lang.String units, RowEvaluable<java.lang.String> evaluable)
Creates an auto-evaluating column for storing String values. Alias for Column.ofStrings(...).- Parameters:
name
- Name of the columnunits
- Units of the columnevaluable
- Lambda for calculating column value- Returns:
- The created column
-
ofDoubles
public static Column<java.lang.Double> ofDoubles(java.lang.String name, java.lang.String units)
Creates a column for storing double values.- Parameters:
name
- Name of the columnunits
- Units of the column- Returns:
- The created column
-
ofDoubles
public static Column<java.lang.Double> ofDoubles(java.lang.String name)
Creates a column for storing double values.- Parameters:
name
- Name of the column- Returns:
- The created column
-
ofDoubles
public static Column<java.lang.Double> ofDoubles(java.lang.String name, RowEvaluable<java.lang.Double> evaluable)
Creates an auto-evaluating column for storing double values.- Parameters:
name
- Name of the columnevaluable
- Lambda for calculating column value- Returns:
- The created column
-
ofDoubles
public static Column<java.lang.Double> ofDoubles(java.lang.String name, java.lang.String units, RowEvaluable<java.lang.Double> evaluable)
Creates an auto-evaluating column for storing double values.- Parameters:
name
- Name of the columnunits
- Units of the columnevaluable
- Lambda for calculating column value- Returns:
- The created column
-
ofDecimals
public static Column<java.lang.Double> ofDecimals(java.lang.String name, java.lang.String units)
Creates a column for storing double values. Alias for Column.ofDoubles(...).- Parameters:
name
- Name of the columnunits
- Units of the column- Returns:
- The created column
-
ofDecimals
public static Column<java.lang.Double> ofDecimals(java.lang.String name)
Creates a column for storing double values. Alias for Column.ofDoubles(...).- Parameters:
name
- Name of the column- Returns:
- The created column
-
ofDecimals
public static Column<java.lang.Double> ofDecimals(java.lang.String name, RowEvaluable<java.lang.Double> evaluable)
Creates an auto-evaluating column for storing double values. Alias for Column.ofDoubles(...).- Parameters:
name
- Name of the columnevaluable
- Lambda for calculating column value- Returns:
- The created column
-
ofDecimals
public static Column<java.lang.Double> ofDecimals(java.lang.String name, java.lang.String units, RowEvaluable<java.lang.Double> evaluable)
Creates an auto-evaluating column for storing double values. Alias for Column.ofDoubles(...).- Parameters:
name
- Name of the columnunits
- Units of the columnevaluable
- Lambda for calculating column value- Returns:
- The created column
-
ofIntegers
public static Column<java.lang.Integer> ofIntegers(java.lang.String name, java.lang.String units)
Creates a column for storing integer values.- Parameters:
name
- Name of the columnunits
- Units of the column- Returns:
- The created column
-
ofIntegers
public static Column<java.lang.Integer> ofIntegers(java.lang.String name)
Creates a column for storing integer values.- Parameters:
name
- Name of the column- Returns:
- The created column
-
ofIntegers
public static Column<java.lang.Integer> ofIntegers(java.lang.String name, RowEvaluable<java.lang.Integer> evaluable)
Creates an auto-evaluating column for storing integer values.- Parameters:
name
- Name of the columnevaluable
- Lambda for calculating column value- Returns:
- The created column
-
ofIntegers
public static Column<java.lang.Integer> ofIntegers(java.lang.String name, java.lang.String units, RowEvaluable<java.lang.Integer> evaluable)
Creates an auto-evaluating column for storing integer values.- Parameters:
name
- Name of the columnunits
- Units of the columnevaluable
- Lambda for calculating column value- Returns:
- The created column
-
ofLongs
public static Column<java.lang.Long> ofLongs(java.lang.String name, java.lang.String units)
Creates a column for storing long integer values.- Parameters:
name
- Name of the columnunits
- Units of the column- Returns:
- The created column
-
ofLongs
public static Column<java.lang.Long> ofLongs(java.lang.String name)
Creates a column for storing long integer values.- Parameters:
name
- Name of the column- Returns:
- The created column
-
ofLongs
public static Column<java.lang.Long> ofLongs(java.lang.String name, RowEvaluable<java.lang.Long> evaluable)
Creates an auto-evaluating column for storing long integer values.- Parameters:
name
- Name of the columnevaluable
- Lambda for calculating column value- Returns:
- The created column
-
ofLongs
public static Column<java.lang.Long> ofLongs(java.lang.String name, java.lang.String units, RowEvaluable<java.lang.Long> evaluable)
Creates an auto-evaluating column for storing long integer values.- Parameters:
name
- Name of the columnunits
- Units of the columnevaluable
- Lambda for calculating column value- Returns:
- The created column
-
ofBooleans
public static Column<java.lang.Boolean> ofBooleans(java.lang.String name, java.lang.String units)
Creates a column for storing boolean values.- Parameters:
name
- Name of the columnunits
- Units of the column- Returns:
- The created column
-
ofBooleans
public static Column<java.lang.Boolean> ofBooleans(java.lang.String name)
Creates a column for storing boolean values.- Parameters:
name
- Name of the column- Returns:
- The created column
-
ofBooleans
public static Column<java.lang.Boolean> ofBooleans(java.lang.String name, RowEvaluable<java.lang.Boolean> evaluable)
Creates an auto-evaluating column for storing boolean values.- Parameters:
name
- Name of the columnevaluable
- Lambda for calculating column value- Returns:
- The created column
-
ofBooleans
public static Column<java.lang.Boolean> ofBooleans(java.lang.String name, java.lang.String units, RowEvaluable<java.lang.Boolean> evaluable)
Creates an auto-evaluating column for storing boolean values.- Parameters:
name
- Name of the columnunits
- Units of the columnevaluable
- Lambda for calculating column value- Returns:
- The created column
-
stringify
public abstract java.lang.String stringify(java.lang.Object value)
Converts a value of this column's data type into a String, for outputting.- Parameters:
value
- Value to convert- Returns:
- String representation of value
-
parse
public abstract T parse(java.lang.String string)
Parses a string representation of a value of this column's data type into its true representation.- Parameters:
string
- String to parse- Returns:
- Parsed data
-
getName
public java.lang.String getName()
Returns the name of this column.- Returns:
- Name
-
hasUnits
public boolean hasUnits()
Returns whether this column has units or not.- Returns:
- Does it have units?
-
getUnits
public java.lang.String getUnits()
Returns the units of this column.- Returns:
- Units
-
getTitle
public java.lang.String getTitle()
Returns a formatted string of both the column's name and units.- Returns:
- Name and [units]
-
getMatcherName
public java.lang.String getMatcherName()
Returns a specially formatted instance of this column's name for findColumn(...) purposes.- Returns:
- Lower-case, trimmed name
-
getMatcherTitle
public java.lang.String getMatcherTitle()
Returns a specially formatted instance of this column's title for findColumn(...) purposes.- Returns:
- Lower-case, trimmed title
-
getType
public java.lang.Class<T> getType()
Returns the class of this column's data type.- Returns:
- Data type class
-
isCalculated
public boolean isCalculated()
Returns whether this column is auto-evaluated or not.- Returns:
- Auto-evaluated?
-
calculate
public T calculate(Row row)
For auto-evaluable columns, this will return their calculated value based on the supplied row.- Parameters:
row
- Row to calculate from- Returns:
- Calculated value
-
-