org.jfree.data.time

## Class TimePeriodValues

- java.lang.Object
- - org.jfree.data.general.Series
  - - org.jfree.data.time.TimePeriodValues

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable

    public class TimePeriodValues
    extends Series
    implements java.io.Serializable

A structure containing zero, one or many `TimePeriodValue` instances. The time periods can overlap, and are maintained in the order that they are added to the collection.

This is similar to the `TimeSeries` class, except that the time periods can have irregular lengths.

See Also:
  Serialized Form

### Field Summary

Fields
`protected static java.lang.String` `DEFAULT_DOMAIN_DESCRIPTION` Default value for the domain description.
`protected static java.lang.String` `DEFAULT_RANGE_DESCRIPTION` Default value for the range description.

### Constructor Summary

Constructors
Constructor and Description
`TimePeriodValues(java.lang.String name)` Creates a new (empty) collection of time period values.
`TimePeriodValues(java.lang.String name, java.lang.String domain, java.lang.String range)` Creates a new time series that contains no data.

### Method Summary

Methods
`void` `add(TimePeriod period, double value)` Adds a new data item to the series and sends a `SeriesChangeEvent` to all registered listeners.
`void` `add(TimePeriod period, java.lang.Number value)` Adds a new data item to the series and sends a `SeriesChangeEvent` to all registered listeners.
`void` `add(TimePeriodValue item)` Adds a data item to the series and sends a `SeriesChangeEvent` to all registered listeners.
`java.lang.Object` `clone()` Returns a clone of the collection.
`TimePeriodValues` `createCopy(int start, int end)` Creates a new instance by copying a subset of the data in this collection.
`void` `delete(int start, int end)` Deletes data from start until end index (end inclusive) and sends a `SeriesChangeEvent` to all registered listeners.
`boolean` `equals(java.lang.Object obj)` Tests the series for equality with another object.
`TimePeriodValue` `getDataItem(int index)` Returns one data item for the series.
`java.lang.String` `getDomainDescription()` Returns the domain description.
`int` `getItemCount()` Returns the number of items in the series.
`int` `getMaxEndIndex()` Returns the index of the time period with the maximum end milliseconds.
`int` `getMaxMiddleIndex()` Returns the index of the time period with the maximum middle milliseconds.
`int` `getMaxStartIndex()` Returns the index of the time period with the maximum start milliseconds.
`int` `getMinEndIndex()` Returns the index of the time period with the minimum end milliseconds.
`int` `getMinMiddleIndex()` Returns the index of the time period with the minimum middle milliseconds.
`int` `getMinStartIndex()` Returns the index of the time period with the minimum start milliseconds.
`java.lang.String` `getRangeDescription()` Returns the range description.
`TimePeriod` `getTimePeriod(int index)` Returns the time period at the specified index.
`java.lang.Number` `getValue(int index)` Returns the value at the specified index.
`int` `hashCode()` Returns a hash code value for the object.
`void` `setDomainDescription(java.lang.String description)` Sets the domain description and fires a property change event (with the property name `Domain` if the description changes).
`void` `setRangeDescription(java.lang.String description)` Sets the range description and fires a property change event with the name `Range`.
`void` `update(int index, java.lang.Number value)` Updates (changes) the value of a data item and sends a `SeriesChangeEvent` to all registered listeners.

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

`addChangeListener, addPropertyChangeListener, addVetoableChangeListener, firePropertyChange, fireSeriesChanged, fireVetoableChange, getDescription, getKey, getNotify, isEmpty, notifyListeners, removeChangeListener, removePropertyChangeListener, removeVetoableChangeListener, setDescription, setKey, setNotify`

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

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

### Field Detail

#### DEFAULT_DOMAIN_DESCRIPTION

    protected static final java.lang.String DEFAULT_DOMAIN_DESCRIPTION

Default value for the domain description.

See Also:
  Constant Field Values

#### DEFAULT_RANGE_DESCRIPTION

    protected static final java.lang.String DEFAULT_RANGE_DESCRIPTION

Default value for the range description.

See Also:
  Constant Field Values

### Constructor Detail

#### TimePeriodValues

    public TimePeriodValues(java.lang.String name)

Creates a new (empty) collection of time period values.

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

#### TimePeriodValues

    public TimePeriodValues(java.lang.String name,
                    java.lang.String domain,
                    java.lang.String range)

Creates a new time series that contains no data.

Descriptions can be specified for the domain and range. One situation where this is helpful is when generating a chart for the time series - axis labels can be taken from the domain and range description.

Parameters:
  `name` - the name of the series (`null` not permitted).
  `domain` - the domain description.
  `range` - the range description.

### Method Detail

#### getDomainDescription

    public java.lang.String getDomainDescription()

Returns the domain description.

Returns:
  The domain description (possibly `null`).
See Also:
  `getRangeDescription()`, `setDomainDescription(String)`

