org.jfree.data.xy

## Class XYSeriesCollection

- java.lang.Object
- - org.jfree.data.general.AbstractDataset
  - - org.jfree.data.general.AbstractSeriesDataset
    - - org.jfree.data.xy.AbstractXYDataset
      - - org.jfree.data.xy.AbstractIntervalXYDataset
        - - org.jfree.data.xy.XYSeriesCollection

All Implemented Interfaces:
  java.beans.VetoableChangeListener, java.io.ObjectInputValidation, java.io.Serializable, java.lang.Cloneable, java.util.EventListener, DomainInfo, Dataset, SeriesChangeListener, SeriesDataset, RangeInfo, IntervalXYDataset, XYDataset, org.jfree.util.PublicCloneable

    public class XYSeriesCollection
    extends AbstractIntervalXYDataset
    implements IntervalXYDataset, DomainInfo, RangeInfo, java.beans.VetoableChangeListener, org.jfree.util.PublicCloneable, java.io.Serializable

Represents a collection of `XYSeries` objects that can be used as a dataset.

See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`XYSeriesCollection()` Constructs an empty dataset.
`XYSeriesCollection(XYSeries series)` Constructs a dataset and populates it with a single series.

### Method Summary

Methods
`void` `addSeries(XYSeries series)` Adds a series to the collection and sends a `DatasetChangeEvent` to all registered listeners.
`java.lang.Object` `clone()` Returns a clone of this instance.
`boolean` `equals(java.lang.Object obj)` Tests this collection for equality with an arbitrary object.
`Range` `getDomainBounds(boolean includeInterval)` Returns the range of the values in this dataset's domain.
`double` `getDomainLowerBound(boolean includeInterval)` Returns the minimum x-value in the dataset.
`DomainOrder` `getDomainOrder()` Returns the order of the domain (X) values, if this is known.
`double` `getDomainUpperBound(boolean includeInterval)` Returns the maximum x-value in the dataset.
`java.lang.Number` `getEndX(int series, int item)` Returns the ending X value for the specified series and item.
`java.lang.Number` `getEndY(int series, int item)` Returns the ending Y value for the specified series and item.
`double` `getIntervalPositionFactor()` Returns the interval position factor.
`double` `getIntervalWidth()` Returns the interval width.
`int` `getItemCount(int series)` Returns the number of items in the specified series.
`Range` `getRangeBounds(boolean includeInterval)` Returns the range of the values in this dataset's range.
`double` `getRangeLowerBound(boolean includeInterval)` Returns the minimum y-value in the dataset.
`double` `getRangeUpperBound(boolean includeInterval)` Returns the maximum y-value in the dataset.
`java.util.List` `getSeries()` Returns a list of all the series in the collection.
`XYSeries` `getSeries(java.lang.Comparable key)` Returns a series from the collection.
`XYSeries` `getSeries(int series)` Returns a series from the collection.
`int` `getSeriesCount()` Returns the number of series in the collection.
`int` `getSeriesIndex(java.lang.Comparable key)` Returns the index of the series with the specified key, or -1 if no series has that key.
`java.lang.Comparable` `getSeriesKey(int series)` Returns the key for a series.
`java.lang.Number` `getStartX(int series, int item)` Returns the starting X value for the specified series and item.
`java.lang.Number` `getStartY(int series, int item)` Returns the starting Y value for the specified series and item.
`java.lang.Number` `getX(int series, int item)` Returns the x-value for the specified series and item.
`java.lang.Number` `getY(int series, int index)` Returns the y-value for the specified series and item.
`int` `hashCode()` Returns a hash code.
`int` `indexOf(XYSeries series)` Returns the index of the specified series, or -1 if that series is not present in the dataset.
`boolean` `isAutoWidth()` Returns whether the interval width is automatically calculated or not.
`void` `removeAllSeries()` Removes all the series from the collection and sends a `DatasetChangeEvent` to all registered listeners.
`void` `removeSeries(int series)` Removes a series from the collection and sends a `DatasetChangeEvent` to all registered listeners.
`void` `removeSeries(XYSeries series)` Removes a series from the collection and sends a `DatasetChangeEvent` to all registered listeners.
`void` `setAutoWidth(boolean b)` Sets the flag that indicates wether the interval width is automatically calculated or not.
`void` `setIntervalPositionFactor(double factor)` Sets the interval position factor.
`void` `setIntervalWidth(double width)` Sets the interval width and sends a `DatasetChangeEvent` to all registered listeners.
`void` `vetoableChange(java.beans.PropertyChangeEvent e)` Receives notification that the key for one of the series in the collection has changed, and vetos it if the key is already present in the collection.

