Gestinanna::POF::Alzabo - Support for persistant objects stored in Alzabo


NAME

Gestinanna::POF::Alzabo - Support for persistant objects stored in Alzabo

Back to Top


SYNOPSIS

 Gestinanna::POF::Alzabo -> build_object_class(
     class => 'My::DataObject::Base',
     params => {
         table => 'SQLTablename',
     }
 );
 package My::DataObject;
 use base q(My::DataObject::Base);
 # any column access method overrides here
 sub column1 {
     my $self = shift;
     if( @_ ) { # setting
         # do checks here, returning or throwing an exception if 
         # there is a problem
     }
     $self -> SUPER::column1(@_);
      }

Back to Top


DESCRIPTION

This provides the basis for using an RDBMS as an object store via Alzabo. Do not use this for complex objects using relationships and normalization (yet). This is best used for simple types where each object can be a row in a table.

Object Ids

Given an object in this class, the Alzabo row object can be retrieved from the table with

  $row = $table -> row_by_id($object -> object_id);

The object id is identical to the string returned by the id_as_string method of the Alzabo::Runtime::Row class. It is easiest if this corresponds to only one column in the table.

If there is only one column in the primary key, then the object_id is the unmodified value of that column.

Primary Keys

Primary keys are read-only. They may be specified at object creation/loading time (see below for details).

Back to Top


ATTRIBUTES

The attributes are those columns in the table. Primary key attributes are read-only. They may be specified at object creation time in the factory method call.

For example,

  $object = $factory -> new( object => (
       primary_key_1 => $value1,
       primary_key_2 => $value2
  );

This will create a new object with the specified primary key values. The object will be stored in the RDBMS when the save method is called (or when the object is destroyed if Commit is true).

Back to Top


DATA CONNECTIONS

This module expects an Alzabo schema from the factory. Providing this at the time the factory is created is sufficient.

 $factory = Gestinanna::POF -> new(_factory => (
      schema => $alzabo_schema
 ) );

Back to Top


AUTHOR

James Smith, <jsmith@cpan.org>

Back to Top


COPYRIGHT

Copyright (C) 2002, 2003 Texas A&M University. All Rights Reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

Back to Top

 Gestinanna::POF::Alzabo - Support for persistant objects stored in Alzabo