org.jfree.chart.axis

## Class SegmentedTimeline.Segment

- java.lang.Object
- - org.jfree.chart.axis.SegmentedTimeline.Segment

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

Direct Known Subclasses:
  SegmentedTimeline.SegmentRange

Enclosing class:
  SegmentedTimeline

    public class SegmentedTimeline.Segment
    extends java.lang.Object
    implements java.lang.Comparable, java.lang.Cloneable, java.io.Serializable

Internal class to represent a valid segment for this timeline. A segment is valid on a timeline if it is part of its included, excluded or exception segments.

Each segment will know its segment number, segmentStart, segmentEnd and index inside the segment.

See Also:
  Serialized Form

### Field Summary

Fields
`protected long` `millisecond` A reference point within the segment.
`protected long` `segmentEnd` The segment end.
`protected long` `segmentNumber` The segment number.
`protected long` `segmentStart` The segment start.

### Constructor Summary

Constructors
`protected` `SegmentedTimeline.Segment()` Protected constructor only used by sub-classes.
`protected` `SegmentedTimeline.Segment(long millisecond)` Creates a segment for a given point in time.

### Method Summary

Methods
`boolean` `after(SegmentedTimeline.Segment other)` Returns `true` if this segment is wholly after another segment.
`boolean` `before(SegmentedTimeline.Segment other)` Returns `true` if this segment is wholly before another segment.
`long` `calculateSegmentNumber(long millis)` Calculates the segment number for a given millisecond.
`int` `compareTo(java.lang.Object object)` Will compare this Segment with another Segment (from Comparable interface).
`boolean` `contained(long from, long to)` Returns `true` if this segment is contained in an interval.
`boolean` `contains(long millis)` Returns true if a particular millisecond is contained in this segment.
`boolean` `contains(long from, long to)` Returns `true` if an interval is contained in this segment.
`boolean` `contains(SegmentedTimeline.Segment segment)` Returns `true` if a segment is contained in this segment.
`SegmentedTimeline.Segment` `copy()` Returns a copy of ourselves or `null` if there was an exception during cloning.
`void` `dec()` Decrements the internal attributes of this segment by one segment.
`void` `dec(long n)` Decrements the internal attributes of this segment by a number of segments.
`boolean` `equals(java.lang.Object object)` Tests an object (usually another `Segment`) for equality with this segment.
`java.util.Date` `getDate()` Returns a `Date` that represents the reference point for this segment.
`long` `getMillisecond()` Returns the millisecond used to reference this segment (always between the segmentStart and segmentEnd).
`long` `getSegmentCount()` Returns always one (the number of segments contained in this segment).
`long` `getSegmentEnd()` Gets the end of this segment in ms.
`long` `getSegmentNumber()` Returns the segment number of this segment.
`long` `getSegmentStart()` Gets the start of this segment in ms.
`void` `inc()` Increments the internal attributes of this segment by one segment.
`void` `inc(long n)` Increments the internal attributes of this segment by a number of segments.
`boolean` `inExceptionSegments()` Returns true if we are an exception segment.
`boolean` `inExcludeSegments()` Returns true if we are an excluded segment.
`boolean` `inIncludeSegments()` Returns true if we are an included segment and we are not an exception.
`SegmentedTimeline.Segment` `intersect(long from, long to)` Returns a segment that is the intersection of this segment and the interval.
`void` `moveIndexToEnd()` Moves the index of this segment to the end of the segment.
`void` `moveIndexToStart()` Moves the index of this segment to the beginning if the segment.

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

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

### Field Detail

#### segmentNumber

    protected long segmentNumber

The segment number.

#### segmentStart

    protected long segmentStart

The segment start.

#### segmentEnd

    protected long segmentEnd

The segment end.

#### millisecond

    protected long millisecond

A reference point within the segment.

### Constructor Detail

#### SegmentedTimeline.Segment

    protected SegmentedTimeline.Segment()

Protected constructor only used by sub-classes.

#### SegmentedTimeline.Segment

    protected SegmentedTimeline.Segment(long millisecond)

Creates a segment for a given point in time.

Parameters:
  `millisecond` - the millisecond (as encoded by java.util.Date).

### Method Detail

#### calculateSegmentNumber

    public long calculateSegmentNumber(long millis)

Calculates the segment number for a given millisecond.

Parameters:
  `millis` - the millisecond (as encoded by java.util.Date).
Returns:
  The segment number.

#### getSegmentNumber

    public long getSegmentNumber()

