Class TaskSequence

  • All Implemented Interfaces:
    java.lang.Iterable<Task<?>>, Sequence<Task<?>>

    public class TaskSequence
    extends Task<java.lang.Void>
    implements Sequence<Task<?>>, java.lang.Iterable<Task<?>>
    Task that runs a sequence of tasks in series and notifies listeners when all tasks are complete.
    • Constructor Detail

      • TaskSequence

        public TaskSequence()
      • TaskSequence

        public TaskSequence​(java.util.concurrent.ExecutorService executorService)
    • Method Detail

      • execute

        public java.lang.Void execute()
                               throws TaskExecutionException
        Description copied from class: Task
        Synchronously executes the task.
        Specified by:
        execute in class Task<java.lang.Void>
        Returns:
        The result of the task's execution.
        Throws:
        TaskExecutionException - If an error occurs while executing the task.
      • add

        public int add​(Task<?> task)
        Description copied from interface: Sequence
        Adds an item to the sequence.
        Specified by:
        add in interface Sequence<Task<?>>
        Parameters:
        task - The item to be added to the sequence.
        Returns:
        The index at which the item was added, or -1 if the item was not added to the sequence.
      • insert

        public void insert​(Task<?> task,
                           int index)
        Description copied from interface: Sequence
        Inserts an item into the sequence at a specific index.
        Specified by:
        insert in interface Sequence<Task<?>>
        Parameters:
        task - The item to be added to the sequence.
        index - The index at which the item should be inserted. Must be a value between 0 and getLength().
      • update

        public Task<?> update​(int index,
                              Task<?> task)
        Description copied from interface: Sequence
        Updates the item at the given index.
        Specified by:
        update in interface Sequence<Task<?>>
        Parameters:
        index - The index of the item to update.
        task - The item that will replace any existing value at the given index.
        Returns:
        The item that was previously stored at the given index.
      • remove

        public int remove​(Task<?> task)
        Description copied from interface: Sequence
        Removes the first occurrence of the given item from the sequence.
        Specified by:
        remove in interface Sequence<Task<?>>
        Parameters:
        task - The item to remove.
        Returns:
        The index of the item that was removed, or -1 if the item could not be found.
        See Also:
        Sequence.remove(int, int)
      • remove

        public Sequence<Task<?>> remove​(int index,
                                        int count)
        Description copied from interface: Sequence
        Removes one or more items from the sequence.
        Specified by:
        remove in interface Sequence<Task<?>>
        Parameters:
        index - The starting index to remove.
        count - The number of items to remove, beginning with index.
        Returns:
        A sequence containing the items that were removed.
      • get

        public Task<?> get​(int index)
        Description copied from interface: Sequence
        Retrieves the item at the given index.
        Specified by:
        get in interface Sequence<Task<?>>
        Parameters:
        index - The index of the item to retrieve.
        Returns:
        The item at this index in the sequence.
      • indexOf

        public int indexOf​(Task<?> task)
        Description copied from interface: Sequence
        Returns the index of an item in the sequence.
        Specified by:
        indexOf in interface Sequence<Task<?>>
        Parameters:
        task - The item to locate.
        Returns:
        The index of first occurrence of the item if it exists in the sequence; -1, otherwise.
      • getLength

        public int getLength()
        Description copied from interface: Sequence
        Returns the length of the sequence.
        Specified by:
        getLength in interface Sequence<Task<?>>
        Returns:
        The number of items in the sequence.
      • iterator

        public java.util.Iterator<Task<?>> iterator()
        Specified by:
        iterator in interface java.lang.Iterable<Task<?>>