ix.ip2
Class ForwardingHandler

java.lang.Object
  extended by ix.ip2.ItemHandler
      extended by ix.ip2.ForwardingHandler
All Implemented Interfaces:
ContactListener, java.util.EventListener
Direct Known Subclasses:
InvokeHandler

public class ForwardingHandler
extends ItemHandler
implements ContactListener

Generates HandlerActions to forward Issues or Activities to other agents.


Nested Class Summary
(package private)  class ForwardingHandler.ForwardingAction
          Forwards an issue or activity to another agent.
 
Field Summary
protected  java.lang.String action
           
protected  IXAgent agent
           
protected  boolean capabilityDefault
           
protected  ContactManager contactManager
           
protected  AgentRelationship rel
           
protected  boolean reportBack
           
 
Fields inherited from class ix.ip2.ItemHandler
actionDescription
 
Constructor Summary
ForwardingHandler(IXAgent agent, java.lang.String action, AgentRelationship rel, boolean reportBack)
           
 
Method Summary
 void addHandlerActions(AgendaItem item)
          Called to add any HandlerActions that this handler regards as appropriate for the specified AgendaItem.
 void contactChange(ContactEvent e)
           
 java.util.List getToAgents(AgendaItem item)
           
protected  java.util.List getToNames(AgendaItem item)
           
 void handle(AgendaItem item)
          Called to perform the action implemented by this handler, if the selected HandlerAction so desires.
 ForwardingHandler.ForwardingAction makeForwardingAction(java.lang.String toName, AgendaItem about)
           
 void reviseHandlerActions(AgendaItem item, java.lang.Object reason)
          Called after something has happened that may require new HandlerActions to be added to an item.
 java.lang.String toString()
          Returns a textual representation of this handler.
 
Methods inherited from class ix.ip2.ItemHandler
appliesTo, getActionDescription, getSyntaxList, isAutomatic, makeHandler
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

agent

protected IXAgent agent

action

protected java.lang.String action

rel

protected AgentRelationship rel

reportBack

protected boolean reportBack

capabilityDefault

protected boolean capabilityDefault

contactManager

protected ContactManager contactManager
Constructor Detail

ForwardingHandler

public ForwardingHandler(IXAgent agent,
                         java.lang.String action,
                         AgentRelationship rel,
                         boolean reportBack)
Method Detail

addHandlerActions

public void addHandlerActions(AgendaItem item)
Description copied from class: ItemHandler
Called to add any HandlerActions that this handler regards as appropriate for the specified AgendaItem.

This method is called only if both this handler's ItemHandler.appliesTo(AgendaItem) and the specified item's AgendaItem.wantsActionsFrom(ItemHandler) methods return true.

The method provided by the ItemHandler class just adds an action that calls this handler's ItemHandler.handle(AgendaItem) method. This allows suitably simple handlers to avoid working directly with HandlerActions.

Note that actions are added by calling an item's AgendaItem.addAction(HandlerAction) method.

Overrides:
addHandlerActions in class ItemHandler

makeForwardingAction

public ForwardingHandler.ForwardingAction makeForwardingAction(java.lang.String toName,
                                                               AgendaItem about)

getToNames

protected java.util.List getToNames(AgendaItem item)

getToAgents

public java.util.List getToAgents(AgendaItem item)

handle

public void handle(AgendaItem item)
Description copied from class: ItemHandler
Called to perform the action implemented by this handler, if the selected HandlerAction so desires.

Overrides:
handle in class ItemHandler
See Also:
ItemHandler.addHandlerActions(AgendaItem)

contactChange

public void contactChange(ContactEvent e)
Specified by:
contactChange in interface ContactListener

reviseHandlerActions

public void reviseHandlerActions(AgendaItem item,
                                 java.lang.Object reason)
Description copied from class: ItemHandler
Called after something has happened that may require new HandlerActions to be added to an item. Typically, this method is called as a consequnce of an ItemHandler -- usually this ItemHandler -- calling the controller's reconsiderHandler method. In other words, the usual case is when an ItemHandler causes its own reviseHandlerActions method to be called; and consequencetly the handler may be able to agree with itself (so to speak) about what various "reason" objects mean.

The reviseHandlerActions method is very similar to the ItemHandler.addHandlerActions(AgendaItem) method in terms of its function and the applicability conditions on when it is called. The main difference is that it is called to look at AgendaItems that are not having actions added for the first time and that may already have an appropriate action, so that no new one needs to be added.

Note that the usual way for an ItemHandler to get HandlerActions removed is for it to call the controller's checkActionValidity method. That results in calls to HandlerAction.isStillValid() methods.

Overrides:
reviseHandlerActions in class ItemHandler
See Also:
PanelController.reconsiderHandler(ItemHandler handler, Object reason), PanelController.checkActionValidity(ItemHandler handler, Object reason)

toString

public java.lang.String toString()
Description copied from class: ItemHandler
Returns a textual representation of this handler.

Overrides:
toString in class ItemHandler