Returns the segment number of this segment. Segments start at 0.

Returns:
  The segment number.

#### getSegmentCount

    public long getSegmentCount()

Returns always one (the number of segments contained in this segment).

Returns:
  The segment count (always 1 for this class).

#### getSegmentStart

    public long getSegmentStart()

Gets the start of this segment in ms.

Returns:
  The segment start.

#### getSegmentEnd

    public long getSegmentEnd()

Gets the end of this segment in ms.

Returns:
  The segment end.

#### getMillisecond

    public long getMillisecond()

Returns the millisecond used to reference this segment (always between the segmentStart and segmentEnd).

Returns:
  The millisecond.

#### getDate

    public java.util.Date getDate()

Returns a `Date` that represents the reference point for this segment.

Returns:
  The date.

#### contains

    public boolean contains(long millis)

Returns true if a particular millisecond is contained in this segment.

Parameters:
  `millis` - the millisecond to verify.
Returns:
  `true` if the millisecond is contained in the segment.

#### contains

    public boolean contains(long from,
                   long to)

Returns `true` if an interval is contained in this segment.

Parameters:
  `from` - the start of the interval.
  `to` - the end of the interval.
Returns:
  `true` if the interval is contained in the segment.

#### contains

    public boolean contains(SegmentedTimeline.Segment segment)

Returns `true` if a segment is contained in this segment.

Parameters:
  `segment` - the segment to test for inclusion
Returns:
  `true` if the segment is contained in this segment.

#### contained

    public boolean contained(long from,
                    long to)

Returns `true` if this segment is contained in an interval.

Parameters:
  `from` - the start of the interval.
  `to` - the end of the interval.
Returns:
  `true` if this segment is contained in the interval.

#### intersect

    public SegmentedTimeline.Segment intersect(long from,
                                      long to)

Returns a segment that is the intersection of this segment and the interval.

Parameters:
  `from` - the start of the interval.
  `to` - the end of the interval.
Returns:
  A segment.

#### before

    public boolean before(SegmentedTimeline.Segment other)

Returns `true` if this segment is wholly before another segment.

Parameters:
  `other` - the other segment.
Returns:
  A boolean.

#### after

    public boolean after(SegmentedTimeline.Segment other)

Returns `true` if this segment is wholly after another segment.

Parameters:
  `other` - the other segment.
Returns:
  A boolean.

#### equals

    public boolean equals(java.lang.Object object)

Tests an object (usually another `Segment`) for equality with this segment.

Overrides:
  `equals` in class `java.lang.Object`
Parameters:
  `object` - The other segment to compare with us
Returns:
  `true` if we are the same segment

#### copy

    public SegmentedTimeline.Segment copy()

Returns a copy of ourselves or `null` if there was an exception during cloning.

Returns:
  A copy of this segment.

#### compareTo

    public int compareTo(java.lang.Object object)

Will compare this Segment with another Segment (from Comparable interface).

Specified by:
  `compareTo` in interface `java.lang.Comparable`
Parameters:
  `object` - The other Segment to compare with
Returns:
  -1: this < object, 0: this.equal(object) and +1: this > object

#### inIncludeSegments

    public boolean inIncludeSegments()

Returns true if we are an included segment and we are not an exception.

Returns:
  `true` or `false`.

#### inExcludeSegments

    public boolean inExcludeSegments()

Returns true if we are an excluded segment.

Returns:
  `true` or `false`.

#### inExceptionSegments

    public boolean inExceptionSegments()

Returns true if we are an exception segment. This is implemented via a binary search on the exceptionSegments sorted list. If the segment is not listed as an exception in our list and we have a baseTimeline, a check is performed to see if the segment is inside an excluded segment from our base. If so, it is also considered an exception.

Returns:
  `true` if we are an exception segment.

#### inc

    public void inc(long n)

Increments the internal attributes of this segment by a number of segments.

Parameters:
  `n` - Number of segments to increment.

#### inc

    public void inc()

Increments the internal attributes of this segment by one segment. The exact time incremented is segmentSize.

#### dec

    public void dec(long n)

Decrements the internal attributes of this segment by a number of segments.

Parameters:
  `n` - Number of segments to decrement.

#### dec

    public void dec()

Decrements the internal attributes of this segment by one segment. The exact time decremented is segmentSize.

#### moveIndexToStart

    public void moveIndexToStart()

Moves the index of this segment to the beginning if the segment.

#### moveIndexToEnd

    public void moveIndexToEnd()

Moves the index of this segment to the end of the segment.