NAME
Class::ObjectTemplate - Perl extension for an optimized template builder base class.
SYNOPSIS
package Foo;use Class::ObjectTemplate;require Exporter;@ISA = qw(Class::ObjectTemplate Exporter);attributes('one', 'two', 'three');# initialize will be called by new()sub initialize {my $self = shift;$self->three(1) unless defined $self->three();}use Foo;$foo = Foo->new();# store 27 in the 'one' attribute$foo->one(27);# check the value in the 'two' attributedie "should be undefined" if defined $foo->two();# set using the utility method$foo->set_attribute('one',27);# check using the utility method$two = $foo->get_attribute('two');# set more than one attribute using the named parameter style$foo->set_attributes('one'=>27, 'two'=>42);# or using array references$foo->set_attributes(['one','two'],[27,42]);# get more than one attribute@list = $foo->get_attributes('one', 'two');# get a list of all attributes known by an object@attrs = $foo->get_attribute_names();# check that initialize() is called properlydie "initialize didn't set three()" unless $foo->three();
DESCRIPTION
Class::ObjectTemplate is a utility class to assist in the building of other Object Oriented Perl classes.
It was described in detail in the O\'Reilly book, "Advanced Perl Programming" by Sriram Srinivasam.
EXPORT
attributes(@name_list)
This method creates a shared setter and getter methods for every name in the list. The method also creates the class constructor, "new()".
WARNING: This method must be invoked within the module for every class that inherits from Class::ObjectTemplate, even if that class defines no attributes. For a class defining no new attributes, it should invoke "attributes()" with no arguments.
AUTHOR
Original code by Sriram Srinivasam.
Fixes and CPAN module by Jason E. Stewart ([email protected])
SEE ALSO
http://www.oreilly.com/catalog/advperl/
Class::ObjectTemplate::DB