# Class TypedPlot2Task<P,A>

java.lang.Object
uk.ac.starlink.ttools.plot2.task.AbstractPlot2Task
uk.ac.starlink.ttools.plot2.task.TypedPlot2Task<P,A>

All Implemented Interfaces:
  `uk.ac.starlink.task.Task, DynamicTask`

Direct Known Subclasses:
  `CubePlot2Task, MatrixPlot2Task, PlanePlot2Task, SkyPlot2Task, SpherePlot2Task, TimePlot2Task`

public class TypedPlot2Task<P,A> extends AbstractPlot2Task
Plot2 task specialised for a fixed PlotType. Knowing the PlotType up front doesn't make it more capable, but it allows much more parameter auto-documentation to be done than if the PlotType is determined only from the Environment.

Since:
  3 Sep 2014
Author:
  Mark Taylor

## Field Summary

### Fields inherited from class AbstractPlot2Task

`DOC_ZONE_SUFFIX, DOMAINMAPPER_SUFFIX, EXAMPLE_LAYER_SUFFIX, EXAMPLE_ZONE_SUFFIX, LAYER_PREFIX, ZONE_PREFIX`

## Constructor Summary

Constructors
Constructor
Description
`TypedPlot2Task(PlotType<P,A> plotType, Map<ConfigKey<String>, Input> axlabelMap)`
Constructs a plot task with a default plot context, and without plot ganging.
`TypedPlot2Task(PlotType<P,A> plotType, Map<ConfigKey<String>, Input> axlabelMap, PlotContext<P,A> context)`
Constructs a plot task with a supplied PlotContext.

## Method Summary

Modifier and Type
Method
Description
`static <P,A> PlotContext<P,A>`
`createDefaultPlotContext(PlotType<P,A> plotType)`
Returns a default plot context for a given PlotType.
`protected <T> String`
`getConfigParamDefault(uk.ac.starlink.task.Environment env, ConfigKey<T> key, String[] suffixes)`
May provide a default value for a given config parameter that is sensitive to the content of the execution environment.
`uk.ac.starlink.task.Parameter<?>[]`
`getParameters()`
`PlotContext<P,A>`
`getPlotContext()`
Returns the fixed plot context for this task.
`PlotContext<P,A>`
`getPlotContext(uk.ac.starlink.task.Environment env)`
Concrete subclasses must implement this method to provide the PlotType and other information from the environment that may not be available at construction time.
`PlotType<P,A>`
`getPlotType()`
Returns the plot type.
`String`
`getPurpose()`

### Methods inherited from class AbstractPlot2Task

`createAuxCrowdParameter, createAuxLabelParameter, createAuxVisibleParameter, createAuxWidthParameter, createBasicConfigMap, createCaptioner, createConfigMap, createCustomConfigMap, createDataParameter, createDomainMapperParameter, createExecutable, createFilterParameter, createLabelParameter, createLayerSuffixedConfigMap, createLayerTypeParameter, createLegend, createLegendPositionParameter, createPaintModeParameter, createPlotComponent, createPlotConfiguration, createPlotIcon, createPlotIcon, createShadeAxisFactory, createTableParameter, createTitleParameter, createZoneParameter, getBasicParameters, getBitmapParameter, getCompositorParameter, getContextParameters, getCoordValue, getDataStoreParameter, getInputTable, getLegendBorderParameter, getLegendOpaqueParameter, getLegendParameter, getLegendSequenceParameter, getPaddingParameter, getParameterByName, getPlotters, getSequenceParameter, getXpixParameter, getYpixParameter, getZoneKeyParams, hasDomainMappers, hasZoneSuffixes, testEnv`

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### TypedPlot2Task

public TypedPlot2Task(PlotType<P,A> plotType, Map<ConfigKey<String>, Input> axlabelMap, PlotContext<P,A> context)
Constructs a plot task with a supplied PlotContext.

The `axlabelMap` parameter gives the chance to set up a correspondence between axis label config keys and the coordinates to which they correspond. If this is done, then the names of the data values actually supplied to the task can be used as defaults for the axis labels.

Parameters:
  `plotType` - fixed plot type
  `axlabelMap` - mapping from axis label keys to corresponding common data input coordinates, or null
  `context` - fixed plot context

### TypedPlot2Task

public TypedPlot2Task(PlotType<P,A> plotType, Map<ConfigKey<String>, Input> axlabelMap)
Constructs a plot task with a default plot context, and without plot ganging. If the plot type has only a single DataGeom no geom selection is allowed, otherwise there is a per-layer geom selection parameter.

The `axlabelMap` parameter gives the chance to set up a correspondence between axis label config keys and the coordinates to which they correspond. If this is done, then the names of the data values actually supplied to the task can be used as defaults for the axis labels.

Parameters:
  `plotType` - fixed plot type
  `axlabelMap` - mapping from axis label keys to corresponding common data input coordinates, or null

## Method Details

### getPlotType

public PlotType<P,A> getPlotType()
Returns the plot type.

Returns:
  plotType;

### getPurpose

public String getPurpose()

### getParameters

public uk.ac.starlink.task.Parameter<?>[] getParameters()

### getPlotContext

public PlotContext<P,A> getPlotContext(uk.ac.starlink.task.Environment env)
Description copied from class: `AbstractPlot2Task`
Concrete subclasses must implement this method to provide the PlotType and other information from the environment that may not be available at construction time.

Specified by:
  `getPlotContext` in class `AbstractPlot2Task`
Parameters:
  `env` - execution environment
Returns:
  context

### getPlotContext

public PlotContext<P,A> getPlotContext()
Returns the fixed plot context for this task.

Returns:
  plot context

### getConfigParamDefault

protected <T> String getConfigParamDefault(uk.ac.starlink.task.Environment env, ConfigKey<T> key, String[] suffixes) throws uk.ac.starlink.task.TaskException
Description copied from class: `AbstractPlot2Task`
May provide a default value for a given config parameter that is sensitive to the content of the execution environment. This is here to provide a hook for subclasses to set up defaults for some config parameters on the basis of what layers are present.

Specified by:
  `getConfigParamDefault` in class `AbstractPlot2Task`
Parameters:
  `env` - execution environment
  `key` - config key for which a parameter is required
  `suffixes` - ordered list of the plot layer suffixes in use for the plot being performed
Returns:
  default for parameter getting value for `key`, or null if none is obvious
Throws:
  `uk.ac.starlink.task.TaskException`

### createDefaultPlotContext

public static <P,A> PlotContext<P,A> createDefaultPlotContext(PlotType<P,A> plotType)
Returns a default plot context for a given PlotType. If the plot type has only a single DataGeom no geom selection is allowed, otherwise there is a per-layer geom selection parameter.

Parameters:
  `plotType` - plot type
Returns:
  context