|
FreeHEP API Version v1.1 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.util.Observable | +--org.freehep.util.commanddispatcher.CommandProcessor
A CommandProcessor represents a collection of CommandTargets. The CommandProcessor is Observable, and is normally Observed by the CommandTargetManager. When the CommandProcessor calls its notifyObservers method, the CommandTargetManager prompts each CommandSource currently attached to CommandTargets within the CommandProcessor to update their enabled/disabled status. Typically applications provide their own CommandProcessor(s) which extend this base class and which can handle a set of commands. By default CommandProcessor's acceptCommand method uses reflection to search for methods in the subClass which correspond to specific commands, although subclasses could also override the acceptCommand method to implement a different scheme. The default scheme looks for methods of type:
public void onXXX()to handle the command XXX. Also
public void enableXXX(CommandState state)to determine if the command is active or not.
Nested Class Summary | |
protected class |
CommandProcessor.BooleanTarget
Boolean target is an implementation of CommandTarget for command targets which can be swithced on/off. |
protected class |
CommandProcessor.SimpleTarget
A SimpleTarget is an implementation of CommandTarget |
Constructor Summary | |
CommandProcessor()
|
Method Summary | |
protected CommandTarget |
acceptCommand(Class klass,
String command)
Uses reflection to check if the specified class has an "on" or "enable" method for this comamnd. |
protected CommandTarget |
acceptCommand(String command)
The CommandTargetManager calls acceptCommand to find out if this CommandProcessor can respond to the specified command. |
protected void |
invoke(Method method,
Object[] args)
|
protected void |
invokeCommand(CommandProcessor.BooleanTarget t,
boolean arg)
Override this method to provide application specific handling for errors generated during command dispatch |
protected void |
invokeCommand(CommandProcessor.SimpleTarget t)
Override this method to provide application specific handling for errors generated during command dispatch |
protected void |
invokeCommand(Method method,
Object[] args)
|
protected void |
invokeEnable(Method method,
Object[] args)
|
void |
setChanged()
|
protected void |
setManager(CommandTargetManager m)
|
protected String |
translate(String command)
Translates a command. |
Methods inherited from class java.util.Observable |
addObserver, clearChanged, countObservers, deleteObserver, deleteObservers, hasChanged, notifyObservers, notifyObservers |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public CommandProcessor()
Method Detail |
protected String translate(String command)
public void setChanged()
setChanged
in class Observable
protected void setManager(CommandTargetManager m)
protected CommandTarget acceptCommand(String command)
command
- The command to test forprotected CommandTarget acceptCommand(Class klass, String command)
klass
- The class to checkcommand
- The command to test forprotected void invoke(Method method, Object[] args) throws IllegalAccessException, InvocationTargetException
IllegalAccessException
InvocationTargetException
protected void invokeEnable(Method method, Object[] args) throws IllegalAccessException, InvocationTargetException
IllegalAccessException
InvocationTargetException
protected void invokeCommand(Method method, Object[] args) throws IllegalAccessException, InvocationTargetException
IllegalAccessException
InvocationTargetException
protected void invokeCommand(CommandProcessor.SimpleTarget t)
protected void invokeCommand(CommandProcessor.BooleanTarget t, boolean arg)
|
FreeHEP API Version v1.1 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |