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.Tcalculate(Row row)For auto-evaluable columns, this will return their calculated value based on the supplied row.java.lang.StringgetMatcherName()Returns a specially formatted instance of this column's name for findColumn(...) purposes.java.lang.StringgetMatcherTitle()Returns a specially formatted instance of this column's title for findColumn(...) purposes.java.lang.StringgetName()Returns the name of this column.java.lang.StringgetTitle()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.StringgetUnits()Returns the units of this column.booleanhasUnits()Returns whether this column has units or not.booleanisCalculated()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 Tparse(java.lang.String string)Parses a string representation of a value of this column's data type into its true representation.abstract java.lang.Stringstringify(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
-
-