Package uk.ac.starlink.ttools.plottask
Class PlotStateFactory
java.lang.Object
uk.ac.starlink.ttools.plottask.PlotStateFactory
- Direct Known Subclasses:
HistogramPlotStateFactory
,Plot3DStateFactory
Obtains a
PlotState
and associated
PlotData
from the execution environment.
It sets up and interrogates a lot of parameters which describe how the
plot should be done, and organises this information into a single
object, a PlotState. It is subclassed for different plot types.- Since:
- 22 Apr 2008
- Author:
- Mark Taylor
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
Symbolic suffix representing an auxiliary axis in per-aux parameter names.static final String
Symbolic suffix representing a subset in per-subset parameter names.static final String
Symbolic suffix representing a table in per-table parameter names. -
Constructor Summary
ConstructorsConstructorDescriptionPlotStateFactory
(String[] dimNames, boolean useAux, boolean useLabel, int errNdim) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionadjustFromData
(Style style, int iset, DataBounds bounds) Updates a plotting style generated by this factory with information generated from a first pass through the data.calculateBounds
(PlotState state, TablePlot plot) Calculates data bounds for a given data set as appropriate for the given plot.protected void
configureFromBounds
(PlotState state, DataBounds bounds) Updates a plot state generated by this factory with information generated from a first pass through the data.void
configureFromData
(PlotState state, TablePlot plot) Performs additional plot state configuration which may require a pass through the data.protected void
configurePlotState
(PlotState state, uk.ac.starlink.task.Environment env) Configures a PlotState object by examining parameter values in a given execution environment.protected TablePlotData
createPlotData
(uk.ac.starlink.task.Environment env, String tLabel, uk.ac.starlink.table.StarTable table, String[] setExprs, String[] setNames, Style[] setStyles, String labelExpr, String[] coordExprs, String[] errExprs) Constructs a PlotData object.protected PlotState
Creates a new unconfigured PlotState object suitable for configuration by this factory.protected StyleFactory
createStyleFactory
(String prefix) Constructs a style factory which can retrieve a plotting style suitable for use with this factory from the environment.uk.ac.starlink.task.Parameter<?>[]
Returns the parameters associated with this object.getPlotState
(uk.ac.starlink.task.Environment env) Returns a configured PlotState obtained from parameter values specified by the given execution environment.boolean
requiresAdjustFromData
(Style style) Indicates whether a given style generated by this factory needs to be updated with information from a first pass through the data.protected boolean
Indicates whether it is necessary to calculate the DataBounds for a given PlotState before it is ready to be used.
-
Field Details
-
TABLE_VARIABLE
Symbolic suffix representing a table in per-table parameter names.- See Also:
-
SUBSET_VARIABLE
Symbolic suffix representing a subset in per-subset parameter names.- See Also:
-
AUX_VARIABLE
Symbolic suffix representing an auxiliary axis in per-aux parameter names. Currently blank, as only one auxiliary axis is provided for.- See Also:
-
-
Constructor Details
-
PlotStateFactory
Constructor.- Parameters:
dimNames
- names of main plot dimensions (typically "X", "Y", etc);useAux
- whether auxiliary axes are useduseLabel
- whether point text labelling is usederrNdim
- number of axes for which errors can be plotted
-
-
Method Details
-
getParameters
public uk.ac.starlink.task.Parameter<?>[] getParameters()Returns the parameters associated with this object. The returned list is intended for external use in documentation; the parameter objects returned may or may not be those used for obtaining values from a particular execution environment. For this reason they may have names which are symbolic, that is, represent possible parameter names. Since actual parameter names are dynamically determined from other parameter names, it is not possible to return an exhaustive list.- Returns:
- array of parameters to be used for documentation
-
getPlotState
public PlotState getPlotState(uk.ac.starlink.task.Environment env) throws uk.ac.starlink.task.TaskException Returns a configured PlotState obtained from parameter values specified by the given execution environment.- Parameters:
env
- execution environment- Throws:
uk.ac.starlink.task.TaskException
-
createPlotState
Creates a new unconfigured PlotState object suitable for configuration by this factory.- Returns:
- plot state
-
configurePlotState
protected void configurePlotState(PlotState state, uk.ac.starlink.task.Environment env) throws uk.ac.starlink.task.TaskException Configures a PlotState object by examining parameter values in a given execution environment. Such an object was presumably previously created by a call tocreatePlotState()
.- Parameters:
state
- plot state to configureenv
- execution environment- Throws:
uk.ac.starlink.task.TaskException
-
createPlotData
protected TablePlotData createPlotData(uk.ac.starlink.task.Environment env, String tLabel, uk.ac.starlink.table.StarTable table, String[] setExprs, String[] setNames, Style[] setStyles, String labelExpr, String[] coordExprs, String[] errExprs) throws uk.ac.starlink.task.TaskException, gnu.jel.CompilationException Constructs a PlotData object. Called byconfigurePlotState(uk.ac.starlink.ttools.plot.PlotState, uk.ac.starlink.task.Environment)
; may be overridden by subclasses.- Parameters:
env
- execution environmenttLabel
- table identifier suffixtable
- input tablesetExprs
- nset-element JEL boolean-valued expression array for set inclusionsetNames
- nset-element set name arraysetStyles
- nset-elemnt set style arraylabelExpr
- JEL expression for text labelcoordExprs
- ndim-element JEL double-valued expression array for coordinate valueserrExprs
- nerr-element expression(s) array for error values- Returns:
- new PlotData object based on parameters
- Throws:
uk.ac.starlink.task.TaskException
gnu.jel.CompilationException
-
configureFromData
public void configureFromData(PlotState state, TablePlot plot) throws uk.ac.starlink.task.TaskException, IOException Performs additional plot state configuration which may require a pass through the data. This may do zero or more of the following:- Configure the range attributes of the given state, ensuring that they have non-NaN values.
- Parameters:
state
- plot state whose ranges will to be configuredplot
- table plot for which configuration is to be done- Throws:
uk.ac.starlink.task.TaskException
IOException
-
calculateBounds
Calculates data bounds for a given data set as appropriate for the given plot.- Parameters:
state
- plot stateplot
- plot object
-
requiresConfigureFromBounds
Indicates whether it is necessary to calculate the DataBounds for a given PlotState before it is ready to be used. Iff true is returned, thenconfigureFromBounds(uk.ac.starlink.ttools.plot.PlotState, uk.ac.starlink.ttools.plot.DataBounds)
will be called later.- Parameters:
state
- plot state- Returns:
- whether configureFromBounds should be called
-
configureFromBounds
protected void configureFromBounds(PlotState state, DataBounds bounds) throws uk.ac.starlink.task.TaskException Updates a plot state generated by this factory with information generated from a first pass through the data.- Parameters:
state
- plot state to updatebounds
- data bounds calculated by a pass through the data- Throws:
uk.ac.starlink.task.TaskException
-
requiresAdjustFromData
Indicates whether a given style generated by this factory needs to be updated with information from a first pass through the data. Iff true is returned, thenadjustFromData(uk.ac.starlink.ttools.plot.Style, int, uk.ac.starlink.ttools.plot.DataBounds)
will be called later.- Parameters:
style
- plot style to consider- Returns:
- true iff adjustFromData should be called on
style
-
adjustFromData
Updates a plotting style generated by this factory with information generated from a first pass through the data.- Parameters:
style
- plot style to updateiset
- set index for which style is usedbounds
- data bounds calculated by a pass through the data
-
createStyleFactory
Constructs a style factory which can retrieve a plotting style suitable for use with this factory from the environment.- Parameters:
prefix
- prefix to use for all style-type variables
-