org.qi4j.functional

## Interface HierarchicalVisitor<NODE,LEAF,ThrowableType extends Throwable>

- All Superinterfaces:
    Visitor<LEAF,ThrowableType>
  All Known Implementing Classes:
    HierarchicalVisitorAdapter

      public interface HierarchicalVisitor<NODE,LEAF,ThrowableType extends Throwable>
      extends Visitor<LEAF,ThrowableType>

  Visitor to visit hierarchies.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `visit(LEAF visited)` Visit an instance of T
    `boolean` | `visitEnter(NODE visited)` Enter an instance of T
    `boolean` | `visitLeave(NODE visited)` Leave an instance of T

- - ### Method Detail

    - #### visitEnter

          boolean visitEnter(NODE visited)
                             throws ThrowableType extends Throwable

      Enter an instance of T
      Parameters:
        `visited` - the visited instance which is now entered
      Returns:
        true if the visitor pattern should continue, false if it should be aborted for this level
      Throws:
        `ThrowableType` - if an exception occurred during processing. Any client call that initiated the visiting should get the exception in order to handle it properly.
        `ThrowableType extends Throwable`

    - #### visitLeave

          boolean visitLeave(NODE visited)
                             throws ThrowableType extends Throwable

      Leave an instance of T
      Parameters:
        `visited` - the visited instance which is now left
      Returns:
        true if the visitor pattern should continue, false if it should be aborted for the level of this node
      Throws:
        `ThrowableType` - if an exception occurred during processing. Any client call that initiated the visiting should get the exception in order to handle it properly.
        `ThrowableType extends Throwable`

    - #### visit

          boolean visit(LEAF visited)
                        throws ThrowableType extends Throwable

      Description copied from interface: `Visitor`
      Visit an instance of T
      Specified by:
        `visit` in interface `Visitor<LEAF,ThrowableType extends Throwable>`
      Parameters:
        `visited` - the visited instance
      Returns:
        true if the visitor pattern should continue, false if it should be aborted
      Throws:
        `ThrowableType` - if an exception occurred during processing. Any client call that initiated the visiting should get the exception in order to handle it properly.
        `ThrowableType extends Throwable`