diff options
author | gjoranv <gv@verizonmedia.com> | 2022-07-13 11:38:09 +0200 |
---|---|---|
committer | gjoranv <gv@verizonmedia.com> | 2022-07-13 11:39:09 +0200 |
commit | 3ad0117c5ec96bb3d32495a222409df074cfd7d9 (patch) | |
tree | 3f2d0024cbf719b8cd38365016e1dd49754b5a48 /vespajlib/src/main/java/com/yahoo/yolean/trace/TraceVisitor.java | |
parent | 0781a0b3ce6b7433f442d3a1bc3097272971f0ba (diff) |
Move yolean code into vespajlib.
Diffstat (limited to 'vespajlib/src/main/java/com/yahoo/yolean/trace/TraceVisitor.java')
-rw-r--r-- | vespajlib/src/main/java/com/yahoo/yolean/trace/TraceVisitor.java | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/vespajlib/src/main/java/com/yahoo/yolean/trace/TraceVisitor.java b/vespajlib/src/main/java/com/yahoo/yolean/trace/TraceVisitor.java new file mode 100644 index 00000000000..1b3507777b7 --- /dev/null +++ b/vespajlib/src/main/java/com/yahoo/yolean/trace/TraceVisitor.java @@ -0,0 +1,45 @@ +// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.yolean.trace; + +/** + * <p>This class is an abstract visitor of {@link TraceNode}. See {@link TraceNode#accept(TraceVisitor)}.</p> + * + * @author bratseth + * @since 5.1.15 + */ +public abstract class TraceVisitor { + + /** + * <p>Visits a {@link TraceNode}. Called by {@link TraceNode#accept(TraceVisitor)}, before visiting its + * children.</p> + * + * @param node the <code>TraceNode</code> being visited + * @see TraceNode#accept(TraceVisitor) + */ + public abstract void visit(TraceNode node); + + /** + * <p>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 <code>TraceNode</code> has zero children.</p> + * <p>The default implementation of this method does nothing.</p> + * + * @param node the <code>TraceNode</code> being entered + * @see #leaving(TraceNode) + */ + @SuppressWarnings("UnusedParameters") + public void entering(TraceNode node) { + // empty + } + + /** + * <p>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 <code>TraceNode</code> has zero children.</p> + * <p>The default implementation of this method does nothing.</p> + * + * @param node the <code>TraceNode</code> being left + */ + @SuppressWarnings("UnusedParameters") + public void leaving(TraceNode node) { + // empty + } +} |