|
Evaluating Software Design Patterns — the "Gang of Four" patterns implemented in Java 6 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object dk.rode.thesis.visitor.TypeVisitor
@Participant(value="ConcreteVisitor") public class TypeVisitor
A type visitor collects visited sequences
based on acceptance of specific sequence types.
It handles only type
visitable
sequences.
The collected types correspond to the visitation methods
overridden by sub-classes of this visitor. If this visitor
is used as is, it will accept no sequence types: each visitation
method does nothing per default. A sub-class must simply invoke
approve(Sequence)
to signal that a given visited
sequence is approved.
The visitor accumulates the visited sequences in visitation
order. They can be collected after visitation via the
getApproved()
method. A given sequence is only
included once in the returned list, based on equals
,
not identity.
LoggingVisitor
,
CountingVisitor
,
SimpleScanner
Field Summary | |
---|---|
private Set<Sequence<?>> |
approved
The set containing the approved sequences, in order. |
Constructor Summary | |
---|---|
TypeVisitor()
No-arg constructor. |
Method Summary | |
---|---|
protected void |
approve(Sequence<?> sequence)
Approves the visited sequence supplied as sequence . |
int |
approved()
Returns the number of sequences approved by this visitor. |
void |
clear()
Clears the accumulated approved sequences, so this visitor can be reused. |
List<Sequence<?>> |
getApproved()
Returns a list containing the sequences approved by this type visitor, in visitation order. |
String |
toString()
Returns the string representation of this visitor. |
void |
visitComposite(CompositeSequence<?> sequence,
Void unused)
Visits a composite sequence. |
void |
visitMemorizable(MemorizableSequence<?> sequence,
Void unused)
Visits a memorizable sequence. |
void |
visitObservable(ObservableSequence<?,?,?> sequence,
Void unused)
Visits an observable sequence. |
void |
visitReversible(ReversibleSequence<?> sequence,
Void unused)
Visits a reversible sequence. |
void |
visitStateable(StateableSequence<?> sequence,
Void unused)
Visits a stateable sequence. |
void |
visitUnknown(Sequence<?> sequence,
Void unused)
Visits a sequence that cannot be visited
by any other visitation methods declared by this visitor. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
private final Set<Sequence<?>> approved
Never null, but may be empty.
Constructor Detail |
---|
public TypeVisitor()
Method Detail |
---|
protected void approve(Sequence<?> sequence)
sequence
.
sequence
- The sequence to approve; cannot be null.
NullPointerException
- if sequence
is null.public int approved()
getApproved()
public void clear()
public List<Sequence<?>> getApproved()
Modifying the returned list will not affect this visitor.
public String toString()
toString
in class Object
public void visitComposite(CompositeSequence<?> sequence, Void unused)
SequenceTypeVisitor
composite
sequence.
visitComposite
in interface SequenceTypeVisitor<Void>
sequence
- The composite sequence to visit; never null.unused
- A visitor-specified argument, if any; nullability
determined by the visitor implementation.public void visitMemorizable(MemorizableSequence<?> sequence, Void unused)
SequenceTypeVisitor
memorizable
sequence.
visitMemorizable
in interface SequenceTypeVisitor<Void>
sequence
- The memorizable sequence to visit; never null.unused
- A visitor-specified argument, if any; nullability
determined by the visitor implementation.public void visitObservable(ObservableSequence<?,?,?> sequence, Void unused)
SequenceTypeVisitor
observable
sequence.
visitObservable
in interface SequenceTypeVisitor<Void>
sequence
- The observable sequence to visit; never null.unused
- A visitor-specified argument, if any; nullability
determined by the visitor implementation.public void visitReversible(ReversibleSequence<?> sequence, Void unused)
SequenceTypeVisitor
reversible
sequence.
visitReversible
in interface SequenceTypeVisitor<Void>
sequence
- The reversible sequence to visit; never null.unused
- A visitor-specified argument, if any; nullability
determined by the visitor implementation.public void visitStateable(StateableSequence<?> sequence, Void unused)
SequenceTypeVisitor
stateable
sequence.
visitStateable
in interface SequenceTypeVisitor<Void>
sequence
- The stateable sequence to visit; never null.unused
- A visitor-specified argument, if any; nullability
determined by the visitor implementation.public void visitUnknown(Sequence<?> sequence, Void unused)
SequenceVisitor
sequence
that cannot be visited
by any other visitation methods declared by this visitor.
visitUnknown
in interface SequenceVisitor<Void>
sequence
- The sequence to visit; never null.unused
- A visitor-specified argument, if any; nullability
determined by the visitor implementation.
|
Gunni Rode / rode.dk | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |