Class SegmentedTimeline.Segment

java.lang.Object
org.jfree.chart.axis.SegmentedTimeline.Segment
All Implemented Interfaces:
Serializable, Cloneable, Comparable
Direct Known Subclasses:
SegmentedTimeline.SegmentRange
Enclosing class:
SegmentedTimeline

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.

See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected long
    A reference point within the segment.
    protected long
    The segment end.
    protected long
    The segment number.
    protected long
    The segment start.
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    protected
    Protected constructor only used by sub-classes.
    protected
    Segment(long millisecond)
    Creates a segment for a given point in time.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Returns true if this segment is wholly after another segment.
    boolean
    Returns true if this segment is wholly before another segment.
    long
    Calculates the segment number for a given millisecond.
    int
    compareTo(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
    Returns true if a segment is contained in this segment.
    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(Object object)
    Tests an object (usually another Segment) for equality with this segment.
    Returns a Date that represents the reference point for this segment.
    long
    Returns the millisecond used to reference this segment (always between the segmentStart and segmentEnd).
    long
    Returns always one (the number of segments contained in this segment).
    long
    Gets the end of this segment in ms.
    long
    Returns the segment number of this segment.
    private long
    Calculate the segment number relative to the segment group.
    long
    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
    Returns true if we are an exception segment.
    boolean
    Returns true if we are an excluded segment.
    boolean
    Returns true if we are an included segment and we are not an exception.
    intersect(long from, long to)
    Returns a segment that is the intersection of this segment and the interval.
    void
    Moves the index of this segment to the end of the segment.
    void
    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 Details

    • 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 Details

    • 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 Details

    • 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 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(Object object)
      Tests an object (usually another Segment) for equality with this segment.
      Overrides:
      equals in class Object
      Parameters:
      object - The other segment to compare with us
      Returns:
      true if we are the same 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(Object object)
      Will compare this Segment with another Segment (from Comparable interface).
      Specified by:
      compareTo in interface 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.
    • getSegmentNumberRelativeToGroup

      private long getSegmentNumberRelativeToGroup()
      Calculate the segment number relative to the segment group. This will be a number between 0 and segmentsGroup-1. This value is calculated from the segmentNumber. Special care is taken for negative segmentNumbers.
      Returns:
      The segment number.
    • 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.