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, PublicCloneable

      public class XYSeriesCollection
      extends AbstractIntervalXYDataset
      implements IntervalXYDataset, DomainInfo, RangeInfo, java.beans.VetoableChangeListener, 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

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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 whether 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, getNotify, hasListener, notifyListeners, removeChangeListener, setGroup, setNotify, 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 `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 whether 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