Projekt

Allgemein

Profil

Herunterladen (1022 Bytes) Statistiken
| Zweig: | Markierung: | Revision:
package SL::DB::Helper::Metadata;

use strict;
use SL::X;

use Rose::DB::Object::Metadata;
use SL::DB::Helper::ConventionManager;

use base qw(Rose::DB::Object::Metadata);

sub convention_manager_class {
return 'SL::DB::Helper::ConventionManager';
}

sub default_manager_base_class {
return 'SL::DB::Helper::Manager';
}

sub initialize {
my $self = shift;
$self->make_attr_auto_helpers unless $self->is_initialized;
$self->SUPER::initialize(@_);
}

sub make_attr_helpers {
my ($self, %params) = @_;
SL::DB::Helper::Attr::make($self->class, %params);
}

sub make_attr_auto_helpers {
my ($self) = @_;
SL::DB::Helper::Attr::auto_make($self->class);
}

sub handle_error {
my($self, $object) = @_;

# these are used as Rose internal canaries, don't wrap them
die $object->error if UNIVERSAL::isa($object->error, 'Rose::DB::Object::Exception');

SL::X::DBRoseError->throw(
db_error => $object->error,
class => ref($object),
metaobject => $self,
object => $object,
);
}

1;
(19-19/34)