### Methods inherited from class org.jfree.data.xy.AbstractIntervalXYDataset

`getEndXValue, getEndYValue, getStartXValue, getStartYValue`

### Methods inherited from class org.jfree.data.xy.AbstractXYDataset

`getXValue, getYValue`

### Methods inherited from class org.jfree.data.general.AbstractSeriesDataset

`indexOf, seriesChanged`

### Methods inherited from class org.jfree.data.general.AbstractDataset

`addChangeListener, fireDatasetChanged, getGroup, hasListener, notifyListeners, removeChangeListener, setGroup, validateObject`

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

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

### Methods inherited from interface org.jfree.data.xy.IntervalXYDataset

`getEndXValue, getEndYValue, getStartXValue, getStartYValue`

### Methods inherited from interface org.jfree.data.xy.XYDataset

`getXValue, getYValue`

### Methods inherited from interface org.jfree.data.general.SeriesDataset

`indexOf`

### Methods inherited from interface org.jfree.data.general.Dataset

`addChangeListener, getGroup, removeChangeListener, setGroup`

### Constructor Detail

#### XYSeriesCollection

    public XYSeriesCollection()

Constructs an empty dataset.

#### XYSeriesCollection

    public XYSeriesCollection(XYSeries series)

Constructs a dataset and populates it with a single series.

Parameters:
  `series` - the series (`null` ignored).

### Method Detail

#### getDomainOrder

    public DomainOrder getDomainOrder()

Returns the order of the domain (X) values, if this is known.

Specified by:
  `getDomainOrder` in interface `XYDataset`
Overrides:
  `getDomainOrder` in class `AbstractXYDataset`
Returns:
  The domain order.

#### addSeries

    public void addSeries(XYSeries series)

Adds a series to the collection and sends a `DatasetChangeEvent` to all registered listeners.

Parameters:
  `series` - the series (`null` not permitted).
Throws:
  `java.lang.IllegalArgumentException` - if the key for the series is null or not unique within the dataset.

#### removeSeries

    public void removeSeries(int series)

Removes a series from the collection and sends a `DatasetChangeEvent` to all registered listeners.

Parameters:
  `series` - the series index (zero-based).

#### removeSeries

    public void removeSeries(XYSeries series)

Removes a series from the collection and sends a `DatasetChangeEvent` to all registered listeners.

Parameters:
  `series` - the series (`null` not permitted).

#### removeAllSeries

    public void removeAllSeries()

Removes all the series from the collection and sends a `DatasetChangeEvent` to all registered listeners.

#### getSeriesCount

    public int getSeriesCount()

Returns the number of series in the collection.

Specified by:
  `getSeriesCount` in interface `SeriesDataset`
Specified by:
  `getSeriesCount` in class `AbstractSeriesDataset`
Returns:
  The series count.

#### getSeries

    public java.util.List getSeries()

Returns a list of all the series in the collection.

Returns:
  The list (which is unmodifiable).

#### indexOf

    public int indexOf(XYSeries series)

Returns the index of the specified series, or -1 if that series is not present in the dataset.

Parameters:
  `series` - the series (`null` not permitted).
Returns:
  The series index.
