|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.mina.statemachine.transition.AbstractTransition
org.apache.mina.statemachine.transition.MethodTransition
public class MethodTransition
Transition
which invokes a Method
. The Method
will
only be invoked if its argument types actually matches a subset of the
Event
's argument types. The argument types are matched in order so
you must make sure the order of the method's arguments corresponds to the
order of the event's arguments.
If the first method argument type matches
Event
the current Event
will be bound to that argument. In
the same manner the second argument (or first if the method isn't interested
in the current Event
) can have the StateContext
type and will
in that case be bound to the current StateContext
.
Normally you wouldn't create instances of this class directly but rather use the
Transition
annotation to define the methods which should be used as
transitions in your state machine and then let StateMachineFactory
create a
StateMachine
for you.
Constructor Summary | |
---|---|
MethodTransition(Object eventId,
Method method,
Object target)
Creates a new instance which will loopback to the same State
for the specified Event id. |
|
MethodTransition(Object eventId,
Object target)
Creates a new instance which will loopback to the same State
for the specified Event id. |
|
MethodTransition(Object eventId,
State nextState,
Method method,
Object target)
Creates a new instance with the specified State as next state
and for the specified Event id. |
|
MethodTransition(Object eventId,
State nextState,
Object target)
Creates a new instance with the specified State as next state
and for the specified Event id. |
|
MethodTransition(Object eventId,
State nextState,
String methodName,
Object target)
Creates a new instance with the specified State as next state
and for the specified Event id. |
|
MethodTransition(Object eventId,
String methodName,
Object target)
Creates a new instance which will loopback to the same State
for the specified Event id. |
Method Summary | |
---|---|
boolean |
doExecute(Event event)
Executes this Transition . |
boolean |
equals(Object o)
|
Method |
getMethod()
Returns the target Method . |
Object |
getTarget()
Returns the target object. |
int |
hashCode()
|
String |
toString()
|
Methods inherited from class org.apache.mina.statemachine.transition.AbstractTransition |
---|
execute, getNextState |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public MethodTransition(Object eventId, State nextState, Method method, Object target)
State
as next state
and for the specified Event
id.
eventId
- the Event
id.nextState
- the next State
.method
- the target method.target
- the target object.public MethodTransition(Object eventId, Method method, Object target)
State
for the specified Event
id.
eventId
- the Event
id.method
- the target method.target
- the target object.public MethodTransition(Object eventId, State nextState, Object target)
State
as next state
and for the specified Event
id. The target Method
will
be the method in the specified target object with the same name as the
specified Event
id.
eventId
- the Event
id.nextState
- the next State
.target
- the target object.
NoSuchMethodException
- if no method could be found with a name
equal to the Event
id.
AmbiguousMethodException
- if more than one method was found with
a name equal to the Event
id.public MethodTransition(Object eventId, Object target)
State
for the specified Event
id. The target Method
will
be the method in the specified target object with the same name as the
specified Event
id.
eventId
- the Event
id.target
- the target object.
NoSuchMethodException
- if no method could be found with a name
equal to the Event
id.
AmbiguousMethodException
- if more than one method was found with
a name equal to the Event
id.public MethodTransition(Object eventId, String methodName, Object target)
State
for the specified Event
id.
eventId
- the Event
id.methodName
- the name of the target Method
.target
- the target object.
NoSuchMethodException
- if the method could not be found.
AmbiguousMethodException
- if there are more than one method with
the specified name.public MethodTransition(Object eventId, State nextState, String methodName, Object target)
State
as next state
and for the specified Event
id.
eventId
- the Event
id.nextState
- the next State
.methodName
- the name of the target Method
.target
- the target object.
NoSuchMethodException
- if the method could not be found.
AmbiguousMethodException
- if there are more than one method with
the specified name.Method Detail |
---|
public Method getMethod()
Method
.
public Object getTarget()
public boolean doExecute(Event event)
AbstractTransition
Transition
. This method doesn't have to check
if the Event
's id matches because AbstractTransition.execute(Event)
has
already made sure that that is the case.
doExecute
in class AbstractTransition
event
- the current Event
.
true
if the Transition
has been executed
successfully and the StateMachine
should move to the
next State
. false
otherwise.public boolean equals(Object o)
equals
in class AbstractTransition
public int hashCode()
hashCode
in class AbstractTransition
public String toString()
toString
in class AbstractTransition
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |