Package org.picocontainer

# Interface PicoVisitor

All Known Implementing Classes:
  `AbstractPicoVisitor`, `MethodCallingVisitor`, `TraversalCheckingVisitor`, `VerifyingVisitor`

public interface PicoVisitor
Interface realizing a visitor pattern for `PicoContainer` as described in the GoF. The visitor should visit the container, its children, all registered `ComponentAdapter` instances and all instantiated components.

Author:
  Aslak Hellesøy, Jörg Schaible

## Field Summary

Fields
Modifier and Type
Field
Description
`static final boolean`
`ABORT_TRAVERSAL`
Constant that indicates that the traversal should abort after the visit*() method has been called.
`static final boolean`
`CONTINUE_TRAVERSAL`
Constant that indicates that the traversal should continue after the visit*() method has been called.

## Method Summary

Modifier and Type
Method
Description
`Object`
`traverse(Object node)`
Entry point for the PicoVisitor traversal.
`void`
`visitComponentAdapter(ComponentAdapter<?> componentAdapter)`
Visit a `ComponentAdapter` that has to accept the visitor.
`void`
`visitComponentFactory(ComponentFactory componentFactory)`
Visit a `ComponentAdapter` that has to accept the visitor.
`boolean`
`visitContainer(PicoContainer pico)`
Visit a `PicoContainer` that has to accept the visitor.
`void`
`visitParameter(Parameter parameter)`
Visit a `Parameter` that has to accept the visitor.

## Field Details

### CONTINUE_TRAVERSAL

static final boolean CONTINUE_TRAVERSAL
Constant that indicates that the traversal should continue after the visit*() method has been called.

See Also:
  - Constant Field Values

### ABORT_TRAVERSAL

static final boolean ABORT_TRAVERSAL
Constant that indicates that the traversal should abort after the visit*() method has been called.

See Also:
  - Constant Field Values

## Method Details

### traverse

Object traverse(Object node)
Entry point for the PicoVisitor traversal. The given node is the first object, that is asked for acceptance. Only objects of type `PicoContainer`, `ComponentAdapter`, or `Parameter` are valid.

Parameters:
  `node` - the start node of the traversal.
Returns:
  a visitor-specific value.
Throws:
  `IllegalArgumentException` - in case of an argument of invalid type.

### visitContainer

boolean visitContainer(PicoContainer pico)
Visit a `PicoContainer` that has to accept the visitor.

Parameters:
  `pico` - the visited container.
Returns:
  CONTINUE_TRAVERSAL if the traversal should continue. Any visitor callback that returns ABORT_TRAVERSAL indicates the desire to abort any further traversal.

### visitComponentAdapter

void visitComponentAdapter(ComponentAdapter<?> componentAdapter)
Visit a `ComponentAdapter` that has to accept the visitor.

Parameters:
  `componentAdapter` - the visited ComponentAdapter.

### visitComponentFactory

void visitComponentFactory(ComponentFactory componentFactory)
Visit a `ComponentAdapter` that has to accept the visitor.

Parameters:
  `componentAdapter` - the visited ComponentAdapter.

### visitParameter

void visitParameter(Parameter parameter)
Visit a `Parameter` that has to accept the visitor.

Parameters:
  `parameter` - the visited Parameter.