IPlanConditionHandler

appliesTo

Gives this handler a say in whether it should add
actions to an item. If this method returns false for
an AgendaItem, or the item's wantsActionsFrom method
returns false for this handler, this handler will not
be asked to add actions to that item.

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.

reviseHandlerActions

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.