public class When<T> extends EventJobBase<T>
<oddjob id="this">
<job>
<sequential>
<jobs>
<properties name="Properties">
<values>
<file file="${some.dir}" key="data.dir"/>
</values>
</properties>
<bean class="org.oddjob.events.example.FileFactStore" id="factStore" rootDir="${data.dir}"/>
<events:when id="whenBookList" name="When BookList Available" xmlns:events="oddjob:events">
<jobs>
<bean class="org.oddjob.events.example.FactSubscriber" factStore="${factStore}" name="Subscribe to BookList" query="BookList:GREENGROCERS"/>
<foreach id="forEachBook" name="For Each Book">
<values>
<value value="${whenBookList.trigger.of.books}"/>
</values>
<configuration>
<inline>
<foreach id="bookName">
<job>
<events:when id="whenBook" name="When ${bookName.current}">
<jobs>
<bean class="org.oddjob.events.example.FactSubscriber" factStore="${factStore}" name="Subscribe to Book ${bookName.current}" query="Book:${bookName.current}"/>
<events:when id="priceMatch" name="When Prices for ${bookName.current}">
<jobs>
<events:for name="For Each Trade">
<configuration>
<inline>
<events id="trade">
<job>
<bean class="org.oddjob.events.example.FactSubscriber" factStore="${factStore}" name="Subscribe to Price for ${trade.current.product}" query="Price:${trade.current.product}"/>
</job>
</events>
</inline>
</configuration>
<values>
<value value="${whenBook.trigger.of.trades}"/>
</values>
</events:for>
<sequential name="Run Calculation">
<jobs>
<bean class="org.oddjob.events.example.ValueCalculator" id="calculate">
<trades>
<value value="${whenBook.trigger.of.trades}"/>
</trades>
<prices>
<value value="${priceMatch.trigger.ofs}"/>
</prices>
</bean>
<echo>Value of ${bookName.current} is ${calculate.value}</echo>
</jobs>
</sequential>
</jobs>
</events:when>
</jobs>
</events:when>
</job>
</foreach>
</inline>
</configuration>
</foreach>
</jobs>
</events:when>
</jobs>
</sequential>
</job>
</oddjob>
childHelper, destroy, stop, structuralState| Constructor and Description |
|---|
When() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
onImmediateEvent(T event)
Do something with an event received immediately before the subscribe method has returned.
|
protected void |
onLaterEvent(T event,
java.lang.Object job,
java.util.concurrent.Executor executor)
Called when an event is received after subscription.
|
protected void |
onSubscriptionStarted(java.lang.Object job,
java.util.concurrent.Executor executor)
Called once the subscription has started.
|
protected StateListener |
stateOnChildComplete() |
accept, execute, getEventSource, getInitialStateOp, getTo, getTrigger, isBeDestination, onStop, postStop, setBeDestination, setEventSource, setExecutorService, setJobs, setTo, setTrigger, startChildStateReflector, switchToChildStateReflector, unsubscribeaddStructuralListener, fireDestroyedState, force, getStateChanger, hardReset, iconHelper, isStop, onDestroy, onHardReset, onReset, onSoftReset, removeStructuralListener, run, softReset, stateHandler, stop, stopChildStateReflector, waitForChildrenOnStopconfigure, getName, logger, logger, loggerName, save, setName, toStringaddIconListener, addPropertyChangeListener, addStateListener, configure, destroy, firePropertyChange, getArooaSession, iconForId, initialise, lastStateEvent, onConfigured, onInitialised, removeIconListener, removePropertyChangeListener, removeStateListener, save, setArooaContext, setArooaSessionclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitaddStateListener, lastStateEvent, removeStateListenerprotected void onImmediateEvent(T event)
EventJobBaseonImmediateEvent in class EventJobBase<T>event - The event.protected void onSubscriptionStarted(java.lang.Object job,
java.util.concurrent.Executor executor)
EventJobBaseonSubscriptionStarted in class EventJobBase<T>job - The job to execute if any.executor - The executor to use to execute the job.protected void onLaterEvent(T event, java.lang.Object job, java.util.concurrent.Executor executor)
EventJobBaseEventJobBase.onSubscriptionStarted(Object, Executor) method,
implementors are responsible for their own synchronisation if required.onLaterEvent in class EventJobBase<T>event - The event.protected StateListener stateOnChildComplete()
stateOnChildComplete in class EventJobBase<T>