// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.yolean.trace; /** *
This class is an abstract visitor of {@link TraceNode}. See {@link TraceNode#accept(TraceVisitor)}.
* * @author bratseth * @since 5.1.15 */ public abstract class TraceVisitor { /** *Visits a {@link TraceNode}. Called by {@link TraceNode#accept(TraceVisitor)}, before visiting its * children.
* * @param node theTraceNode
being visited
* @see TraceNode#accept(TraceVisitor)
*/
public abstract void visit(TraceNode node);
/**
* Enters a {@link TraceNode}. This method is called after {@link #visit(TraceNode)}, but before visiting its
* children. Note that this method is NOT called if a TraceNode
has zero children.
The default implementation of this method does nothing.
* * @param node theTraceNode
being entered
* @see #leaving(TraceNode)
*/
@SuppressWarnings("UnusedParameters")
public void entering(TraceNode node) {
// empty
}
/**
* Leaves a {@link TraceNode}. This method is called after {@link #entering(TraceNode)}, and after visiting its
* children. Note that this method is NOT called if a TraceNode
has zero children.
The default implementation of this method does nothing.
* * @param node theTraceNode
being left
*/
@SuppressWarnings("UnusedParameters")
public void leaving(TraceNode node) {
// empty
}
}