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

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

Oryx, Oryx::Class

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'