diff options
author | David A. Madore <david@procyon.(none)> | 2010-04-13 11:58:51 +0200 |
---|---|---|
committer | David A. Madore <david@procyon.(none)> | 2010-04-13 11:58:51 +0200 |
commit | 734a0b78ea5508f243caf18a50e36ac8918e11db (patch) | |
tree | 8198107c3f0e353b263ff4d84735ca0b905a88dc /org/madore/damlengine/TodoDeque.java | |
parent | 45fa82f3f6b98f3b6f81e8e753d8e7341dee14b5 (diff) | |
download | damlengine-734a0b78ea5508f243caf18a50e36ac8918e11db.tar.gz damlengine-734a0b78ea5508f243caf18a50e36ac8918e11db.tar.bz2 damlengine-734a0b78ea5508f243caf18a50e36ac8918e11db.zip |
Create a todo deque class, and use it.
Diffstat (limited to 'org/madore/damlengine/TodoDeque.java')
-rw-r--r-- | org/madore/damlengine/TodoDeque.java | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/org/madore/damlengine/TodoDeque.java b/org/madore/damlengine/TodoDeque.java new file mode 100644 index 0000000..e030e29 --- /dev/null +++ b/org/madore/damlengine/TodoDeque.java @@ -0,0 +1,53 @@ +package org.madore.damlengine; + +import java.util.Collection; +import java.util.LinkedList; + +public final class TodoDeque { + + // FIXME: having everything static is ugly as hell... maybe this + // should be instantiatable? + + private TodoDeque() { } // Forbid instantiation + + private static LinkedList<TodoItem> todoDeque = new LinkedList<TodoItem>(); + + { + todoDeque = new LinkedList<TodoItem>(); + } + + public static void registerAtEnd(TodoItem it) { + todoDeque.addLast(it); + } + + public static void registerAtEnd(Collection<TodoItem> them) { + todoDeque.addAll(them); + } + + public static void registerAtStart(TodoItem it) { + todoDeque.addFirst(it); + } + + public static void registerAtStart(Collection<TodoItem> them) { + todoDeque.addAll(0, them); + } + + public static TodoItem removeNext() { + return todoDeque.poll(); + } + + public static boolean dispatchOne() { + TodoItem it = removeNext(); + if ( it != null ) { + it.dispatch(); + return true; + } else + return false; + } + + public static void dispatchLoop() { + while ( dispatchOne() ) + ; + } + +} |