Since:
  1.0.6

#### getSeries

    public XYSeries getSeries(int series)

Returns a series from the collection.

Parameters:
  `series` - the series index (zero-based).
Returns:
  The series.
Throws:
  `java.lang.IllegalArgumentException` - if `series` is not in the range `0` to `getSeriesCount() - 1`.

#### getSeries

    public XYSeries getSeries(java.lang.Comparable key)

Returns a series from the collection.

Parameters:
  `key` - the key (`null` not permitted).
Returns:
  The series with the specified key.
Throws:
  `UnknownKeyException` - if `key` is not found in the collection.
Since:
  1.0.9

#### getSeriesKey

    public java.lang.Comparable getSeriesKey(int series)

Returns the key for a series.

Specified by:
  `getSeriesKey` in interface `SeriesDataset`
Specified by:
  `getSeriesKey` in class `AbstractSeriesDataset`
Parameters:
  `series` - the series index (in the range `0` to `getSeriesCount() - 1`).
Returns:
  The key for a series.
Throws:
  `java.lang.IllegalArgumentException` - if `series` is not in the specified range.

#### getSeriesIndex

    public int getSeriesIndex(java.lang.Comparable key)

Returns the index of the series with the specified key, or -1 if no series has that key.

Parameters:
  `key` - the key (`null` not permitted).
Returns:
  The index.
Since:
  1.0.14

#### getItemCount

    public int getItemCount(int series)

Returns the number of items in the specified series.

Specified by:
  `getItemCount` in interface `XYDataset`
Parameters:
  `series` - the series (zero-based index).
Returns:
  The item count.
Throws:
  `java.lang.IllegalArgumentException` - if `series` is not in the range `0` to `getSeriesCount() - 1`.

#### getX

    public java.lang.Number getX(int series,
                        int item)

Returns the x-value for the specified series and item.

Specified by:
  `getX` in interface `XYDataset`
Parameters:
  `series` - the series (zero-based index).
  `item` - the item (zero-based index).
Returns:
  The value.

#### getStartX

    public java.lang.Number getStartX(int series,
                             int item)

Returns the starting X value for the specified series and item.

Specified by:
  `getStartX` in interface `IntervalXYDataset`
Parameters:
  `series` - the series (zero-based index).
  `item` - the item (zero-based index).
Returns:
  The starting X value.

#### getEndX

    public java.lang.Number getEndX(int series,
                           int item)

Returns the ending X value for the specified series and item.

Specified by:
  `getEndX` in interface `IntervalXYDataset`
Parameters:
  `series` - the series (zero-based index).
  `item` - the item (zero-based index).
Returns:
  The ending X value.

#### getY

    public java.lang.Number getY(int series,
                        int index)

Returns the y-value for the specified series and item.

Specified by:
  `getY` in interface `XYDataset`
Parameters:
  `series` - the series (zero-based index).
  `index` - the index of the item of interest (zero-based).
Returns:
  The value (possibly `null`).

#### getStartY

    public java.lang.Number getStartY(int series,
                             int item)

Returns the starting Y value for the specified series and item.

Specified by:
  `getStartY` in interface `IntervalXYDataset`
Parameters:
  `series` - the series (zero-based index).
  `item` - the item (zero-based index).
Returns:
  The starting Y value.

#### getEndY

    public java.lang.Number getEndY(int series,
                           int item)

Returns the ending Y value for the specified series and item.

Specified by:
  `getEndY` in interface `IntervalXYDataset`
Parameters:
  `series` - the series (zero-based index).
  `item` - the item (zero-based index).
Returns:
  The ending Y value.

#### equals

    public boolean equals(java.lang.Object obj)

Tests this collection for equality with an arbitrary object.

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

#### clone

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

Returns a clone of this instance.

Specified by:
  `clone` in interface `org.jfree.util.PublicCloneable`
Overrides:
  `clone` in class `AbstractDataset`
