# Interface LayerType

All Known Implementing Classes:
  `ShapeFamilyLayerType, SimpleLayerType, SpotPlotter.SpotLayerType`

public interface LayerType
Represents the type of a plot layer as selected by the user. This object does not correspond to anything very well-defined in the plot2 API: it may represent either a single Plotter object or a collection of Plotter objects from which one may be selected by use of associated parameters. However, it's a useful abstraction, to associate with a user-visible task parameter, since the number of Plotter objects that may be associated with a PlotType is typically too large for a comfortable selection from a single choice parameter.

Since:
  15 Sep 2014
Author:
  Mark Taylor

## Method Summary

Modifier and Type
Method
Description
`uk.ac.starlink.task.Parameter<?>[]`
`getAssociatedParameters(String suffix)`
Returns a list of zero or more additional parameters associated with this layer type that may be required to turn it into the specification of an actual Plotter object.
`CoordGroup`
`getCoordGroup()`
Returns a CoordGroup characteristic of this layer type.
`Coord[]`
`getExtraCoords()`
Returns a list of any non-positional coordinates associated with this layer.
`String`
`getName()`
Returns the name of this layer type.
`Plotter<?>`
`getPlotter(uk.ac.starlink.task.Environment env, String suffix)`
Acquires a Plotter for this layer type.
`ConfigKey<?>[]`
`getStyleKeys()`
Returns the style keys associated with this layer type.
`String`
`getXmlDescription()`
Returns an XML description of this layer type.

## Method Details

### getName

String getName()
Returns the name of this layer type.

Returns:
  name as selected by user

### getXmlDescription

String getXmlDescription()
Returns an XML description of this layer type.

Returns:
  one or more <p> elements

### getAssociatedParameters

uk.ac.starlink.task.Parameter<?>[] getAssociatedParameters(String suffix)
Returns a list of zero or more additional parameters associated with this layer type that may be required to turn it into the specification of an actual Plotter object.

Parameters:
  `suffix` - layer suffix string for use in the execution environment
Returns:
  zero or more associated parameters, for documentation purposes

### getCoordGroup

CoordGroup getCoordGroup()
Returns a CoordGroup characteristic of this layer type. It is not guaranteed that the returned value will be identical to the CoordGroup of all the plotters that this type can return.

Returns:
  best-efforts CoordGroup

### getExtraCoords

Coord[] getExtraCoords()
Returns a list of any non-positional coordinates associated with this layer.

Returns:
  zero or more non-positional coordinates

### getStyleKeys

ConfigKey<?>[] getStyleKeys()
Returns the style keys associated with this layer type.

Returns:
  zero or more style keys associated with every layer produced by this type

### getPlotter

Plotter<?> getPlotter(uk.ac.starlink.task.Environment env, String suffix) throws uk.ac.starlink.task.TaskException
Acquires a Plotter for this layer type.

Parameters:
  `env` - execution environment
  `suffix` - layer suffix string
Returns:
  plotter
Throws:
  `uk.ac.starlink.task.TaskException`