NAME
Persistence::Attribute - Abstract class for MOP attribute object.
SYNOPSIS
package Employee;
use Abstract::Meta::Class ':all';
use Persistence::ORM ':all';
my $orm = entity 'emp';
$orm->set_mop_attribute_adapter('Persistence::Attribute::MooseAdapter');
column empno => has('$.no') ;
column ename => has('$.name');
DESCRIPTION
Interface to MOP attribute object adapters.
EXPORT
None.
ATTRIBUES
- attribute
-
Wraps MOP atrribute.
- column_name
-
Column name.
METHODS
- name
-
Attribute name.
- accessor
-
Accessor name - name of the method that returns value of the attribute.
my $accessor = $attribute->accessor; my $value = $obj->$accessor;
- mutator
-
Mutator name - name of the method that sets value of the attribute.
my $accessor = $attribute->mutator; $obj->$mutator($value);
- storage_key
-
Attribute storage key.
If this option is set and object_creation_method is set to 'bless' then a new object creation will use bless method
bless { map {($_->storage_key, $args{$_->name})} @attributes}, $class
otherwise new method will be used.
$class->new(map {($_->name, $args{$_->name})} @attributes);
- associated_class
-
Name of the associated class.
For isntance if you have relationship bettwen My::Employee object and My::Dept then associated_class will be My::Dept
- class_name
-
Class to whom the attribute belongs.
- get_value
-
Returns value form object without triggering any events. Takes object as parameter.
- set_value
-
Sets object value without triggering any events. Takes object, value as parameter.
- has_value
-
Returns true there is value, false otherwise. Takes object name as parameter.
- find_attribute
-
Returns attribute definition. Takes attribute name as parameter.
- create_meta_attribute
-
Retuns a new persisitence attribute object.
This method provides support for plain classes, and xml metadata. If the find attribute method can't find attribute for class then this method should be able to create a new one ad hoc. Takes hash ref with meta attriubtes properties, class name, column name.
- install_fetch_interceptor
-
This method should instal lazy fetch decorator. It takes callback as parameters (code ref) This code ref takes $object referece and $value of the attribute.
COPYRIGHT AND LICENSE
The Persistence::Attribute module is free software. You may distribute under the terms of either the GNU General Public License or the Artistic License, as specified in the Perl README file.
AUTHOR
Adrian Witas,adrian@webapp.strefa.pl