This document is the generated API specification for JJTraveler,
version __VERSION__.
JJTraveler is a combination of a framework and a library that
provide generic visitor combinators for Java.
What are visitor combinators?
The notion of visitor combinators was first introduced in
Visitor Combination and Traversal Control (Joost Visser,
OOPSLA 2001). Visitor combinators are small, reusable classes that
implement a generic visitor interface. Here, `generic'
means: independent of any specific class hierarchy. Each combinator
captures a basic piece of functionality. They can be composed in
different constellations to build more complex visitors.
What is JJTraveler?
JJTraveler provides an implementation of generic visitor combinators
for Java. JJTraveler consists of a framework and a library. The
framework provides some interfaces that a user must instantiate in
order to take advantage of JJTraveler. The library contains a collection
of predefined visitor combinators for a range of tasks.
How do I use JJTraveler?
To use JJTraveler, you first have to instantiate JJTraveler's
framework for the class-hierarchy of your application. This means
that you have to supply implementations of JJTraveler's generic
interfaces Visitable and Visitor.
After instantiation of JJTraveler's framework, you can reuse the
combinators in its library. Such reuse can take several forms. Firsly,
you can reuse the generic combinators of the library as-is,
and apply them direcly to the objects in your application. Secondly,
you can specialize the generic combinators with behaviour
that is specific for some classes in your application. For those classes
for which you do not implement specific behaviour, the generic behaviour
of the combinators you specialize is reused. Thirdly, you can compose
compound visitors by passing generic and specific visitors combinators
as arguments to each other.