oracular (3) Class::Gomor.3pm.gz

Provided by: libclass-gomor-perl_1.03-3_all bug

NAME

       Class::Gomor - another class and object builder

DESCRIPTION

       This module is yet another class builder. This one adds parameter checking in new constructor, that is to
       check for attributes existence, and definedness.

       In order to validate parameters, the module needs to find attributes, and that is the reason for
       declaring attributes in global variables named @AS, @AA, @AO. They respectively state for Attributes
       Scalar, Attributes Array and Attributes Other. The last one is used to avoid autocreation of accessors,
       that is to let you declare your own ones.

       Attribute validation is performed by looking at classes hierarchy, by following @ISA tree inheritance.

       The loss in speed by validating all attributes is quite negligeable on a decent machine (Pentium IV, 2.4
       GHz) with Perl 5.8.x. But if you want to avoid checking, you can do it, see below.

       This class is the base class for Class::Gomor::Array and Class::Gomor::Hash, so they will inherite the
       following methods.

GLOBAL VARIABLES

       $NoCheck
           Import it in your namespace like this:

           use Class::Gomor qw($NoCheck);

           If you want to disable cgCheckParams to improve speed once your program is frozen, you can use this
           variable. Set it to 1 to disable parameter checking.

       $Debug
           Import it in your namespace like this:

           use Class::Gomor qw($Debug);

           This variable is used by the cgDebugPrint method.

METHODS

       cgCheckParams (hash ref, array ref)
           The attribute checking method takes two arguments, the first is user passed attributes (as a hash
           reference), the second is the list of valid attributes, gathered via cgGetAttributes method (as an
           array ref). A message is displayed if passed parameters are not valid.

       cgGetIsaTree (array ref)
           A recursive method. You pass a class in an array reference as an argument, and then the @ISA array is
           browsed, recursively. The array reference passed as an argument is increased with new classes, pushed
           into it. It returns nothing, result is stored in the array ref.

       cgGetAttributes
           This method returns available attributes for caller's object class. It uses cgGetIsaTree to search
           recursively in class hierarchy. It then returns an array reference with all possible attributes.

       cgBuildAccessorsScalar (array ref)
           Accessor creation method. Takes an array reference containing all scalar attributes to create. Scalar
           accessors are stored in a global variable names @AS. So you call this method at the beginning of your
           class like that:

           __PACKAGE__->cgBuildAccessorsScalar(\@AS);

       cgBuildAccessorsArray (array ref)
           Accessor creation method. Takes an array reference containing all array attributes to create. Array
           accessors are stored in a global variable names @AA. So you call this method at the beginning of your
           class like that:

           __PACKAGE__->cgBuildAccessorsArray(\@AA);

       cgClone [ (scalar) ]
           You can clone one of your objects by calling this method. An optional parameter may be used to create
           multiple clones. Cloning will occure only on the first level attributes, that is, if you have
           attributes containing other objects, they will not be cloned.

       cgFullClone [ (scalar) ]
           This method is the same as cgClone, but will clone all attributes recursively, but only if they are
           subclassed from Class::Gomor. So, objects created with other modules than Class::Gomor::Array or
           Class::Gomor::Hash will not be cloned.

           Another thing to note, there is no catch for cycling references (when you link two objects with each
           others). You have been warned.

       cgDebugPrint (scalar, scalar)
           First argument is a debug level. It is compared with global $Debug, and if it is less than it, the
           second argument (a message string) is displayed. This method exists because I use it, maybe you will
           not like it.

SEE ALSO

       Class::Gomor::Array, Class::Gomor::Hash

AUTHOR

       Patrice <GomoR> Auffret

       Copyright (c) 2004-2015, Patrice <GomoR> Auffret

       You may distribute this module under the terms of the Artistic license.  See LICENSE.Artistic file in the
       source distribution archive.