## org.jfree.data.category
Class SlidingCategoryDataset

    java.lang.Object
      org.jfree.data.general.AbstractDataset
          org.jfree.data.category.SlidingCategoryDataset

All Implemented Interfaces:
  java.io.ObjectInputValidation, java.io.Serializable, java.lang.Cloneable, CategoryDataset, Dataset, KeyedValues2D, Values2D

    public class SlidingCategoryDataset

extends AbstractDataset
implements CategoryDataset

A `CategoryDataset` implementation that presents a subset of the categories in an underlying dataset. The index of the first "visible" category can be modified, which provides a means of "sliding" through the categories in the underlying dataset.

Since:
  1.0.10
See Also:
  Serialized Form

Constructor Summary
`SlidingCategoryDataset(CategoryDataset underlying, int firstColumn, int maxColumns)` Creates a new instance.

Method Summary
`java.lang.Object` `clone()` Returns an independent copy of the dataset.
`boolean` `equals(java.lang.Object obj)` Tests this `SlidingCategoryDataset` for equality with an arbitrary object.
`int` `getColumnCount()` Returns the number of columns in the table.
`int` `getColumnIndex(java.lang.Comparable key)` Returns the index for the specified column key.
`java.lang.Comparable` `getColumnKey(int column)` Returns the column key for a given index.
`java.util.List` `getColumnKeys()` Returns the column keys.
`int` `getFirstCategoryIndex()` Returns the index of the first visible category.
`int` `getMaximumCategoryCount()` Returns the maximum category count.
`int` `getRowCount()` Returns the number of rows in the table.
`int` `getRowIndex(java.lang.Comparable key)` Returns the row index for a given key.
`java.lang.Comparable` `getRowKey(int row)` Returns the row key for a given index.
`java.util.List` `getRowKeys()` Returns the row keys.
`CategoryDataset` `getUnderlyingDataset()` Returns the underlying dataset that was supplied to the constructor.
`java.lang.Number` `getValue(java.lang.Comparable rowKey, java.lang.Comparable columnKey)` Returns the value for a pair of keys.
`java.lang.Number` `getValue(int row, int column)` Returns a value from the table.
`void` `setFirstCategoryIndex(int first)` Sets the index of the first category that should be used from the underlying dataset, and sends a `DatasetChangeEvent` to all registered listeners.
`void` `setMaximumCategoryCount(int max)` Sets the maximum category count and sends a `DatasetChangeEvent` to all registered listeners.

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, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.jfree.data.general.Dataset
`addChangeListener, getGroup, removeChangeListener, setGroup`

Constructor Detail

### SlidingCategoryDataset

    public SlidingCategoryDataset(CategoryDataset underlying,
                                  int firstColumn,
                                  int maxColumns)

  Creates a new instance.

  Parameters:
    `underlying` - the underlying dataset (`null` not permitted).
    `firstColumn` - the index of the first visible column from the underlying dataset.
    `maxColumns` - the maximumColumnCount.

Method Detail

### getUnderlyingDataset

    public CategoryDataset getUnderlyingDataset()

  Returns the underlying dataset that was supplied to the constructor.

  Returns:
    The underlying dataset (never `null`).

### getFirstCategoryIndex

    public int getFirstCategoryIndex()

  Returns the index of the first visible category.

  Returns:
    The index.
  See Also:
    `setFirstCategoryIndex(int)`

### setFirstCategoryIndex

    public void setFirstCategoryIndex(int first)

  Sets the index of the first category that should be used from the underlying dataset, and sends a `DatasetChangeEvent` to all registered listeners.

  Parameters:
    `first` - the index.
  See Also:
    `getFirstCategoryIndex()`

### getMaximumCategoryCount

    public int getMaximumCategoryCount()

  Returns the maximum category count.

  Returns:
    The maximum category count.
  See Also:
    `setMaximumCategoryCount(int)`

### setMaximumCategoryCount

    public void setMaximumCategoryCount(int max)

  Sets the maximum category count and sends a `DatasetChangeEvent` to all registered listeners.

  Parameters:
    `max` - the maximum.
  See Also:
    `getMaximumCategoryCount()`

### getColumnIndex

    public int getColumnIndex(java.lang.Comparable key)

  Returns the index for the specified column key.

  Specified by:
    `getColumnIndex` in interface `KeyedValues2D`
  Parameters:
    `key` - the key.
  Returns:
    The column index, or -1 if the key is not recognised.

### getColumnKey

    public java.lang.Comparable getColumnKey(int column)

  Returns the column key for a given index.

  Specified by:
    `getColumnKey` in interface `KeyedValues2D`
  Parameters:
    `column` - the column index (zero-based).
  Returns:
    The column key.
  Throws:
    `java.lang.IndexOutOfBoundsException` - if `row` is out of bounds.

### getColumnKeys

    public java.util.List getColumnKeys()

  Returns the column keys.

  Specified by:
    `getColumnKeys` in interface `KeyedValues2D`
  Returns:
    The keys.
  See Also:
    `getColumnKey(int)`

### getRowIndex

    public int getRowIndex(java.lang.Comparable key)

  Returns the row index for a given key.

  Specified by:
    `getRowIndex` in interface `KeyedValues2D`
  Parameters:
    `key` - the row key.
  Returns:
    The row index, or `-1` if the key is unrecognised.

### getRowKey

    public java.lang.Comparable getRowKey(int row)

  Returns the row key for a given index.

  Specified by:
    `getRowKey` in interface `KeyedValues2D`
  Parameters:
    `row` - the row index (zero-based).
  Returns:
    The row key.
  Throws:
    `java.lang.IndexOutOfBoundsException` - if `row` is out of bounds.

### getRowKeys

    public java.util.List getRowKeys()

  Returns the row keys.

  Specified by:
    `getRowKeys` in interface `KeyedValues2D`
  Returns:
    The keys.

### getValue

    public java.lang.Number getValue(java.lang.Comparable rowKey,
                                     java.lang.Comparable columnKey)

  Returns the value for a pair of keys.

  Specified by:
    `getValue` in interface `KeyedValues2D`
  Parameters:
    `rowKey` - the row key (`null` not permitted).
    `columnKey` - the column key (`null` not permitted).
  Returns:
    The value (possibly `null`).
  Throws:
    `UnknownKeyException` - if either key is not defined in the dataset.

### getColumnCount

    public int getColumnCount()

  Returns the number of columns in the table.

  Specified by:
    `getColumnCount` in interface `Values2D`
  Returns:
    The column count.

### getRowCount

    public int getRowCount()

  Returns the number of rows in the table.

  Specified by:
    `getRowCount` in interface `Values2D`
  Returns:
    The row count.

### getValue

    public java.lang.Number getValue(int row,
                                     int column)

  Returns a value from the table.

  Specified by:
    `getValue` in interface `Values2D`
  Parameters:
    `row` - the row index (zero-based).
    `column` - the column index (zero-based).
  Returns:
    The value (possibly `null`).

### equals

    public boolean equals(java.lang.Object obj)

  Tests this `SlidingCategoryDataset` 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 an independent copy of the dataset. Note that:
  - the underlying dataset is only cloned if it implements the `PublicCloneable` interface;
  - the listeners registered with this dataset are not carried over to the cloned dataset.

  Overrides:
    `clone` in class `AbstractDataset`
  Returns:
    An independent copy of the dataset.
  Throws:
    `java.lang.CloneNotSupportedException` - if the dataset cannot be cloned for any reason.