public interface NodeVisitor
NodeTraversor
to iterate through nodes.
This interface provides two methods, head
and tail
. The head method is called when the node is first
seen, and the tail method when all of the node's children have been visited. As an example, head
can be used to
emit a start tag for a node, and tail
to create the end tag.
Modifier and Type | Method and Description |
---|---|
void |
head(Node node,
int depth)
Callback for when a node is first visited.
|
default void |
tail(Node node,
int depth)
Callback for when a node is last visited, after all of its descendants have been visited.
|
void head(Node node, int depth)
The node may be modified (e.g. Node.attr(String)
, replaced Node.replaceWith(Node)
) or removed
Node.remove()
. If it's instanceOf Element
, you may cast it to an Element
and access those
methods.
node
- the node being visited.depth
- the depth of the node, relative to the root node. E.g., the root node has depth 0, and a child node
of that will have depth 1.default void tail(Node node, int depth)
This method has a default no-op implementation.
Note that neither replacement with Node.replaceWith(Node)
nor removal with Node.remove()
is
supported during tail()
.
node
- the node being visited.depth
- the depth of the node, relative to the root node. E.g., the root node has depth 0, and a child node
of that will have depth 1.