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. TheinputStorage(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 aTuple
. 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
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Input[]
getInputs()
Returns specifications of the one or more input values the user supplies to provide the data values for this coord.StorageType
getStorageType()
Returns a code indicating how the quantity defined by this object is stored internally and presented to the plotting classes.java.util.function.Function<java.lang.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.boolean
isRequired()
Indicates whether this item must have a non-blank value in order for a plot to be possible.
-
-
-
Method Detail
-
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
java.util.function.Function<java.lang.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
anddomainMappers
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 metadatadomainMappers
- 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
-
-