# Class ShapeFamilyLayerType

java.lang.Object
uk.ac.starlink.ttools.plot2.task.ShapeFamilyLayerType

All Implemented Interfaces:
  `LayerType`

public class ShapeFamilyLayerType extends Object implements LayerType
LayerType that represents a family of ShapeModePlotters.

Since:
  15 Sep 2014
Author:
  Mark Taylor

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`SHADING_PREFIX`
Base name of associated Shading parameter.

## Constructor Summary

Constructors
Constructor
Description
`ShapeFamilyLayerType(ShapeForm form, List<ShapeModePlotter> plotters)`
Constructor.

## Method Summary

Modifier and Type
Method
Description
`uk.ac.starlink.task.ChoiceParameter<ShapeMode>`
`createShapeModeParameter(String suffix)`
Returns the ShapeMode parameter that is required alongside this LayerType in order to determine the Plotter to use.
`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.
`ShapeForm`
`getShapeForm()`
Returns the fixed form associated with this layer type.
`ShapeModePlotter[]`
`getShapeModePlotters()`
Returns the family of plotters associated with this layer type.
`ConfigKey<?>[]`
`getStyleKeys()`
Returns the style keys associated with this layer type.
`String`
`getXmlDescription()`
Returns an XML description of this layer type.

### Methods inherited from class Object

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

## Field Details

### SHADING_PREFIX

public static final String SHADING_PREFIX
Base name of associated Shading parameter.

See Also:
  - Constant Field Values

## Constructor Details

### ShapeFamilyLayerType

public ShapeFamilyLayerType(ShapeForm form, List<ShapeModePlotter> plotters)
Constructor.

Parameters:
  `form` - shape form
  `plotters` - list of plotters with the given Form; this list may be adjusted during the life of the object (with care)

## Method Details

### getShapeForm

public ShapeForm getShapeForm()
Returns the fixed form associated with this layer type.

Returns:
  form

### getShapeModePlotters

public ShapeModePlotter[] getShapeModePlotters()
Returns the family of plotters associated with this layer type.

Returns:
  plotters

### getName

public String getName()
Description copied from interface: `LayerType`
Returns the name of this layer type.

Specified by:
  `getName` in interface `LayerType`
Returns:
  name as selected by user

### getXmlDescription

public String getXmlDescription()
Description copied from interface: `LayerType`
Returns an XML description of this layer type.

Specified by:
  `getXmlDescription` in interface `LayerType`
Returns:
  one or more <p> elements

### getAssociatedParameters

public uk.ac.starlink.task.Parameter<?>[] getAssociatedParameters(String suffix)
Description copied from interface: `LayerType`
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.

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

### getPlotter

public Plotter<?> getPlotter(uk.ac.starlink.task.Environment env, String suffix) throws uk.ac.starlink.task.TaskException
Description copied from interface: `LayerType`
Acquires a Plotter for this layer type.

Specified by:
  `getPlotter` in interface `LayerType`
Parameters:
  `env` - execution environment
  `suffix` - layer suffix string
Returns:
  plotter
Throws:
  `uk.ac.starlink.task.TaskException`

### getCoordGroup

public CoordGroup getCoordGroup()
Description copied from interface: `LayerType`
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.

Specified by:
  `getCoordGroup` in interface `LayerType`
Returns:
  best-efforts CoordGroup

### getExtraCoords

public Coord[] getExtraCoords()
Description copied from interface: `LayerType`
Returns a list of any non-positional coordinates associated with this layer.

Specified by:
  `getExtraCoords` in interface `LayerType`
Returns:
  zero or more non-positional coordinates

### getStyleKeys

public ConfigKey<?>[] getStyleKeys()
Description copied from interface: `LayerType`
Returns the style keys associated with this layer type.

Specified by:
  `getStyleKeys` in interface `LayerType`
Returns:
  zero or more style keys associated with every layer produced by this type

### createShapeModeParameter

public uk.ac.starlink.task.ChoiceParameter<ShapeMode> createShapeModeParameter(String suffix)
Returns the ShapeMode parameter that is required alongside this LayerType in order to determine the Plotter to use.

Parameters:
  `suffix` - layer suffix
Returns:
  shape mode choice parameter