#### setDomainDescription

    public void setDomainDescription(java.lang.String description)

Sets the domain description and fires a property change event (with the property name `Domain` if the description changes).

Parameters:
  `description` - the new description (`null` permitted).
See Also:
  `getDomainDescription()`

#### getRangeDescription

    public java.lang.String getRangeDescription()

Returns the range description.

Returns:
  The range description (possibly `null`).
See Also:
  `getDomainDescription()`, `setRangeDescription(String)`

#### setRangeDescription

    public void setRangeDescription(java.lang.String description)

Sets the range description and fires a property change event with the name `Range`.

Parameters:
  `description` - the new description (`null` permitted).
See Also:
  `getRangeDescription()`

#### getItemCount

    public int getItemCount()

Returns the number of items in the series.

Specified by:
  `getItemCount` in class `Series`
Returns:
  The item count.

#### getDataItem

    public TimePeriodValue getDataItem(int index)

Returns one data item for the series.

Parameters:
  `index` - the item index (in the range `0` to `getItemCount() - 1`).
Returns:
  One data item for the series.

#### getTimePeriod

    public TimePeriod getTimePeriod(int index)

Returns the time period at the specified index.

Parameters:
  `index` - the item index (in the range `0` to `getItemCount() - 1`).
Returns:
  The time period at the specified index.
See Also:
  `getDataItem(int)`

#### getValue

    public java.lang.Number getValue(int index)

Returns the value at the specified index.

Parameters:
  `index` - the item index (in the range `0` to `getItemCount() - 1`).
Returns:
  The value at the specified index (possibly `null`).
See Also:
  `getDataItem(int)`

#### add

    public void add(TimePeriodValue item)

Adds a data item to the series and sends a `SeriesChangeEvent` to all registered listeners.

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

#### add

    public void add(TimePeriod period,
           double value)

Adds a new data item to the series and sends a `SeriesChangeEvent` to all registered listeners.

Parameters:
  `period` - the time period (`null` not permitted).
  `value` - the value.
See Also:
  `add(TimePeriod, Number)`

#### add

    public void add(TimePeriod period,
           java.lang.Number value)

Adds a new data item to the series and sends a `SeriesChangeEvent` to all registered listeners.

Parameters:
  `period` - the time period (`null` not permitted).
  `value` - the value (`null` permitted).

#### update

    public void update(int index,
              java.lang.Number value)

Updates (changes) the value of a data item and sends a `SeriesChangeEvent` to all registered listeners.

Parameters:
  `index` - the index of the data item to update.
  `value` - the new value (`null` not permitted).

#### delete

    public void delete(int start,
              int end)

Deletes data from start until end index (end inclusive) and sends a `SeriesChangeEvent` to all registered listeners.

Parameters:
  `start` - the index of the first period to delete.
  `end` - the index of the last period to delete.

#### equals

    public boolean equals(java.lang.Object obj)

Tests the series for equality with another object.

Overrides:
  `equals` in class `Series`
Parameters:
  `obj` - the object (`null` permitted).
Returns:
  `true` or `false`.

#### hashCode

    public int hashCode()

Returns a hash code value for the object.

Overrides:
  `hashCode` in class `Series`
Returns:
  The hashcode

#### clone

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

Returns a clone of the collection.

Notes:

- no need to clone the domain and range descriptions, since String object is immutable;
- we pass over to the more general method createCopy(start, end).

Overrides:
  `clone` in class `Series`
Returns:
  A clone of the time series.
Throws:
  `java.lang.CloneNotSupportedException` - if there is a cloning problem.

#### createCopy

    public TimePeriodValues createCopy(int start,
                              int end)
                                throws java.lang.CloneNotSupportedException

Creates a new instance by copying a subset of the data in this collection.

Parameters:
  `start` - the index of the first item to copy.
  `end` - the index of the last item to copy.
Returns:
  A copy of a subset of the items.
Throws:
  `java.lang.CloneNotSupportedException` - if there is a cloning problem.

#### getMinStartIndex

    public int getMinStartIndex()

Returns the index of the time period with the minimum start milliseconds.

Returns:
  The index.

#### getMaxStartIndex

    public int getMaxStartIndex()

Returns the index of the time period with the maximum start milliseconds.

Returns:
  The index.

#### getMinMiddleIndex

    public int getMinMiddleIndex()

Returns the index of the time period with the minimum middle milliseconds.

Returns:
  The index.

#### getMaxMiddleIndex

    public int getMaxMiddleIndex()

Returns the index of the time period with the maximum middle milliseconds.

Returns:
  The index.

#### getMinEndIndex

    public int getMinEndIndex()

Returns the index of the time period with the minimum end milliseconds.

Returns:
  The index.

#### getMaxEndIndex

    public int getMaxEndIndex()

Returns the index of the time period with the maximum end milliseconds.

Returns:
  The index.