Class SegmentedTimeline.Segment

    • Field Summary

      Fields 
      Modifier and Type Field Description
      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 
      Modifier Constructor Description
      protected Segment()
      Protected constructor only used by sub-classes.
      protected Segment​(long millisecond)
      Creates a segment for a given point in time.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      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​(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​(Object object)
      Tests an object (usually another Segment) for equality with this segment.
      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.
    • 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

      • 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

      • 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

        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​(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.
      • 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.