File Coverage

blib/lib/Biblio/ILL/ISO/ShippedServiceType.pm
Criterion Covered Total %
statement 19 20 95.0
branch 2 4 50.0
condition 1 3 33.3
subroutine 5 5 100.0
pod 1 1 100.0
total 28 33 84.8


line stmt bran cond sub pod time code
1             package Biblio::ILL::ISO::ShippedServiceType;
2              
3             =head1 NAME
4              
5             Biblio::ILL::ISO::ShippedServiceType
6              
7             =cut
8              
9 4     4   607 use Biblio::ILL::ISO::ILLASNtype;
  4         7  
  4         116  
10 4     4   36 use Biblio::ILL::ISO::ENUMERATED;
  4         8  
  4         79  
11              
12 4     4   23 use Carp;
  4         9  
  4         404  
13              
14             =head1 VERSION
15              
16             Version 0.01
17              
18             =cut
19              
20             our $VERSION = '0.01';
21             #---------------------------------------------------------------------------
22             # Mods
23             # 0.01 - 2003.07.15 - original version
24             #---------------------------------------------------------------------------
25              
26             =head1 DESCRIPTION
27              
28             Biblio::ILL::ISO::ShippedServiceType is a derivation of Biblio::ILL::ISO::ENUMERATED.
29              
30             =head1 USES
31              
32             None.
33              
34             =head1 USED IN
35              
36             Biblio::ILL::ISO::HistoryReport
37              
38             =cut
39              
40 4     4   708 BEGIN{@ISA = qw ( Biblio::ILL::ISO::ENUMERATED
41             Biblio::ILL::ISO::ILLASNtype );} # inherit from ILLASNtype
42              
43             =head1 FROM THE ASN DEFINITION
44            
45             Shipped-Service-Type ::= ILL-Service-Type -- (loan | copy-non-returnable)
46             -- subtype of ILL-Service-Type
47            
48             which is:
49             ILL-Service-Type ::= ENUMERATED {
50             loan (1),
51             copy-non-returnable (2),
52             locations (3),
53             estimate (4),
54             responder-specific (5)
55             }
56              
57             Basically, I'm cheating here... I just created a new ENUM type
58             rather than inherit from ILLServiceType and add some constraints.
59            
60             -David
61              
62             =cut
63              
64             =head1 METHODS
65              
66             =cut
67              
68             #---------------------------------------------------------------
69             #
70             #---------------------------------------------------------------
71             =head1
72              
73             =head2 new( $s )
74              
75             Creates a new ShippedServiceType object.
76             Valid paramaters are listed in the FROM THE ASN DEFINITION section
77             (e.g. "loan").
78              
79             =cut
80             sub new {
81 5     5 1 26 my $class = shift;
82 5         10 my $self = {};
83              
84 5         17 $self->{"ENUM_LIST"} = {"loan" => 1,
85             "copy-non-returnable" => 2
86             };
87              
88 5 50       38 if (@_) {
89 5         11 my $s = shift;
90            
91 5 50       22 if ( exists $self->{"ENUM_LIST"}->{$s} ) {
92 5         12 $self->{"ENUMERATED"} = $self->{"ENUM_LIST"}->{$s};
93             } else {
94 0         0 croak "invalid ShippedServiceType: [$s]";
95             }
96             }
97              
98 5   33     26 bless($self, ref($class) || $class);
99 5         15 return ($self);
100             }
101              
102             =head1 SEE ALSO
103              
104             See the README for system design notes.
105             See the parent class(es) for other available methods.
106              
107             For more information on Interlibrary Loan standards (ISO 10160/10161),
108             a good place to start is:
109              
110             http://www.nlc-bnc.ca/iso/ill/main.htm
111              
112             =cut
113              
114             =head1 AUTHOR
115              
116             David Christensen,
117              
118             =cut
119              
120              
121             =head1 COPYRIGHT AND LICENSE
122              
123             Copyright 2003 by David Christensen
124              
125             This library is free software; you can redistribute it and/or modify it
126             under the same terms as Perl itself.
127              
128             =cut
129              
130             1;