org.jfree.chart.axis

## Interface Timeline

-     public interface Timeline

  An interface that defines the contract for a Timeline.

  A Timeline will present a series of values to be used for an axis. Each Timeline must provide transformation methods between domain values and timeline values. In theory many transformations are possible. This interface has been implemented completely in `org.jfree.chart.axis.SegmentedTimeline`.

  A timeline can be used as parameter to a `org.jfree.chart.axis.DateAxis` to define the values that this axis supports. As an example, the `org.jfree.chart.axis.SegmentedTimeline` implements a timeline formed by segments of equal length (ex. days, hours, minutes) where some segments can be included in the timeline and others excluded. Therefore timelines like "working days" or "working hours" can be created where non-working days or non-working hours respectively can be removed from the timeline, and therefore from the axis. This creates a smooth plot with equal separation between all included segments.

  Because Timelines were created mainly for Date related axis, values are represented as longs instead of doubles. In this case, the domain value is just the number of milliseconds since January 1, 1970, 00:00:00 GMT as defined by the getTime() method of `Date`.

  See Also:
    `org.jfree.chart.axis.SegmentedTimeline`, `org.jfree.chart.axis.DateAxis`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `containsDomainRange(java.util.Date fromDate, java.util.Date toDate)` Returns `true` if a range of dates are contained in the timeline.
    `boolean` | `containsDomainRange(long fromMillisecond, long toMillisecond)` Returns `true` if a range of values are contained in the timeline.
    `boolean` | `containsDomainValue(java.util.Date date)` Returns `true` if a date is contained in the timeline values.
    `boolean` | `containsDomainValue(long millisecond)` Returns `true` if a value is contained in the timeline values.
    `long` | `toMillisecond(long timelineValue)` Translates a value relative to this timeline into a domain value.
    `long` | `toTimelineValue(java.util.Date date)` Translates a date into a value on this timeline.
    `long` | `toTimelineValue(long millisecond)` Translates a millisecond (as defined by java.util.Date) into an index along this timeline.

- - ### Method Detail

    - #### toTimelineValue

          long toTimelineValue(long millisecond)

      Translates a millisecond (as defined by java.util.Date) into an index along this timeline.
      Parameters:
        `millisecond` - the millisecond.
      Returns:
        A timeline value.

    - #### toTimelineValue

          long toTimelineValue(java.util.Date date)

      Translates a date into a value on this timeline.
      Parameters:
        `date` - the date.
      Returns:
        A timeline value

    - #### toMillisecond

          long toMillisecond(long timelineValue)

      Translates a value relative to this timeline into a domain value. The domain value obtained by this method is not always the same domain value that could have been supplied to translateDomainValueToTimelineValue(domainValue). This is because the original transformation may not be complete reversable.
      Parameters:
        `timelineValue` - a timeline value.
      Returns:
        A domain value.
      See Also:
        `org.jfree.chart.axis.SegmentedTimeline`

    - #### containsDomainValue

          boolean containsDomainValue(long millisecond)

      Returns `true` if a value is contained in the timeline values.
      Parameters:
        `millisecond` - the millisecond.
      Returns:
        `true` if value is contained in the timeline and `false` otherwise.

    - #### containsDomainValue

          boolean containsDomainValue(java.util.Date date)

      Returns `true` if a date is contained in the timeline values.
      Parameters:
        `date` - the date to verify.
      Returns:
        `true` if value is contained in the timeline and `false` otherwise.

    - #### containsDomainRange

          boolean containsDomainRange(long fromMillisecond,
                                      long toMillisecond)

      Returns `true` if a range of values are contained in the timeline.
      Parameters:
        `fromMillisecond` - the start of the range to verify.
        `toMillisecond` - the end of the range to verify.
      Returns:
        `true` if the range is contained in the timeline or `false` otherwise

    - #### containsDomainRange

          boolean containsDomainRange(java.util.Date fromDate,
                                      java.util.Date toDate)

      Returns `true` if a range of dates are contained in the timeline.
      Parameters:
        `fromDate` - the start of the range to verify.
        `toDate` - the end of the range to verify.
      Returns:
        `true` if the range is contained in the timeline or `false` otherwise