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 James A. Duncan 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)