FreeHEP API
Version v1.1

org.freehep.util.commanddispatcher
Class CommandProcessor

java.lang.Object
  |
  +--java.util.Observable
        |
        +--org.freehep.util.commanddispatcher.CommandProcessor
Direct Known Subclasses:
Application.ApplicationCommandProcessor, MDITest.MDICommandProcessor, PageManager.PageManagerCommandProcessor, PluginManager.Commands, Test.MyCommandProcessor

public class CommandProcessor
extends 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(CommandState state)
 
to determine if the command is active or not.

Version:
$Id: CommandProcessor.java,v 1.8 2001/03/23 02:25:40 tonyj Exp $
Author:
Tony Johnson (tonyj@slac.stanford.edu)

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

CommandProcessor

public CommandProcessor()
Method Detail

translate

protected String translate(String command)
Translates a command. The default implementation removes trailing ..., and any spaces and then uppercases the first character .


setChanged

public void setChanged()
Overrides:
setChanged in class Observable

setManager

protected void setManager(CommandTargetManager m)

acceptCommand

protected CommandTarget acceptCommand(String command)
The CommandTargetManager calls 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.

Parameters:
command - The command to test for

acceptCommand

protected CommandTarget acceptCommand(Class klass,
                                      String command)
Uses reflection to check if the specified class has an "on" or "enable" method for this comamnd.

Parameters:
klass - The class to check
command - The command to test for

invoke

protected void invoke(Method method,
                      Object[] args)
               throws IllegalAccessException,
                      InvocationTargetException
IllegalAccessException
InvocationTargetException

invokeEnable

protected void invokeEnable(Method method,
                            Object[] args)
                     throws IllegalAccessException,
                            InvocationTargetException
IllegalAccessException
InvocationTargetException

invokeCommand

protected void invokeCommand(Method method,
                             Object[] args)
                      throws IllegalAccessException,
                             InvocationTargetException
IllegalAccessException
InvocationTargetException

invokeCommand

protected void invokeCommand(CommandProcessor.SimpleTarget t)
Override this method to provide application specific handling for errors generated during command dispatch


invokeCommand

protected void invokeCommand(CommandProcessor.BooleanTarget t,
                             boolean arg)
Override this method to provide application specific handling for errors generated during command dispatch


FreeHEP API
Version v1.1

Copyright © 2000-2002 FreeHEP, All Rights Reserved.