org.jfree.chart.annotations

## Class XYShapeAnnotation

- java.lang.Object
- - org.jfree.chart.annotations.AbstractAnnotation
  - - org.jfree.chart.annotations.AbstractXYAnnotation
    - - org.jfree.chart.annotations.XYShapeAnnotation

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable, Annotation, XYAnnotation, org.jfree.util.PublicCloneable

    public class XYShapeAnnotation
    extends AbstractXYAnnotation
    implements java.lang.Cloneable, org.jfree.util.PublicCloneable, java.io.Serializable

A simple `Shape` annotation that can be placed on an `XYPlot`. The shape coordinates are specified in data space.

See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`XYShapeAnnotation(java.awt.Shape shape)` Creates a new annotation (where, by default, the shape is drawn with a black outline).
`XYShapeAnnotation(java.awt.Shape shape, java.awt.Stroke stroke, java.awt.Paint outlinePaint)` Creates a new annotation where the shape is drawn as an outline using the specified `stroke` and `outlinePaint`.
`XYShapeAnnotation(java.awt.Shape shape, java.awt.Stroke stroke, java.awt.Paint outlinePaint, java.awt.Paint fillPaint)` Creates a new annotation.

### Method Summary

Methods
`java.lang.Object` `clone()` Returns a clone.
`void` `draw(java.awt.Graphics2D g2, XYPlot plot, java.awt.geom.Rectangle2D dataArea, ValueAxis domainAxis, ValueAxis rangeAxis, int rendererIndex, PlotRenderingInfo info)` Draws the annotation.
`boolean` `equals(java.lang.Object obj)` Tests this annotation for equality with an arbitrary object.
`int` `hashCode()` Returns a hash code for this instance.

### Methods inherited from class org.jfree.chart.annotations.AbstractXYAnnotation

`addEntity, getToolTipText, getURL, setToolTipText, setURL`

### Methods inherited from class org.jfree.chart.annotations.AbstractAnnotation

`addChangeListener, fireAnnotationChanged, getNotify, hasListener, notifyListeners, removeChangeListener, setNotify`

### Methods inherited from class java.lang.Object

`finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.jfree.chart.annotations.Annotation

`addChangeListener, removeChangeListener`

### Constructor Detail

#### XYShapeAnnotation

    public XYShapeAnnotation(java.awt.Shape shape)

Creates a new annotation (where, by default, the shape is drawn with a black outline).

Parameters:
  `shape` - the shape (coordinates in data space, `null` not permitted).

#### XYShapeAnnotation

    public XYShapeAnnotation(java.awt.Shape shape,
                     java.awt.Stroke stroke,
                     java.awt.Paint outlinePaint)

Creates a new annotation where the shape is drawn as an outline using the specified `stroke` and `outlinePaint`.

Parameters:
  `shape` - the shape (`null` not permitted).
  `stroke` - the shape stroke (`null` permitted).
  `outlinePaint` - the shape color (`null` permitted).

#### XYShapeAnnotation

    public XYShapeAnnotation(java.awt.Shape shape,
                     java.awt.Stroke stroke,
                     java.awt.Paint outlinePaint,
                     java.awt.Paint fillPaint)

Creates a new annotation.

Parameters:
  `shape` - the shape (`null` not permitted).
  `stroke` - the shape stroke (`null` permitted).
  `outlinePaint` - the shape color (`null` permitted).
  `fillPaint` - the paint used to fill the shape (`null` permitted.

### Method Detail

#### draw

    public void draw(java.awt.Graphics2D g2,
            XYPlot plot,
            java.awt.geom.Rectangle2D dataArea,
            ValueAxis domainAxis,
            ValueAxis rangeAxis,
            int rendererIndex,
            PlotRenderingInfo info)

Draws the annotation. This method is usually called by the `XYPlot` class, you shouldn't need to call it directly.

Specified by:
  `draw` in interface `XYAnnotation`
Specified by:
  `draw` in class `AbstractXYAnnotation`
Parameters:
  `g2` - the graphics device.
  `plot` - the plot.
  `dataArea` - the data area.
  `domainAxis` - the domain axis.
  `rangeAxis` - the range axis.
  `rendererIndex` - the renderer index.
  `info` - the plot rendering info.

#### equals

    public boolean equals(java.lang.Object obj)

Tests this annotation for equality with an arbitrary object.

Overrides:
  `equals` in class `AbstractXYAnnotation`
Parameters:
  `obj` - the object (`null` permitted).
Returns:
  A boolean.

#### hashCode

    public int hashCode()

Returns a hash code for this instance.

Overrides:
  `hashCode` in class `AbstractXYAnnotation`
Returns:
  A hash code.

#### clone

    public java.lang.Object clone()
                           throws java.lang.CloneNotSupportedException

Returns a clone.

Specified by:
  `clone` in interface `org.jfree.util.PublicCloneable`
Overrides:
  `clone` in class `AbstractAnnotation`
Returns:
  A clone.
Throws:
  `java.lang.CloneNotSupportedException` - ???.