org.apache.pivot.util.concurrent
Class TaskSequence

java.lang.Object
  extended by org.apache.pivot.util.concurrent.Task<Void>
      extended by org.apache.pivot.util.concurrent.TaskSequence
All Implemented Interfaces:
Iterable<Task<?>>, Sequence<Task<?>>

public class TaskSequence
extends Task<Void>
implements Sequence<Task<?>>, Iterable<Task<?>>

Task that runs a sequence of tasks in series and notifies listeners when all tasks are complete.


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.pivot.collections.Sequence
Sequence.Tree<T>
 
Field Summary
 
Fields inherited from class org.apache.pivot.util.concurrent.Task
abort, DEFAULT_EXECUTOR_SERVICE, timeout
 
Constructor Summary
TaskSequence()
           
TaskSequence(ExecutorService executorService)
           
 
Method Summary
 int add(Task<?> task)
          Adds an item to the sequence.
 Void execute()
          Synchronously executes the task.
 Task<?> get(int index)
          Retrieves the item at the given index.
 int getLength()
          Returns the length of the sequence.
 int indexOf(Task<?> task)
          Returns the index of an item in the sequence.
 void insert(Task<?> task, int index)
          Inserts an item into the sequence at a specific index.
 Iterator<Task<?>> iterator()
           
 Sequence<Task<?>> remove(int index, int count)
          Removes one or more items from the sequence.
 int remove(Task<?> task)
          Removes the first occurrence of the given item from the sequence.
 Task<?> update(int index, Task<?> task)
          Updates the item at the given index.
 
Methods inherited from class org.apache.pivot.util.concurrent.Task
abort, execute, execute, getExecutorService, getFault, getResult, getTimeout, isPending, setTimeout
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TaskSequence

public TaskSequence()

TaskSequence

public TaskSequence(ExecutorService executorService)
Method Detail

execute

public Void execute()
             throws TaskExecutionException
Description copied from class: Task
Synchronously executes the task.

Specified by:
execute in class Task<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.

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 Iterator<Task<?>> iterator()
Specified by:
iterator in interface Iterable<Task<?>>