Interface Coord

All Known Implementing Classes:
AreaCoord, BooleanCoord, FloatingArrayCoord, FloatingCoord, IntegerCoord, LongCoord, SingleCoord, SkyCoord, StringCoord

public interface Coord
Defines a coordinate quantity in terms of both the user's view of it and its representation for use in plotting. The inputStorage(uk.ac.starlink.table.ValueInfo[], uk.ac.starlink.table.DomainMapper[]) method provides translation between these two representations.

An implementation of this class defines an additional read*Coord(Tuple,int) method which is able to read appropriate coordinate values from a suitable field of a Tuple. That behaviour is not enforced or defined in this interface using generic types, partly in order to allow use of primitive types and eliminate unnecessary use of wrapper classes.

In many cases, both the input and the plotting views will be a scalar, in which case there will be only one Input. One notable case for which this is not true is for SkyCoord, which has two input coordinates (lat + long) and three storage coordinates (x, y, z vector).

Since:
4 Feb 2013
Author:
Mark Taylor
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns specifications of the one or more input values the user supplies to provide the data values for this coord.
    Returns a code indicating how the quantity defined by this object is stored internally and presented to the plotting classes.
    inputStorage(uk.ac.starlink.table.ValueInfo[] infos, uk.ac.starlink.table.DomainMapper[] domainMappers)
    Provides a function to turn a quantity in the user view to a plotting view object.
    boolean
    Indicates whether this item must have a non-blank value in order for a plot to be possible.
  • Method Details

    • getInputs

      Input[] getInputs()
      Returns specifications of the one or more input values the user supplies to provide the data values for this coord.
      Returns:
      one or more items describing the user input values for this quantity
    • isRequired

      boolean isRequired()
      Indicates whether this item must have a non-blank value in order for a plot to be possible.
      Returns:
      if true, values must be supplied to make a plot
    • getStorageType

      StorageType getStorageType()
      Returns a code indicating how the quantity defined by this object is stored internally and presented to the plotting classes.
      Returns:
      storage type enum instance
    • inputStorage

      Function<Object[],?> inputStorage(uk.ac.starlink.table.ValueInfo[] infos, uk.ac.starlink.table.DomainMapper[] domainMappers)
      Provides a function to turn a quantity in the user view to a plotting view object.

      The supplied infos and domainMappers arrays correspond to (have the same length as) this object's Inputs array, and may influence the return values. However, Coord instances that always behave the same way (for instance whose Input Domains have fixed DomainMappers) are free to ignore these arguments.

      The returned function converts an array of per-input user values to a storable object of the type corresponding to the result of getStorageType(); the return value of the returned function is never null.

      Parameters:
      infos - per-input array of column input metadata
      domainMappers - per-input array of input value->domain value mappers
      Returns:
      input values to storage object conversion function, or null if such conversions will never be possible