$Id: README,v 1.1.1.1 1997/10/18 16:20:01 ken Exp $
Class::Visitor
Vistor and Iterator extensions to
the Class::Template Perl module for
use with container hierarchies.
Ken MacLeod
ken@bitsko.slc.ut.us
INTRODUCTION
Class::Visitor extends the Class::Template Perl module with
implementations of the Visitor and Iterator design patterns for
multi-level container hierarchies.
See the file Changes for user-visible changes. See ChangeLog for
detailed change descriptions.
Newer versions of this module can be found at
.
Copyright (C) 1997 Ken MacLeod
Class::Visitor is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
OVERVIEW
Class::Visitor defines object classes using ``templates''.
Templates define the members of the class and what data type they
contain (scalar, array, or hash). Class::Template creates the
accessor methods for the members of the class, Class::Visitor
extends those methods with methods for ``visiting'' and iterating
over multiple levels of objects.
Iteration methods include `next', `parent', `root', returning the
delegate, or comparing equivalency of iterators.
Visitor methods include `accept' and `children_accept'. Calling
`accept' on an object immediatly calls back to the visiting class
with a `visit_TYPE' method where TYPE is the type of this object.
Additional methods are defined for `push' and `pop' on class
members and an `as_string' method that returns the concatenation
of scalars contained in a class member.
See the man pages for Class::Visitor(3), Class::Iter(3), and
Class::Template(3) for details.
Visitors and Iterators are explained thoroughly in ``Design
Patterns: Elements of Reusable Object-Oriented Software'' by
Gamma, Helm, Johnson, and Vlissides, published by Addison-Wesley
(ISBN 0-201-63361-2).
For an example of Class::Visitor in action, see the Perl module
SGML::SPGrove.
INSTALLATION
Class::Visitor requires Perl 5 and Class::Template from the
Class-Eroot package.
Installation of Class::Template must be done by hand.
Class::Visitor installs as a standard Perl module:
perl Makefile.PL
make
make test
make install
Class::Visitor includes an RedHat Package Manager (RPM) spec for
creating binary packages. This spec is known to work with
PkgMaker for creating ``binary'' tars and Solaris packages.
Prepackaged ``binaries'' for Class::Template and Class::Visitor
are available at the source distribution site: