Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

com.trapezium.pattern
Class Visitor  view Visitor download Visitor.java

java.lang.Object
  extended bycom.trapezium.pattern.Visitor
All Implemented Interfaces:
java.io.Serializable

public abstract class Visitor
extends java.lang.Object
implements java.io.Serializable

Abstract base class for all Visitor pattern objects. Concrete subclasses must define "visitObject" method, which returns true if the visited object's children are to be visitied, otherwise false.

Since:
1.0
Version:
1.12, 4 March 1998, infinite loop bug with some PROTOs, 1.0, 30 Dec 1997

Field Summary
protected  com.trapezium.parse.TokenEnumerator dataSource
           
(package private)  java.util.Hashtable visited
           
 int visitLevel
           
 
Constructor Summary
Visitor(com.trapezium.parse.TokenEnumerator dataSource)
          Class constructor
 
Method Summary
 boolean accepts(java.lang.Object a)
          Template method, indicates whether an object is acceptable to the visitor.
 boolean acceptsPassOne(java.lang.Object a)
           
 boolean acceptsPassTwo(java.lang.Object a)
           
 void done()
          Done visiting at this level.
 com.trapezium.parse.TokenEnumerator getDataSource()
          Get the data source
 boolean isTwoPassVisitor()
           
(package private)  void notifyCallback(java.lang.Object a)
          call back to report progress
 void setDataSource(com.trapezium.parse.TokenEnumerator dataSource)
          Set the data source for this visitor
 java.lang.String spacer()
          visit level indentation
 boolean visit(java.lang.Object a)
          Visit a particular object, subclass template method "visitObject" does actual visit, base class only tracks visit level.
abstract  boolean visitObject(java.lang.Object a)
          Template method for actually visiting an object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

visitLevel

public int visitLevel

dataSource

protected com.trapezium.parse.TokenEnumerator dataSource

visited

java.util.Hashtable visited
Constructor Detail

Visitor

public Visitor(com.trapezium.parse.TokenEnumerator dataSource)
Class constructor

Method Detail

setDataSource

public void setDataSource(com.trapezium.parse.TokenEnumerator dataSource)
Set the data source for this visitor


getDataSource

public com.trapezium.parse.TokenEnumerator getDataSource()
Get the data source


spacer

public java.lang.String spacer()
visit level indentation


visit

public boolean visit(java.lang.Object a)
Visit a particular object, subclass template method "visitObject" does actual visit, base class only tracks visit level.


notifyCallback

void notifyCallback(java.lang.Object a)
call back to report progress


done

public void done()
Done visiting at this level.


accepts

public boolean accepts(java.lang.Object a)
Template method, indicates whether an object is acceptable to the visitor. This is assuming that all traversals start at acceptable objects, but from that point on, any object is acceptable only if the accepts method approves it. This is a default method, which approves all objects for the visitor. If a Visitor subclass needs to restrict the objects passed to "visitObject", this method is changed to only allow such objects.


acceptsPassOne

public boolean acceptsPassOne(java.lang.Object a)

acceptsPassTwo

public boolean acceptsPassTwo(java.lang.Object a)

isTwoPassVisitor

public boolean isTwoPassVisitor()

visitObject

public abstract boolean visitObject(java.lang.Object a)
Template method for actually visiting an object. Returns true if object children also get visited.