Projekt

Allgemein

Profil

Herunterladen (1022 Bytes) Statistiken
| Zweig: | Markierung: | Revision:
ac552280 Moritz Bunkus
package SL::DB::Helper::Metadata;
82515b2d Sven Schöling
use strict;
660c7e53 Sven Schöling
use SL::X;
82515b2d Sven Schöling
use Rose::DB::Object::Metadata;
ac552280 Moritz Bunkus
use SL::DB::Helper::ConventionManager;
82515b2d Sven Schöling
use base qw(Rose::DB::Object::Metadata);

sub convention_manager_class {
ac552280 Moritz Bunkus
return 'SL::DB::Helper::ConventionManager';
82515b2d Sven Schöling
}

sub default_manager_base_class {
ac552280 Moritz Bunkus
return 'SL::DB::Helper::Manager';
82515b2d Sven Schöling
}

78034f24 Sven Schöling
sub initialize {
my $self = shift;
3e5dbd22 Sven Schöling
$self->make_attr_auto_helpers unless $self->is_initialized;
78034f24 Sven Schöling
$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);
}

660c7e53 Sven Schöling
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');

6bdcd838 Moritz Bunkus
SL::X::DBRoseError->throw(
db_error => $object->error,
660c7e53 Sven Schöling
class => ref($object),
metaobject => $self,
object => $object,
);
}

82515b2d Sven Schöling
1;