NAME
EO - A generic base class
SYNOPSIS
package Some::Package
use EO;
use base qw(EO);
sub init {
my $self = shift;
if ($self->SUPER::init( @_ ) {
# .. perform initilisation
return 1;
}
return 0;
}
DESCRIPTION
This is a base class for the EO module tree. EO is designed to be a well tested, solid, simple, and long living base class that other modules can rely on.
CONSTRUCTOR
new()
The constructor takes no arguments and will call the init method.
The programmer should ensure that the init method in turn calls its
SUPER::init method. If the EO init method is not called then a
warning will be issued to the effect. Furthermore the init method
should return true to the constructor. Your init method should
probably look something like this:
sub init {
my $self = shift;
if ($self->SUPER::init( @_ )) {
# ... perform initialisation ...
return 1;
}
return 0;
}
This will ensure that the initialisation occurs all the way up the
parent-class chain.
METHODS
oid()
Returns the object id of this object. Object id's are UUIDs as
created by the Data::UUID module.
generate_oid()
Returns a new object id.
clone()
The clone method is creates a copy of the object and returns it.
This is the only method that should be used for cloning in order to
preserve id's. The clone method guarantees that all objects
contained within an object that respond true to ->isa('EO') will
have their id's regenerated.
ATTRIBUTES
abstract
The abstract attribute can be assigned to any method. When it is
assigned it will cause any attempt to call that method to throw an
EO::Error::Method::Abstract exception. This will happen at runtime.
private
The private attribute can be assigned to any method. Any attempt to
call this method from outside the package it is defined in will
cause an EO::Error::Method::Private exception to be thrown. This
will happen at runtime.
EXCEPTIONS
EO::Error::New;
This exception is thrown whenever the constructor fails to
successfully initialise an object. This usually occurs when the
init() method does not return a true value.
EO::Error::Method::NotFound
This exception is thrown whenever a message sent to an object cannot
be successfully sent.
EO::Error::Method::Abstract
This exception is thrown whenever there is a method call on a method
marked with the abstract attribute.
EO::Error::Method::Private
This exception is thrown whenever there is a method call from
outside the defining package on a method marked with the private
attribute.
EO::Error::InvalidParameters
This exception is throw whenever the a message is sent to an object
with incorrect parameters.
AUTHOR
Arthur Bergman <abergman@fotango.com> James A. Duncan
<jduncan@fotango.com>
COPYRIGHT
Copyright 2004 Fotango Ltd. All Rights Reserved.
This program is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
SEE ALSO
perl(1), Data::UUID(3)