org.jfree.chart.axis

Class SegmentedTimeline.Segment

public class SegmentedTimeline.Segment extends Object implements Comparable, Cloneable, 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.

Field Summary
protected longmillisecond
A reference point within the segment.
protected longsegmentEnd
The segment end.
protected longsegmentNumber
The segment number.
protected longsegmentStart
The segment start.
Constructor Summary
protected Segment()
Protected constructor only used by sub-classes.
protected Segment(long millisecond)
Creates a segment for a given point in time.
Method Summary
booleanafter(SegmentedTimeline.Segment other)
Returns true if this segment is wholly after another segment.
booleanbefore(SegmentedTimeline.Segment other)
Returns true if this segment is wholly before another segment.
longcalculateSegmentNumber(long millis)
Calculates the segment number for a given millisecond.
intcompareTo(Object object)
Will compare this Segment with another Segment (from Comparable interface).
booleancontained(long from, long to)
Returns true if this segment is contained in an interval.
booleancontains(long millis)
Returns true if a particular millisecond is contained in this segment.
booleancontains(long from, long to)
Returns true if an interval is contained in this segment.
booleancontains(SegmentedTimeline.Segment segment)
Returns true if a segment is contained in this segment.
SegmentedTimeline.Segmentcopy()
Returns a copy of ourselves or null if there was an exception during cloning.
voiddec(long n)
Decrements the internal attributes of this segment by a number of segments.
voiddec()
Decrements the internal attributes of this segment by one segment.
booleanequals(Object object)
Tests an object (usually another Segment) for equality with this segment.
DategetDate()
Returns a java.util.Date that represents the reference point for this segment.
longgetMillisecond()
Returns the millisecond used to reference this segment (always between the segmentStart and segmentEnd).
longgetSegmentCount()
Returns always one (the number of segments contained in this segment).
longgetSegmentEnd()
Gets the end of this segment in ms.
longgetSegmentNumber()
Returns the segment number of this segment.
longgetSegmentStart()
Gets the start of this segment in ms.
voidinc(long n)
Increments the internal attributes of this segment by a number of segments.
voidinc()
Increments the internal attributes of this segment by one segment.
booleaninExceptionSegments()
Returns true if we are an exception segment.
booleaninExcludeSegments()
Returns true if we are an excluded segment.
booleaninIncludeSegments()
Returns true if we are an included segment and we are not an exception.
SegmentedTimeline.Segmentintersect(long from, long to)
Returns a segment that is the intersection of this segment and the interval.
voidmoveIndexToEnd()
Moves the index of this segment to the end of the segment.
voidmoveIndexToStart()
Moves the index of this segment to the beginning if the segment.

Field Detail

millisecond

protected long millisecond
A reference point within the segment.

segmentEnd

protected long segmentEnd
The segment end.

segmentNumber

protected long segmentNumber
The segment number.

segmentStart

protected long segmentStart
The segment start.

Constructor Detail

Segment

protected Segment()
Protected constructor only used by sub-classes.

Segment

protected Segment(long millisecond)
Creates a segment for a given point in time.

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

Method Detail

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.

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.

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.

compareTo

public int compareTo(Object object)
Will compare this Segment with another Segment (from Comparable interface).

Parameters: object The other Segment to compare with

Returns: -1: this < object, 0: this.equal(object) and +1: this > object

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.

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.

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.

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.

equals

public boolean equals(Object object)
Tests an object (usually another Segment) for equality with this segment.

Parameters: object The other segment to compare with us

Returns: true if we are the same segment

getDate

public Date getDate()
Returns a java.util.Date that represents the reference point for this segment.

Returns: The date.

getMillisecond

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

Returns: The millisecond.

getSegmentCount

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

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

getSegmentEnd

public long getSegmentEnd()
Gets the end of this segment in ms.

Returns: The segment end.

getSegmentNumber

public long getSegmentNumber()
Returns the segment number of this segment. Segments start at 0.

Returns: The segment number.

getSegmentStart

public long getSegmentStart()
Gets the start of this segment in ms.

Returns: The segment start.

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.

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.

inExcludeSegments

public boolean inExcludeSegments()
Returns true if we are an excluded segment.

Returns: true or false.

inIncludeSegments

public boolean inIncludeSegments()
Returns true if we are an included segment and we are not an exception.

Returns: true or false.

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.

moveIndexToEnd

public void moveIndexToEnd()
Moves the index of this segment to the end of the segment.

moveIndexToStart

public void moveIndexToStart()
Moves the index of this segment to the beginning if the segment.