Class ListActivityRepository<A extends Activity>

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

    public class ListActivityRepository<A extends Activity>
    extends MutableActivityRepositoryBase<A>
    A repository implementation that utilizes several lists for storing activities. The repository can return three different iterator types when the application is asking for the activities within a given time interval.
    Since:
    1.0
    • Constructor Detail

      • ListActivityRepository

        public ListActivityRepository()
        Constructs a new repository that returns a binary iterator when the application queries the repository for the activities within a specific time interval.
        Since:
        1.0
        See Also:
        ListActivityRepository.IteratorType.BINARY_ITERATOR
      • ListActivityRepository

        public ListActivityRepository​(ListActivityRepository.IteratorType iteratorType)
        Constructs a new repository that returns an iterator of the specified type when the application queries the repository for the activities within a specific time interval.
        Since:
        1.0
    • Method Detail

      • getIteratorType

        public final ListActivityRepository.IteratorType getIteratorType()
        Returns the iterator type that is being returned by the repository.
        Returns:
        the iterator type
        Since:
        1.0
      • setIteratorType

        public final void setIteratorType​(ListActivityRepository.IteratorType iteratorType)
        Sets a different iterator type on this repository.
        Parameters:
        iteratorType - the new iterator type
        Since:
        1.0
      • 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
      • 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)
      • getAllActivities

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