12.46. The VisitLifecycleCleanable
Visitor components implementing the
VisitLifecycleCleanable
life-cycle interface will be able to perform post SAXVisitAfter.visitAfter
life-cycle operations.
public interface VisitLifecycleCleanable extends Visitor { public abstract void executeVisitLifecycleCleanup(ExecutionContext executionContext); }
The basic call sequence can be described as follows (note the
executeVisitLifecycleCleanup
calls):
smooks.filterSource(...); <message> <target-fragment> < --- VisitorXX.visitBefore Text!! < --- VisitorXX.onChildText <child> < --- VisitorXX.onChildElement </child> </target-fragment> < --- VisitorXX.visitAfter ** VisitorXX.executeVisitLifecycleCleanup ** <target-fragment> < --- VisitorXX.visitBefore Text!! < --- VisitorXX.onChildText <child> < --- VisitorXX.onChildElement </child> </target-fragment> < --- VisitorXX.visitAfter ** VisitorXX.executeVisitLifecycleCleanup ** </message> VisitorXX.executeExecutionLifecycleCleanup smooks.filterSource(...); <message> <target-fragment> < --- VisitorXX.visitBefore Text!! < --- VisitorXX.onChildText <child> < --- VisitorXX.onChildElement </child> </target-fragment> < --- VisitorXX.visitAfter ** VisitorXX.executeVisitLifecycleCleanup ** <target-fragment> < --- VisitorXX.visitBefore Text!! < --- VisitorXX.onChildText <child> < --- VisitorXX.onChildElement </child> </target-fragment> < --- VisitorXX.visitAfter ** VisitorXX.executeVisitLifecycleCleanup ** </message> VisitorXX.executeExecutionLifecycleCleanup
This life-cycle method allows you to ensure that resources scoped around a single fragment execution of a
SAXVisitor
implementation can be cleaned up for the associated ExecutionContext
.