kivitendo/SL/DB/Helper/Metadata.pm @ 4b1666b7
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;
|