Interface ConfigurationVisitor<S,T,E extends Exception>  
- Type Parameters:
- S- a state object that will be used for one visit
- T- the terminal value, that can be returned at the end of the visit
- E- exception type that may be thrown
- All Known Subinterfaces:
- ConfigurationVisitor.Safe<S,,- T> - ConfigurationVisitor.Stateless<E>
Instances of stateful implementations may be reusable by taking advantage of the state object. During each visitation, a visitor will experience the node tree as a sequence of events, described by the following pseudo-grammar:
 mappingNode: enterMappingNode node* exitMappingNode
 listNode: enterListNode node* exitListNode
 node: enterNode
      (mappingNode
       | listNode
       | enterScalarNode)
 visit: newState?
        beginVisit
        node*
        endVisit
 
 If the starting node has no value, no node events will be received. Otherwise, the first event received will be for the starting node itself, and will continue from there.
The children to visit for list and mapping nodes will only be collected
 after both the enterNode and enter(List|Mapping)Node methods
 have been executed for the node, and changes to the node values may be made
 to control which nodes will be visited.
Any exceptions thrown within the visitor will result in the visitation ending immediately and the exception being rethrown within the visit method.
There are a few specializations of the visitor interface available:
 ConfigurationVisitor.Stateless carries no state and can act as a functional interface
 type, and ConfigurationVisitor.Safe which throws no checked exceptions and therefore can
 be visited without having to handle any exceptions.
- Since:
- 4.0.0
- See Also:
- 
Nested Class SummaryNested ClassesModifier and TypeInterfaceDescriptionstatic interfaceA subinterface for visitors that do not throw any checked exceptions during their execution.static interfaceConfigurationVisitor.Stateless<E extends Exception>Stateless specialization of visitors, where both the state and terminal type are Void.
- 
Method SummaryModifier and TypeMethodDescriptionvoidbeginVisit(ConfigurationNode node, S state) Called at the beginning of the visit with a state object created.Called after every node has been visited, to allow for cleanup and validation.voidenterListNode(ConfigurationNode node, S state) Called afterenterNode(ConfigurationNode, Object)for list nodes.voidenterMappingNode(ConfigurationNode node, S state) Called afterenterNode(ConfigurationNode, Object)for mapping nodes.voidenterNode(ConfigurationNode node, S state) Called once per node, for every node.voidenterScalarNode(ConfigurationNode node, S state) Called afterenterNode(ConfigurationNode, Object)for scalar nodes.voidexitListNode(ConfigurationNode node, S state) Called for a list node after the node and any of its children have been visited.voidexitMappingNode(ConfigurationNode node, S state) Called for a list node after the node and any of its children have been visited.newState()Called to provide a state object if a visit is initiated without one already existing.
- 
Method Details- 
newStateCalled to provide a state object if a visit is initiated without one already existing.- Returns:
- a new state object to be passed through the rest of this visit
- Throws:
- E- when thrown by implementation
- Since:
- 4.0.0
 
- 
beginVisitCalled at the beginning of the visit with a state object created.- Parameters:
- node- the root node
- state- the state
- Throws:
- E- when thrown by implementation
- Since:
- 4.0.0
 
- 
enterNodeCalled once per node, for every node.- Parameters:
- node- the current node
- state- provided state
- Throws:
- E- when thrown by implementation
- Since:
- 4.0.0
 
- 
enterMappingNodeCalled afterenterNode(ConfigurationNode, Object)for mapping nodes.- Parameters:
- node- current node
- state- provided state
- Throws:
- E- when thrown by implementation
- Since:
- 4.0.0
 
- 
enterListNodeCalled afterenterNode(ConfigurationNode, Object)for list nodes.- Parameters:
- node- current node
- state- provided state
- Throws:
- E- when thrown by implementation
- Since:
- 4.0.0
 
- 
enterScalarNodeCalled afterenterNode(ConfigurationNode, Object)for scalar nodes.- Parameters:
- node- current node
- state- provided state
- Throws:
- E- when thrown by implementation
- Since:
- 4.0.0
 
- 
exitMappingNodeCalled for a list node after the node and any of its children have been visited.- Parameters:
- node- the node that has been visited
- state- provided state
- Throws:
- E- when thrown by implementation
- Since:
- 4.0.0
 
- 
exitListNodeCalled for a list node after the node and any of its children have been visited.- Parameters:
- node- the node that has been visited
- state- provided state
- Throws:
- E- when thrown by implementation
- Since:
- 4.0.0
 
- 
endVisitCalled after every node has been visited, to allow for cleanup and validation.- Parameters:
- state- provided state
- Returns:
- a terminal value
- Throws:
- E- when thrown by implementation
- Since:
- 4.0.0
 
 
-