Class FilteringItemVisitor

    • Field Detail

      • includePredicate

        protected Predicate includePredicate
        Predicate that defines which items are included.
      • traversalPredicate

        protected Predicate traversalPredicate
        Predicate that defines which items are traversed.
      • walkProperties

        protected boolean walkProperties
        Do we want to walk all properties of nodes? The default is false.
      • breadthFirst

        protected boolean breadthFirst
        indicates if traversal should be done in a breadth-first manner rather than depth-first (which is the default)
      • maxLevel

        protected int 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)
      • currentQueue

        protected LinkedList currentQueue
        queues used to implement breadth-first traversal
      • currentLevel

        protected int currentLevel
        used to track hierarchy level of item currently being processed
    • Constructor Detail

      • FilteringItemVisitor

        public FilteringItemVisitor()
    • Method Detail

      • setMaxLevel

        public void setMaxLevel​(int ml)
      • setBreadthFirst

        public void setBreadthFirst​(boolean flag)
      • setWalkProperties

        public void setWalkProperties​(boolean flag)
      • setIncludePredicate

        public void setIncludePredicate​(Predicate ip)
      • setTraversalPredicate

        public void setTraversalPredicate​(Predicate tp)
      • entering

        protected abstract void entering​(Property property,
                                         int level)
                                  throws RepositoryException
        Implement this method to add behaviour performed before a Property is visited.
        Parameters:
        property - the Property that is accepting this visitor.
        level - hierarchy level of this property (the root node starts at level 0)
        Throws:
        RepositoryException - if an error occurrs
      • entering

        protected abstract void entering​(Node node,
                                         int level)
                                  throws RepositoryException
        Implement this method to add behaviour performed before a Node is visited.
        Parameters:
        node - the Node that is accepting this visitor.
        level - hierarchy level of this node (the root node starts at level 0)
        Throws:
        RepositoryException - if an error occurrs
      • leaving

        protected abstract void leaving​(Property property,
                                        int level)
                                 throws RepositoryException
        Implement this method to add behaviour performed after a Property is visited.
        Parameters:
        property - the Property that is accepting this visitor.
        level - hierarchy level of this property (the root node starts at level 0)
        Throws:
        RepositoryException - if an error occurrs
      • leaving

        protected abstract void leaving​(Node node,
                                        int level)
                                 throws RepositoryException
        Implement this method to add behaviour performed after a Node is visited.
        Parameters:
        node - the Node that is accepting this visitor.
        level - hierarchy level of this node (the root node starts at level 0)
        Throws:
        RepositoryException - if an error occurrs
      • 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 behaviour 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 occurrs
      • 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 behaviour 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 occurrs