Basicos::Base::Clases - Automatiza creación de métodos a clases


__top


NAME

Basicos::Base::Clases - Automatiza creación de métodos a clases

__top


SYNOPSIS

        package MyPackage;
        use base qw(Basicos::Base::Clases);
        MyPackage->make_accessors_to_clases(
                'cgi'   =>      'Trajano::Data::Cgi',
                'url1'  =>      'Trajano::Data::Url',
                'url2'  =>      'Trajano::Data::Url',
                'coco'  =>      [ 'Trajano::Data::Otros', 
                                                { name => 'especial',
                                                        id => 1.2433 } ],
        'T' => [ 'Trajano', sub { ( $Name ) } ]
        );
        package main;
        my $obj = MyPackage->new();
        $obj->cgi->field_of_cgi();
        $obj->url1->field_of_url();
        $obj->url2->field_of_url();
        $obj->coco->name();
        $obj->coco->id(9.002);

__top


DESCRIPTION

Este paquete amplía las posibilidades de Basicos::Base permitiendo a una clase crear automáticamente métodos de acceso a otras clases, ocupándose incluso de crear los nuevos objetos la primera vez que se accede a ellos.

Para usarlo basta con heredar de este objeto en la clase que estamos construyendo y llamar al método make_accessors_to_clases con los parámetros adecuados, generalmente en el momento de la carga, es decir, fuera de cualquier método o función.

Cada uno de los métodos de acceso creados recibe, como es obvio, una referencia al objeto base y realiza lo siguiente:

Crea un valor en el hash del objeto, formado por el nombre de la clase y su propio nombre de método (por medio de la autovivificación).
Comprueba que tenga un valor y en caso contrario lo inicializa con un nuevo objeto de la clase a la que debe pertenecer.
Si no puede crear el objeto llama a croak con el mensaje de error.
Retorna el valor del objeto.

make_accessors_to_class

        MyPackage->make_accessors_to_class( %accessors )

Dada una lista de nombres de accesos y sus correspondientes clases, crea e instala los métodos que proporcionan un acceso a objetos de dichas clases.

Si algún objeto precisa parámetros de inicialización es necesario usar una referencia a un array de dos elementos: el primero es el nombre de la clase y el segundo una referencia a un hash con los parámetros precisos en el momento de crear el objeto.

__top


BUGS

__top


AUTHOR

(c) Copyright Víctor Moral <victor@taquiones.net> y Angel Ortega <angel@triptico.com>

__top


SEE ALSO

__top


LICENSE

Este programa está bajo licencia GPL (ver perlgpl) y puede distribuirse y/ó modificarse bajo los términos en ella descritos.

__top

 Basicos::Base::Clases - Automatiza creación de métodos a clases