# Class AbstractPlotter<S extends Style>

java.lang.Object
uk.ac.starlink.ttools.plot2.layer.AbstractPlotter<S>

All Implemented Interfaces:
  `Plotter<S>`

Direct Known Subclasses:
  `CombineArrayPlotter, ContourPlotter, FillPlotter, FunctionPlotter, HealpixPlotter, LabelPlotter, Line3dPlotter, LinearFitPlotter, LinePlotter, ShapePlotter, SimpleDecalPlotter, SkyGridPlotter, SphereGridPlotter, SpotPlotter, TracePlotter`

public abstract class AbstractPlotter<S extends Style> extends Object implements Plotter<S>
Skeleton implementation of Plotter. This doesn't do anything clever, just manages the basic members supplied at construction time. It also returns a null range style key.

Since:
  22 Nov 2013
Author:
  Mark Taylor

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`AbstractPlotter(String name, Icon icon)`
Constructs a plotter with no data coordinates or reports.
`protected`
`AbstractPlotter(String name, Icon icon, int npos, Coord[] extraCoords)`
Constructs a plotter with specified data positions and additional coordinates, no report keys.
`protected`
`AbstractPlotter(String name, Icon icon, CoordGroup coordGrp, boolean hasReports)`
Constructs a plotter with a given coordinate group and indication of reporting status.

## Method Summary

Modifier and Type
Method
Description
`CoordGroup`
`getCoordGroup()`
Returns an object describing which data coordinates are used for this plotter and how they are arranged in supplied DataSpec objects.
`Icon`
`getPlotterIcon()`
Returns an icon for this plotter for use in user interface.
`String`
`getPlotterName()`
Returns the name of this plotter for use in user interface.
`Object`
`getRangeStyleKey(S style)`
The AbstractPlotter implementation returns null.
`boolean`
`hasReports()`
Indicates whether the drawings produced by this plotter will return general interest report information to upstream plotting code.

### Methods inherited from class Object

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

### Methods inherited from interface Plotter

`createLayer, createStyle, getPlotterDescription, getStyleKeys`

## Constructor Details

### AbstractPlotter

protected AbstractPlotter(String name, Icon icon, CoordGroup coordGrp, boolean hasReports)
Constructs a plotter with a given coordinate group and indication of reporting status.

Parameters:
  `name` - plotter name
  `icon` - plotter icon
  `coordGrp` - coordinate group
  `hasReports` - whether plot reports are generated

### AbstractPlotter

protected AbstractPlotter(String name, Icon icon)
Constructs a plotter with no data coordinates or reports.

Parameters:
  `name` - plotter name
  `icon` - plotter icon

### AbstractPlotter

protected AbstractPlotter(String name, Icon icon, int npos, Coord[] extraCoords)
Constructs a plotter with specified data positions and additional coordinates, no report keys.

Parameters:
  `name` - plotter name
  `icon` - plotter icon
  `npos` - number of sets of positional coordinates
  `extraCoords` - coordinates other than positional coordinates

## Method Details

### getPlotterName

public String getPlotterName()
Description copied from interface: `Plotter`
Returns the name of this plotter for use in user interface.

Specified by:
  `getPlotterName` in interface `Plotter<S extends Style>`
Returns:
  user-directed plotter name

### getPlotterIcon

public Icon getPlotterIcon()
Description copied from interface: `Plotter`
Returns an icon for this plotter for use in user interface.

Specified by:
  `getPlotterIcon` in interface `Plotter<S extends Style>`
Returns:
  plotter icon

### getCoordGroup

public CoordGroup getCoordGroup()
Description copied from interface: `Plotter`
Returns an object describing which data coordinates are used for this plotter and how they are arranged in supplied DataSpec objects.

Specified by:
  `getCoordGroup` in interface `Plotter<S extends Style>`
Returns:
  coordinate group

### hasReports

public boolean hasReports()
Description copied from interface: `Plotter`
Indicates whether the drawings produced by this plotter will return general interest report information to upstream plotting code.

Specified by:
  `hasReports` in interface `Plotter<S extends Style>`
Returns:
  true if the plot report may return interesting information
See Also:
  - `Drawing.getReport(Object)`

### getRangeStyleKey

public Object getRangeStyleKey(S style)
The AbstractPlotter implementation returns null.

Specified by:
  `getRangeStyleKey` in interface `Plotter<S extends Style>`
Parameters:
  `style` - plot style to assess
Returns:
  opaque object with equality semantics, or null if axis range is not a function of style