postprocess()
method if it called the execute()
method.
/// This contract must be fulfilled regardless of any possible exceptions thrown by the Execute
method of this {@link ICommand}, or any subsequent {@link ICommand} whose Execute
method is called.
/// The owning {@link IChain} must call the PostProcess
method of each {@link IFilter} in a {@link IChain} in reverse order of the invocation of their Execute
methods.
The most common use case for a {@link IFilter}, as opposed to a {@link ICommand}, is where potentially expensive resources must be acquired and held until the processing of a particular request has been completed, even if execution is delegated to a subsequent {@link Command} via the Execute
returning false
.
/// A {@link IFilter} can reliably release such resources in the PostProcess
method, which is guaranteed to be called by the owning {@link IChain}.
@version $Revision$ $Date$
///execute()
method of this {@link Filter} instance.
/// Exception
(if any) that was thrown by the last {@link Command} that was executed; otherwise null
/// exception
was "handled" by this method (and therefore need not be rethrown), return true
; otherwise return false