Package uk.ac.starlink.ttools.plot2.data
Interface DataSpec
- All Known Implementing Classes:
AbstractDataSpec
,ColumnDataSpec
,JELDataSpec
Defines the table-like data that is required for a certain plot.
This object does not store the data itself, but can be passed to a
DataStore
object to obtain it.
A DataSpec has a small memory footprint, is cheap to produce,
and can be examined to determine what data is required.
The data specification is an aggregation of the following items:
- The table the data comes from
- A list of the columns, or column-like objects, used from the table
- An identifier for a mask indicating which rows from the table will be included
Two DataSpecs should evaluate equal if their specification of the
above items have the same content, that is if they would generate
the same TupleSequence
when presented to a DataStore
.
- Since:
- 7 Feb 2013
- Author:
- Mark Taylor
-
Method Summary
Modifier and TypeMethodDescriptionReturns an object that can be used to read the mask and coordinate values from a row sequence derived from this object's source table.getCoord
(int icoord) Returns the coord reader that can read the data for one of this object's output columns.int
Returns the number of columns that this object produces.getCoordId
(int icoord) Returns an identifier for one of the the columns produced by this object.Returns an identifier for the row mask for this object.uk.ac.starlink.table.StarTable
Returns the table object from which this data spec's data is obtained.uk.ac.starlink.table.ValueInfo[]
getUserCoordInfos
(int icoord) Returns the metadata, if known, for the values supplied by the user to provide data for one of this object's output columns.uk.ac.starlink.table.DomainMapper[]
getUserCoordMappers
(int icoord) Returns the domain mappers to use for the values supplied by the user to provide data for one of this object's output columns.boolean
isCoordBlank
(int icoord) Indicates whether the value for a given coord specified by this object is known to have a constant, blank value in all cases.boolean
Indicates whether the mask flag specified by this object is known always to be true.
-
Method Details
-
getSourceTable
uk.ac.starlink.table.StarTable getSourceTable()Returns the table object from which this data spec's data is obtained.- Returns:
- data source table
-
getCoordCount
int getCoordCount()Returns the number of columns that this object produces.- Returns:
- TupleSequence column count
-
getMaskId
String getMaskId()Returns an identifier for the row mask for this object. Masks with the same identifier must mean the same thing, and preferably vice versa.- Returns:
- mask identifier
-
getCoordId
Returns an identifier for one of the the columns produced by this object. Coords with the same identifier must mean the same thing, and preferably vice versa.- Parameters:
icoord
- column index- Returns:
- column identifier
-
getCoord
Returns the coord reader that can read the data for one of this object's output columns.- Parameters:
icoord
- column index- Returns:
- column data reader
-
getUserCoordInfos
uk.ac.starlink.table.ValueInfo[] getUserCoordInfos(int icoord) Returns the metadata, if known, for the values supplied by the user to provide data for one of this object's output columns.- Parameters:
icoord
- column index- Returns:
- array of value infos for column data inputs; elements may be null if not known
-
getUserCoordMappers
uk.ac.starlink.table.DomainMapper[] getUserCoordMappers(int icoord) Returns the domain mappers to use for the values supplied by the user to provide data for one of this object's output columns. These objects define how the input values as supplied by the user are to be interpreted as the expected input values for this dataspec. In many cases this mapping is trivial (for instance Y axis coordinate), but in some (for instance absolute epoch) it may not be.- Parameters:
icoord
- column index- Returns:
- array of DomainMappers for column data inputs
-
createUserDataReader
UserDataReader createUserDataReader()Returns an object that can be used to read the mask and coordinate values from a row sequence derived from this object's source table. A given UserDataReader can only be used from a single thread, but multiple returns from this method may be used concurrently in different threads.- Returns:
- new data reader
-
isMaskTrue
boolean isMaskTrue()Indicates whether the mask flag specified by this object is known always to be true. If true is returned, thengetUserDataReader().getMaskFlag
will always return true. False negatives are permitted; even if the result is false, the mask may in fact always return true.- Returns:
- true if all rows are known to be included in the mask
-
isCoordBlank
boolean isCoordBlank(int icoord) Indicates whether the value for a given coord specified by this object is known to have a constant, blank value in all cases. Clients don't have to test this, since data stores will always dispense the relevant blank value based on this data spec, and should do so in an efficient manner, but it may be useful for clients to know in advance that a column is blank all the way down. False negatives are permitted: even if the result is false, the column may in fact have all blank values.- Parameters:
icoord
- column index- Returns:
- true if all values in the column are always blank
-