org.perfectjpattern.core.behavioral.visitor
Class AbstractVisitor<E>
java.lang.Object
org.perfectjpattern.core.behavioral.visitor.AbstractVisitor<E>
- Type Parameters:
E - Element type that this IVisitor can visit.
- All Implemented Interfaces:
- IVisitor<E>
- Direct Known Subclasses:
- PrintVisitor, ToStringVisitor
public abstract class AbstractVisitor<E>
- extends Object
- implements IVisitor<E>
Reusable abstract base implementation of IVisitor interface.
- Version:
- $Revision: 1.0 $ $Date: Jul 1, 2007 7:02:55 AM $
- Author:
- Giovanni Azua
- See Also:
IVisitor-
-
|
Method Summary |
static
|
reusableVisit(IVisitor<E> aVisitor,
E... anElements)
Reusable implementation of the visit method that may be reused by
implementors of IVisitor that for any reason can not
subclass AbstractVisitor. |
void |
visit(E anElement)
Abstract definition of the Visitor's Pattern visit method. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
AbstractVisitor
public AbstractVisitor()
visit
public final void visit(E anElement)
- Abstract definition of the Visitor's Pattern
visit method.
This method will alone handle the dynamic double-dispatch operation
avoiding the need for a counterpart accept method in the
IElement hierarchy. First the visit method
will resolve to the base Visitor implementation's by dynamic invocation
i.e. overriding. Then the base Visitor implementation will lookup
automatically by a second dynamic dispatch mechanism the right Visitor's
visit implementation depending on the concrete IElement
sub-type.
- Specified by:
visit in interface IVisitor<E>
- Parameters:
anElement - IElement instance to visit.
reusableVisit
public static <E> void reusableVisit(IVisitor<E> aVisitor,
E... anElements)
throws IllegalArgumentException
- Reusable implementation of the visit method that may be reused by
implementors of
IVisitor that for any reason can not
subclass AbstractVisitor.
- Type Parameters:
E - Type of Element to visit.- Parameters:
aVisitor - Concrete IVisitor instance.anElements - Concrete IElement instances to visit.
- Throws:
IllegalArgumentException - 'aVisitor' must not be null.
IllegalArgumentException - 'anElements' must not be null.
IllegalArgumentException - 'anElements' must not be empty.
Copyright © 2007-2009. All Rights Reserved.