01: /*
02: * Created on 1 Dec 2006
03: */
04: package uk.org.ponder.util;
05:
06: import java.util.List;
07:
08: public class CollectingRunnableInvoker implements RunnableInvoker {
09: private List wrappers;
10:
11: public void setWrappers(List wrappers) {
12: this .wrappers = wrappers;
13: }
14:
15: public void invokeRunnable(Runnable toinvoke) {
16: invokeWrappers(wrappers, toinvoke);
17: }
18:
19: public static void invokeWrappers(final List wrappers,
20: final Runnable toinvoke) {
21: if (wrappers == null) {
22: toinvoke.run();
23: } else {
24: new Runnable() {
25: int i = 0;
26:
27: public void run() {
28: if (i == wrappers.size())
29: toinvoke.run();
30: else {
31: RunnableInvoker invoker = (RunnableInvoker) wrappers
32: .get(i);
33: ++i;
34: invoker.invokeRunnable(this);
35: }
36: }
37: }.run();
38: }
39: }
40:
41: }
|