public class Trigger<T> extends EventJobBase<T>
Trigger. The intention being that it has the ability
to fire off any event, not just a state change.
The job has two children; the first being the source of the event that causes the trigger, and the second is the job that is run as the result of the trigger firing.
<oddjob>
<job>
<sequential name="Trigger on Two Things">
<jobs>
<bean class="org.oddjob.events.Trigger" id="trigger">
<jobs>
<bean class="org.oddjob.state.expr.StateExpressionType">
thing1 is success and thing2 is success and not (thing3 is success or thing4 is success)
</bean>
<echo id="notify" name="Triggered Job">You ran two things!</echo>
</jobs>
</bean>
<folder name="A Folder of Jobs">
<jobs>
<echo id="thing1" name="Run me!">Thank you</echo>
<echo id="thing2" name="Run me!">Thank you</echo>
<echo id="thing3" name="Don't Run me!">Uh oh!</echo>
<echo id="thing4" name="Don't Run me!">Uh oh!</echo>
</jobs>
</folder>
</jobs>
</sequential>
</job>
</oddjob>
<oddjob>
<job>
<parallel>
<jobs>
<bus:queue id="queue" xmlns:bus="oddjob:beanbus"/>
<bus:bus xmlns:bus="oddjob:beanbus">
<of>
<bus:driver>
<values>
<value value="${queue}"/>
</values>
</bus:driver>
<bus:filter id="filter">
<predicate>
<bean class="org.oddjob.events.TriggerTest$OnlyApple"/>
</predicate>
</bus:filter>
<events:trigger beDestination="true" id="trigger" xmlns:events="oddjob:events">
<jobs>
<sequential>
<jobs>
<echo id="result">
Result: ${trigger.trigger}
</echo>
<stop job="${queue}" name="Stop Queue"/>
</jobs>
</sequential>
</jobs>
</events:trigger>
</of>
</bus:bus>
<folder>
<jobs>
<set id="put1" name="Put Banana">
<values>
<value key="queue.put" value="banana"/>
</values>
</set>
<set id="put2" name="Put Apple">
<values>
<value key="queue.put" value="Apple"/>
</values>
</set>
</jobs>
</folder>
</jobs>
</parallel>
</job>
</oddjob>
<oddjob>
<job>
<events:trigger id="trigger" xmlns:events="oddjob:events">
<jobs>
<bus:driver xmlns:bus="oddjob:beanbus">
<values>
<list>
<values>
<value value="foo"/>
</values>
</list>
</values>
</bus:driver>
<echo id="echo">
${trigger.trigger}
</echo>
</jobs>
</events:trigger>
</job>
</oddjob>
childHelper, destroy, stop, structuralState| Constructor and Description |
|---|
Trigger() |
| Modifier and Type | Method and Description |
|---|---|
protected void |
onImmediateEvent(T value)
Do something with an event received immediately before the subscribe method has returned.
|
protected void |
onLaterEvent(T value,
java.lang.Object job,
java.util.concurrent.Executor executor)
Called when an event is received after subscription.
|
protected void |
onReset()
Allow sub classes to do something on reset.
|
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, 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 onReset()
StructuralJobonReset in class StructuralJob<java.lang.Object>protected void onImmediateEvent(T value)
EventJobBaseonImmediateEvent in class EventJobBase<T>value - 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 value, 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>value - The event.protected StateListener stateOnChildComplete()
stateOnChildComplete in class EventJobBase<T>