Class IntervalTreeActivityRepository<A extends Activity>

Type Parameters:
A - the activity type
All Implemented Interfaces:
ActivityRepository<A>, MutableActivityRepository<A>, EventTarget

public class IntervalTreeActivityRepository<A extends Activity>
extends MutableActivityRepositoryBase<A>
A repository implementation that utilizes binary interval trees to store its activities. A binary tree provides the best performance when searching for activities within a given time interval when the total number of activities is very large. The repository manages one binary tree per layer.
Since:
1.0
See Also:
Row.setRepository(ActivityRepository)
  • Constructor Details

    • IntervalTreeActivityRepository

      public IntervalTreeActivityRepository()
  • Method Details

    • addActivity

      public final void addActivity​(ActivityRef<A> activityRef)
      Description copied from interface: MutableActivityRepository
      Adds the given activity to the repository.
      Parameters:
      activityRef - the activity
    • removeActivity

      public final void removeActivity​(ActivityRef<A> activityRef)
      Description copied from interface: MutableActivityRepository
      Removes the given activity from the repository.
      Parameters:
      activityRef - the activity
    • clearActivities

      public final void clearActivities()
      Description copied from interface: MutableActivityRepository
      Removes all activities from all layers from the repository.
    • clearActivities

      public final void clearActivities​(Layer layer)
      Description copied from interface: MutableActivityRepository
      Removes the activities on the given layer from the repository.
      Parameters:
      layer - the layer to clear
    • getEarliestTimeUsed

      public final Instant getEarliestTimeUsed()
      Description copied from interface: ActivityRepository
      Returns the earliest time used by the activities stored in this repository / on this row. This method gets used for navigation (e.g. "scroll to earliest time used in the Gantt chart", "zoom out to show all activities").
      Specified by:
      getEarliestTimeUsed in interface ActivityRepository<A extends Activity>
      Overrides:
      getEarliestTimeUsed in class ActivityRepositoryBase<A extends Activity>
      Returns:
      the earliest time used by the activities in this repository / row (null if no activities found)
    • getLatestTimeUsed

      public final Instant getLatestTimeUsed()
      Description copied from interface: ActivityRepository
      Returns the latest time used by the activities stored in this repository / on this row. This method gets used for navigation (e.g. "scroll to latest time used in the Gantt chart", "zoom out to show all activities").
      Specified by:
      getLatestTimeUsed in interface ActivityRepository<A extends Activity>
      Overrides:
      getLatestTimeUsed in class ActivityRepositoryBase<A extends Activity>
      Returns:
      the latest time used by the activities in this repository / row (null if no activities found)
    • getActivities

      public final Iterator<A> getActivities​(Layer layer, Instant startTime, Instant endTime, TemporalUnit temporalUnit, ZoneId zoneId)
      Description copied from interface: ActivityRepository
      Returns an iterator for iterating over all activities found for the given layer and time interval. This method has to return very fast as it gets called many times during rendering of the chart. A slow implementation will have a direct impact on scrolling / rendering performance.
      Parameters:
      layer - the layer for which to return the activities
      startTime - the start time of the time interval for which to return the activities
      endTime - the end time of the time interval for which to return the activities
      temporalUnit - the temporal unit currently displayed in the dateline
      zoneId - the timezone currently displayed in the dateline
      Returns:
      the activities on the given layer and in the given time interval
    • getAllActivities

      public final List<A> getAllActivities()
      Returns all activities for all layers.
      Returns:
      all activities
      Since:
      1.0