NAME
Oryx::MetaClass - abstract base class for all Oryx meta types
INTERFACE
All Oryx components implement the interface defined herein. This is the basis for all Oryx components to share a common interface. All this really means is that when an object is created, retrieved, deleted etc. then each meta-instance (Oryx::Attribute, Oryx::Association etc.) associated with the class or instance can decide what it wants to do during each call. So when we say:
CMS::Page->create({ ... });
then in the create() method inherited from Oryx::Class we do something similar to:
sub create {
    my ($class, $params) = @_;
    
    # do a few things with $params, exactly what would depend
    # on whether we're using DBI or DBM back-end
    
    $_->create($query, $params, ...) foreach $class->members;
    
    # return a newly created instance
}
Here the members method (defined in Oryx::Class returns all meta-instances hanging off the class, and to each on is the create method delegated; hence the common interface.
- create
 - 
meta object's
create()hook - retrieve
 - 
meta object's
retrieve()hook - update
 - 
meta object's
update()hook - delete
 - 
meta object's
delete()hook - search
 - 
meta object's
search()hook - construct
 - 
meta object's
construct()hook 
META-DATA ACCESS
Each meta-type (with the exception of Oryx::Value types) has meta-data associated with it which is usually defined in the $schema class variable used in your persistent classes.
The following are accessors for this meta-data:
- meta
 - 
usually returns a hash reference which corresponds to the meta-data described in
$schema. - getMetaAttribute( $name )
 - 
get a value from the meta-data hash ref keyed by
$name - setMetaAttribute( $name, $value )
 - 
set a value from the meta-data hash ref keyed by
$name 
SEE ALSO
AUTHOR
Copyright (C) 2005 Richard Hundt <richard NO SPAM AT protea-systems.com>
LICENSE
This library is free software and may be used under the same terms as Perl itself.
2 POD Errors
The following errors were encountered while parsing the POD:
- Around line 81:
 You forgot a '=back' before '=head1'
- Around line 89:
 '=item' outside of any '=over'