kivitendo/SL/X/Base.pm @ 1b9d825f
6bdcd838 | Moritz Bunkus | package SL::X::Base;
|
||
use strict;
|
||||
use warnings;
|
||||
use parent qw(Exception::Class::Base);
|
||||
sub _defaults { return () }
|
||||
sub message { goto &error }
|
||||
sub error {
|
||||
my ($self, @params) = @_;
|
||||
fe4deda7 | Jan Büren | return $self->{message} if ($self->{message} // '') ne '';
|
||
6bdcd838 | Moritz Bunkus | |||
return $self->SUPER::error(@params) if !$self->can('_defaults');
|
||||
my %defaults = $self->_defaults;
|
||||
return $self->SUPER::error(@params) if !$defaults{error_template};
|
||||
my ($format, @fields) = @{ $defaults{error_template} };
|
||||
return sprintf $format, map { $self->$_ } @fields;
|
||||
}
|
||||
1;
|