jas.util
Class CommandProcessor

java.lang.Object
  |
  +--java.util.Observable
        |
        +--jas.util.CommandProcessor
Direct Known Subclasses:
JASCommandProcessor, NestedCommandProcessor

public class CommandProcessor
extends java.util.Observable

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(JASState state)

 
to determine if the command is active or not.


Inner Class Summary
protected  class CommandProcessor.BooleanTarget
           
protected  class CommandProcessor.SimpleTarget
          A SimpleTarget is an implementation of CommandTarget which implements its
 
Constructor Summary
CommandProcessor()
           
 
Method Summary
protected  CommandTarget acceptCommand(java.lang.String command)
          The CommandTargetManager called acceptCommand to find out if this CommandProcessor can respond to the specified command.
protected  void invoke(java.lang.reflect.Method method, java.lang.Object[] args)
           
protected  void invokeCommand(CommandProcessor.BooleanTarget t, boolean arg)
           
protected  void invokeCommand(CommandProcessor.SimpleTarget t)
           
protected  void invokeCommand(java.lang.reflect.Method method, java.lang.Object[] args)
           
protected  void invokeEnable(java.lang.reflect.Method method, java.lang.Object[] args)
           
protected  void setChanged()
           
protected  void setManager(CommandTargetManager m)
           
protected  java.lang.String translate(java.lang.String 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

CommandProcessor

public CommandProcessor()
Method Detail

translate

protected java.lang.String translate(java.lang.String command)

setChanged

protected void setChanged()
Overrides:
setChanged in class java.util.Observable

setManager

protected void setManager(CommandTargetManager m)

acceptCommand

protected CommandTarget acceptCommand(java.lang.String command)
The CommandTargetManager called acceptCommand to find out if this CommandProcessor can respond to the specified command. If it can it returns a CommandTarget for the command, otherwise it returns null.

invoke

protected void invoke(java.lang.reflect.Method method,
                      java.lang.Object[] args)
               throws java.lang.IllegalAccessException,
                      java.lang.reflect.InvocationTargetException

invokeEnable

protected void invokeEnable(java.lang.reflect.Method method,
                            java.lang.Object[] args)
                     throws java.lang.IllegalAccessException,
                            java.lang.reflect.InvocationTargetException

invokeCommand

protected void invokeCommand(java.lang.reflect.Method method,
                             java.lang.Object[] args)
                      throws java.lang.IllegalAccessException,
                             java.lang.reflect.InvocationTargetException

invokeCommand

protected void invokeCommand(CommandProcessor.SimpleTarget t)

invokeCommand

protected void invokeCommand(CommandProcessor.BooleanTarget t,
                             boolean arg)