Oryx::MetaClass - abstract base class for all Oryx meta types


Oryx documentation  | view source Contained in the Oryx distribution.

Index


NAME

Top

Oryx::MetaClass - abstract base class for all Oryx meta types

INTERFACE

Top

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

Top

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

Top

Oryx, Oryx::Class

AUTHOR

Top

Copyright (C) 2005 Richard Hundt <richard NO SPAM AT protea-systems.com>

LICENSE

Top

This library is free software and may be used under the same terms as Perl itself.


Oryx documentation  | view source Contained in the Oryx distribution.