Class 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 Detail

      • serialVersionUID

        static final long serialVersionUID
        For serialization.
        See Also:
        Constant Field Values
      • 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
      • domain

        private java.lang.String domain
        A description of the domain.
      • range

        private java.lang.String range
        A description of the range.
      • data

        private java.util.List data
        The list of data pairs in the series.
      • minStartIndex

        private int minStartIndex
        Index of the time period with the minimum start milliseconds.
      • maxStartIndex

        private int maxStartIndex
        Index of the time period with the maximum start milliseconds.
      • minMiddleIndex

        private int minMiddleIndex
        Index of the time period with the minimum middle milliseconds.
      • maxMiddleIndex

        private int maxMiddleIndex
        Index of the time period with the maximum middle milliseconds.
      • minEndIndex

        private int minEndIndex
        Index of the time period with the minimum end milliseconds.
      • maxEndIndex

        private int maxEndIndex
        Index of the time period with the maximum end milliseconds.
    • 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

      • 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()
      • 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).
      • updateBounds

        private void updateBounds​(TimePeriod period,
                                  int index)
        Update the index values for the maximum and minimum bounds.
        Parameters:
        period - the time period.
        index - the index of the time period.
      • recalculateBounds

        private void recalculateBounds()
        Recalculates the bounds for the collection of items.
      • 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.