Bug 30708: Add Koha Objects
[koha.git] / Koha / Exceptions / Preservation.pm
1 package Koha::Exceptions::Preservation;
2
3 # This file is part of Koha.
4 #
5 # Koha is free software; you can redistribute it and/or modify it
6 # under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; either version 3 of the License, or
8 # (at your option) any later version.
9 #
10 # Koha is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 # GNU General Public License for more details.
14 #
15 # You should have received a copy of the GNU General Public License
16 # along with Koha; if not, see <http://www.gnu.org/licenses>.
17
18 use Modern::Perl;
19
20 use Koha::Exception;
21
22 use Exception::Class (
23
24     'Koha::Exceptions::Preservation' => {
25         isa => 'Koha::Exception',
26     },
27     'Koha::Exceptions::Preservation::MissingSettings' => {
28         isa         => 'Koha::Exceptions::Preservation',
29         description => "Missing configuration settings",
30         fields      => ['parameter'],
31     },
32     'Koha::Exceptions::Preservation::ItemAlreadyInTrain' => {
33         isa         => 'Koha::Exceptions::Preservation',
34         description => "Cannot add item to waiting list, it is already in a non-received train",
35     },
36     'Koha::Exceptions::Preservation::ItemNotInWaitingList' => {
37         isa         => 'Koha::Exceptions::Preservation',
38         description => "Cannot add item to train, it is not in the waiting list",
39     },
40     'Koha::Exceptions::Preservation::ItemNotFound' => {
41         isa         => 'Koha::Exceptions::Preservation',
42         description => "Cannot add item to train, the item does not exist",
43     },
44 );
45
46 sub full_message {
47     my $self = shift;
48
49     my $msg = $self->message;
50
51     unless ( $msg ) {
52         if ( $self->isa('Koha::Exceptions::Preservation::MissingSettings') ) {
53             $msg = sprintf("The following parameter settings is required: %s", $self->parameter );
54         }
55     }
56
57     return $msg;
58 }
59
60 =head1 NAME
61
62 Koha::Exceptions::Preservation - Exception class for the preservation module
63
64 =head1 Exceptions
65
66 =head2 Koha::Exceptions::Preservation
67
68 Generic Preservation exception
69
70 =head2 Koha::Exceptions::Preservation::MissingSettings
71
72 Exception to be used when the preservation module is not configured correctly
73 and a setting is missing
74
75 =head1 Class methods
76
77 =head2 full_message
78
79 Overloaded method for exception stringifying.
80
81 =cut
82
83 1;