org.apache.maven.shared.dependency.tree.traversal
Class SerializingDependencyNodeVisitor

java.lang.Object
  extended by org.apache.maven.shared.dependency.tree.traversal.SerializingDependencyNodeVisitor
All Implemented Interfaces:
DependencyNodeVisitor

public class SerializingDependencyNodeVisitor
extends java.lang.Object
implements DependencyNodeVisitor

A dependency node visitor that serializes visited nodes to a writer.

Since:
1.1
Version:
$Id: SerializingDependencyNodeVisitor.java 573940 2007-09-09 01:43:25Z carlos $
Author:
Mark Hobson

Nested Class Summary
static class SerializingDependencyNodeVisitor.TreeTokens
          Provides tokens to use when serializing the dependency tree.
 
Field Summary
private  int depth
          The depth of the currently visited dependency node.
static SerializingDependencyNodeVisitor.TreeTokens EXTENDED_TOKENS
          The extended ASCII tokens to use when outputing the dependency tree.
static SerializingDependencyNodeVisitor.TreeTokens STANDARD_TOKENS
          The standard ASCII tokens to use when outputing the dependency tree.
private  SerializingDependencyNodeVisitor.TreeTokens tokens
          The tokens to use when serializing the dependency tree.
static SerializingDependencyNodeVisitor.TreeTokens WHITESPACE_TOKENS
          Whitespace tokens to use when outputing the dependency tree.
private  java.io.PrintWriter writer
          The writer to serialize to.
 
Constructor Summary
SerializingDependencyNodeVisitor(java.io.Writer writer)
          Creates a dependency node visitor that serializes visited nodes to the specified writer using whitespace tokens.
SerializingDependencyNodeVisitor(java.io.Writer writer, SerializingDependencyNodeVisitor.TreeTokens tokens)
          Creates a dependency node visitor that serializes visited nodes to the specified writer using the specified tokens.
 
Method Summary
 boolean endVisit(DependencyNode node)
          Ends the visit to to the specified dependency node.
private  void indent(DependencyNode node)
          Writes the necessary tokens to indent the specified dependency node to this visitor's writer.
private  boolean isLast(DependencyNode node)
          Gets whether the specified dependency node is the last of its siblings.
private  boolean isLast(DependencyNode node, int ancestorDepth)
          Gets whether the specified dependency node ancestor is the last of its siblings.
 boolean visit(DependencyNode node)
          Starts the visit to the specified dependency node.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

WHITESPACE_TOKENS

public static final SerializingDependencyNodeVisitor.TreeTokens WHITESPACE_TOKENS
Whitespace tokens to use when outputing the dependency tree.


STANDARD_TOKENS

public static final SerializingDependencyNodeVisitor.TreeTokens STANDARD_TOKENS
The standard ASCII tokens to use when outputing the dependency tree.


EXTENDED_TOKENS

public static final SerializingDependencyNodeVisitor.TreeTokens EXTENDED_TOKENS
The extended ASCII tokens to use when outputing the dependency tree.


writer

private final java.io.PrintWriter writer
The writer to serialize to.


tokens

private final SerializingDependencyNodeVisitor.TreeTokens tokens
The tokens to use when serializing the dependency tree.


depth

private int depth
The depth of the currently visited dependency node.

Constructor Detail

SerializingDependencyNodeVisitor

public SerializingDependencyNodeVisitor(java.io.Writer writer)
Creates a dependency node visitor that serializes visited nodes to the specified writer using whitespace tokens.

Parameters:
writer - the writer to serialize to

SerializingDependencyNodeVisitor

public SerializingDependencyNodeVisitor(java.io.Writer writer,
                                        SerializingDependencyNodeVisitor.TreeTokens tokens)
Creates a dependency node visitor that serializes visited nodes to the specified writer using the specified tokens.

Parameters:
writer - the writer to serialize to
tokens - the tokens to use when serializing the dependency tree
Method Detail

visit

public boolean visit(DependencyNode node)
Description copied from interface: DependencyNodeVisitor
Starts the visit to the specified dependency node.

Specified by:
visit in interface DependencyNodeVisitor
Parameters:
node - the dependency node to visit
Returns:
true to visit the specified dependency node's children, false to skip the specified dependency node's children and proceed to its next sibling

endVisit

public boolean endVisit(DependencyNode node)
Description copied from interface: DependencyNodeVisitor
Ends the visit to to the specified dependency node.

Specified by:
endVisit in interface DependencyNodeVisitor
Parameters:
node - the dependency node to visit
Returns:
true to visit the specified dependency node's next sibling, false to skip the specified dependency node's next siblings and proceed to its parent

indent

private void indent(DependencyNode node)
Writes the necessary tokens to indent the specified dependency node to this visitor's writer.

Parameters:
node - the dependency node to indent

isLast

private boolean isLast(DependencyNode node)
Gets whether the specified dependency node is the last of its siblings.

Parameters:
node - the dependency node to check
Returns:
true if the specified dependency node is the last of its last siblings

isLast

private boolean isLast(DependencyNode node,
                       int ancestorDepth)
Gets whether the specified dependency node ancestor is the last of its siblings.

Parameters:
node - the dependency node whose ancestor to check
ancestorDepth - the depth of the ancestor of the specified dependency node to check
Returns:
true if the specified dependency node ancestor is the last of its siblings