org.apache.commons.digester
Interface StackAction
public interface StackAction
An interface that can be implemented in order to get notifications of
objects being pushed onto a digester stack or popped from one.
Because objects are pushed onto the main object stack when a rule
has created a new object, this gives the ability to intercept such
operations and perform modifications on created objects.
One use expected for this interface is to store information about the xml
line that a particular object was created from. An implementation of this
interface can detect whenever an object is pushed onto the digester object
stack, call Digester.getDocumentLocator() to get the location within the
current xml file, and store this either on the object on the stack (if it
supports some user-specific interface for this purpose), or build a map of
(object->locationinfo) separately.
It is recommended that objects implementing this interface provide
a method to set a "next" action, and invoke it from the callback
methods. This allows multiple actions to be "chained" together.
See also Digester.setStackAction.
Object | onPop(Digester d, String stackName, Object o) - Invoked just after an object has been popped from a digester stack.
|
Object | onPush(Digester d, String stackName, Object o) - Invoked just before an object is to be pushed onto a digester stack.
|
onPop
public Object onPop(Digester d,
String stackName,
Object o)
Invoked just after an object has been popped from a digester stack.
d
- is the digester instance.stackName
- is the name of the stack from which the object
has been popped. Null is passed to indicate the default stack.o
- is the object that has just been popped.
- the object to be returned to the called. Normally, parameter
o is returned but this method could return an alternate object.
onPush
public Object onPush(Digester d,
String stackName,
Object o)
Invoked just before an object is to be pushed onto a digester stack.
d
- is the digester instance.stackName
- is the name of the stack onto which the object
has been pushed. Null is passed to indicate the default stack.o
- is the object that has just been pushed. Calling peek on the
specified stack will return the same object.
- the object to be pushed. Normally, parameter o is returned
but this method could return an alternate object to be pushed
instead (eg a proxy for the provided object).
Copyright 2001-2005 The Apache Software Foundation.