Returns:
  A clone.
Throws:
  `java.lang.CloneNotSupportedException` - if there is a problem.

#### hashCode

    public int hashCode()

Returns a hash code.

Overrides:
  `hashCode` in class `java.lang.Object`
Returns:
  A hash code.

#### getDomainLowerBound

    public double getDomainLowerBound(boolean includeInterval)

Returns the minimum x-value in the dataset.

Specified by:
  `getDomainLowerBound` in interface `DomainInfo`
Parameters:
  `includeInterval` - a flag that determines whether or not the x-interval is taken into account.
Returns:
  The minimum value.

#### getDomainUpperBound

    public double getDomainUpperBound(boolean includeInterval)

Returns the maximum x-value in the dataset.

Specified by:
  `getDomainUpperBound` in interface `DomainInfo`
Parameters:
  `includeInterval` - a flag that determines whether or not the x-interval is taken into account.
Returns:
  The maximum value.

#### getDomainBounds

    public Range getDomainBounds(boolean includeInterval)

Returns the range of the values in this dataset's domain.

Specified by:
  `getDomainBounds` in interface `DomainInfo`
Parameters:
  `includeInterval` - a flag that determines whether or not the x-interval is taken into account.
Returns:
  The range (or `null` if the dataset contains no values).

#### getIntervalWidth

    public double getIntervalWidth()

Returns the interval width. This is used to calculate the start and end x-values, if/when the dataset is used as an `IntervalXYDataset`.

Returns:
  The interval width.

#### setIntervalWidth

    public void setIntervalWidth(double width)

Sets the interval width and sends a `DatasetChangeEvent` to all registered listeners.

Parameters:
  `width` - the width (negative values not permitted).

#### getIntervalPositionFactor

    public double getIntervalPositionFactor()

Returns the interval position factor.

Returns:
  The interval position factor.

#### setIntervalPositionFactor

    public void setIntervalPositionFactor(double factor)

Sets the interval position factor. This controls where the x-value is in relation to the interval surrounding the x-value (0.0 means the x-value will be positioned at the start, 0.5 in the middle, and 1.0 at the end).

Parameters:
  `factor` - the factor.

#### isAutoWidth

    public boolean isAutoWidth()

Returns whether the interval width is automatically calculated or not.

Returns:
  Whether the width is automatically calculated or not.

#### setAutoWidth

    public void setAutoWidth(boolean b)

Sets the flag that indicates wether the interval width is automatically calculated or not.

Parameters:
  `b` - a boolean.

#### getRangeBounds

    public Range getRangeBounds(boolean includeInterval)

Returns the range of the values in this dataset's range.

Specified by:
  `getRangeBounds` in interface `RangeInfo`
Parameters:
  `includeInterval` - ignored.
Returns:
  The range (or `null` if the dataset contains no values).

#### getRangeLowerBound

    public double getRangeLowerBound(boolean includeInterval)

Returns the minimum y-value in the dataset.

Specified by:
  `getRangeLowerBound` in interface `RangeInfo`
Parameters:
  `includeInterval` - a flag that determines whether or not the y-interval is taken into account.
Returns:
  The minimum value.

#### getRangeUpperBound

    public double getRangeUpperBound(boolean includeInterval)

Returns the maximum y-value in the dataset.

Specified by:
  `getRangeUpperBound` in interface `RangeInfo`
Parameters:
  `includeInterval` - a flag that determines whether or not the y-interval is taken into account.
Returns:
  The maximum value.

#### vetoableChange

    public void vetoableChange(java.beans.PropertyChangeEvent e)
                        throws java.beans.PropertyVetoException

Receives notification that the key for one of the series in the collection has changed, and vetos it if the key is already present in the collection.

Specified by:
  `vetoableChange` in interface `java.beans.VetoableChangeListener`
Parameters:
  `e` - the event.
Throws:
  `java.beans.PropertyVetoException`
Since:
  1.0.14