X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=runtime%2Forg.argeo.slc.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Fexecution%2Fgenerator%2FRunnableCallFlow.java;fp=runtime%2Forg.argeo.slc.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Fexecution%2Fgenerator%2FRunnableCallFlow.java;h=695606c210f803dafda009d5f97c18b078e72f32;hb=7d6251e4260ed330236ae86b732307439affcf76;hp=0065b18ccbbc369b79ff7e9caeeaa6e2ed151fc0;hpb=1d83ffc74ca059deaa79896f46a1dca1d722e2ee;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/generator/RunnableCallFlow.java b/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/generator/RunnableCallFlow.java index 0065b18cc..695606c21 100644 --- a/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/generator/RunnableCallFlow.java +++ b/runtime/org.argeo.slc.core/src/main/java/org/argeo/slc/core/execution/generator/RunnableCallFlow.java @@ -15,6 +15,8 @@ */ package org.argeo.slc.core.execution.generator; +import java.util.ArrayList; +import java.util.Iterator; import java.util.List; import java.util.Map; @@ -142,8 +144,8 @@ public class RunnableCallFlow implements ExecutionFlow, ApplicationContextAware try { for (int callIndex = 0; callIndex < runnableCalls.size(); ++callIndex) { RunnableCall runnableCall = runnableCalls.get(callIndex); - Object bean = applicationContext.getBean(runnableCall - .getBeanName(), Runnable.class); + Object bean = applicationContext.getBean( + runnableCall.getBeanName(), Runnable.class); if (log.isDebugEnabled()) log.debug("Running flow '" + runnableCall.getBeanName() + "'"); @@ -164,11 +166,30 @@ public class RunnableCallFlow implements ExecutionFlow, ApplicationContextAware } } + public Iterator runnables() { + List runnables = new ArrayList(); + for (int callIndex = 0; callIndex < runnableCalls.size(); ++callIndex) { + RunnableCall runnableCall = runnableCalls.get(callIndex); + Object bean = applicationContext.getBean( + runnableCall.getBeanName(), Runnable.class); + runnables.add((Runnable) bean); + } + return runnables.iterator(); + } + + public Runnable getRunnable() { + if (runnableCalls.size() == 1) + return runnables().next(); + else + throw new SlcException("There are " + runnableCalls.size() + + " runnables in flow " + getName()); + } + @Override public String toString() { return new StringBuffer("RunnableCallFlow ").append(name).toString(); - } - + } + public ExecutionSpec getExecutionSpec() { return executionSpec; }