Class TraversingItemVisitor

java.lang.Object
javax.jcr.util.TraversingItemVisitor
All Implemented Interfaces:
ItemVisitor
Direct Known Subclasses:
TraversingItemVisitor.Default

public abstract class TraversingItemVisitor extends Object implements ItemVisitor
An implementation of ItemVisitor.

TraversingItemVisitor is an abstract utility class which allows to easily traverse an Item hierarchy.

TraversingItemVisitor makes use of the Visitor Pattern as described in the book 'Design Patterns' by the Gang Of Four (Gamma et al.).

Tree traversal is done observing the left-to-right order of child Items if such an order is supported and exists.

  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    static class 
    Convenience class providing default implementations of the abstract methods of TraversingItemVisitor.
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs a new instance of this class.
    TraversingItemVisitor(boolean breadthFirst)
    Constructs a new instance of this class.
    TraversingItemVisitor(boolean breadthFirst, int maxLevel)
    Constructs a new instance of this class.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    visit(Node node)
    Called when the Visitor is passed to a Node.
    void
    visit(Property property)
    Called when the Visitor is passed to a Property.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • TraversingItemVisitor

      public TraversingItemVisitor()
      Constructs a new instance of this class.

      The tree of Items will be traversed in a depth-first manner (default behavior).

    • TraversingItemVisitor

      public TraversingItemVisitor(boolean breadthFirst)
      Constructs a new instance of this class.
      Parameters:
      breadthFirst - if breadthFirst is true then traversal is done in a breadth-first manner; otherwise it is done in a depth-first manner (which is the default behavior).
    • TraversingItemVisitor

      public TraversingItemVisitor(boolean breadthFirst, int maxLevel)
      Constructs a new instance of this class.
      Parameters:
      breadthFirst - if breadthFirst is true then traversal is done in a breadth-first manner; otherwise it is done in a depth-first manner (which is the default behavior).
      maxLevel - the 0-based level up to which the hierarchy should be traversed (if it's -1, the hierarchy will be traversed until there are no more children of the current item).
  • Method Details

    • visit

      public void visit(Property property) throws RepositoryException
      Called when the Visitor is passed to a Property.

      It calls TraversingItemVisitor.entering(Property, int) followed by TraversingItemVisitor.leaving(Property, int). Implement these abstract methods to specify behavior on 'arrival at' and 'after leaving' the Property.

      If this method throws, the visiting process is aborted.

      Specified by:
      visit in interface ItemVisitor
      Parameters:
      property - the Property that is accepting this visitor.
      Throws:
      RepositoryException - if an error occurs.
    • visit

      public void visit(Node node) throws RepositoryException
      Called when the Visitor is passed to a Node.

      It calls TraversingItemVisitor.entering(Node, int) followed by TraversingItemVisitor.leaving(Node, int). Implement these abstract methods to specify behavior on 'arrival at' and 'after leaving' the Node.

      If this method throws, the visiting process is aborted.

      Specified by:
      visit in interface ItemVisitor
      Parameters:
      node - the Node that is accepting this visitor.
      Throws:
      RepositoryException - if an error occurs.