Package jisa.results

Class Column<T>

    • 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.
      • Methods inherited from class java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 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 column
        units - The units of the column
        type - 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 column
        type - 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 column
        type - The data type that the column will hold
        evaluable - 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 column
        units - The units of the column
        type - The data type that the column will hold
        evaluable - 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/String
        name - Name of the column
        units - 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/String
        name - Name of the column
        units - 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 data
        name - Name of column
        units - 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 column
        units - 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 column
        evaluable - 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 column
        units - Units of the column
        evaluable - 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 column
        units - 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 column
        evaluable - 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 column
        units - Units of the column
        evaluable - 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 column
        units - 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 column
        evaluable - 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 column
        units - Units of the column
        evaluable - 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 column
        units - 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 column
        evaluable - 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 column
        units - Units of the column
        evaluable - 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 column
        units - 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 column
        evaluable - 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 column
        units - Units of the column
        evaluable - 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 column
        units - 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 column
        evaluable - 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 column
        units - Units of the column
        evaluable - 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 column
        units - 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 column
        evaluable - 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 column
        units - Units of the column
        evaluable - 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
      • to

        public java.util.Map.Entry<Column,​java.lang.Object> to​(T value)
        Maps this column to a value, for ResultTable::mapRow.
        Parameters:
        value - Value to map to
        Returns:
        Map entry