File Coverage

blib/lib/Biblio/ILL/ISO/SupplyMediumInfoType.pm
Criterion Covered Total %
statement 22 38 57.8
branch 3 14 21.4
condition 1 3 33.3
subroutine 6 8 75.0
pod 3 3 100.0
total 35 66 53.0


line stmt bran cond sub pod time code
1             package Biblio::ILL::ISO::SupplyMediumInfoType;
2              
3             =head1 NAME
4              
5             Biblio::ILL::ISO::SupplyMediumInfoType
6              
7             =cut
8              
9 4     4   635 use Biblio::ILL::ISO::ILLASNtype;
  4         6  
  4         97  
10 4     4   2284 use Biblio::ILL::ISO::SupplyMediumType;
  4         13  
  4         110  
11 4     4   23 use Biblio::ILL::ISO::ILLString;
  4         8  
  4         83  
12              
13 4     4   21 use Carp;
  4         8  
  4         309  
14              
15             =head1 VERSION
16              
17             Version 0.01
18              
19             =cut
20              
21             our $VERSION = '0.01';
22             #---------------------------------------------------------------------------
23             # Mods
24             # 0.01 - 2003.07.15 - original version
25             #---------------------------------------------------------------------------
26              
27             =head1 DESCRIPTION
28              
29             Biblio::ILL::ISO::SupplyMediumInfoType is a derivation of Biblio::ILL::ISO::ILLASNtype.
30              
31             =head1 USES
32              
33             Biblio::ILL::ISO::SupplyMediumType
34             Biblio::ILL::ISO::ILLString
35              
36             =head1 USED IN
37              
38             Biblio::ILL::ISO::SupplyMediumInfoTypeSequence
39              
40             =cut
41              
42 4     4   1685 BEGIN{@ISA = qw ( Biblio::ILL::ISO::ILLASNtype );} # inherit from ILLASNtype
43              
44             =head1 FROM THE ASN DEFINITION
45            
46             Supply-Medium-Info-Type ::= EXPLICIT SEQUENCE {
47             supply-medium-type [0] IMPLICIT Supply-Medium-Type,
48             medium-characteristics [1] ILL-String OPTIONAL
49             }
50              
51             =cut
52              
53             =head1 METHODS
54              
55             =cut
56              
57             #---------------------------------------------------------------
58             #
59             #---------------------------------------------------------------
60             =head1
61              
62             =head2 new( $supply_medium_type [, $medium_characteristics] )
63              
64             Creates a new SupplyMediumInfoType object.
65             Expects a supply-medium-type (Biblio::ILL::ISO::SupplyMediumType), and
66             (optionally) the medium-characteristics (Biblio::ILL::ISO::ILLString).
67              
68             =cut
69             sub new {
70 2     2 1 21 my $class = shift;
71 2         5 my $self = {};
72              
73 2 50       17 if (@_) {
74 2         405 my ($stype, $s) = @_;
75            
76 2 50       10 croak "missing SupplyMediumType" unless ($stype);
77              
78 2         27 $self->{"supply-medium-type"} = new Biblio::ILL::ISO::SupplyMediumType($stype);
79 2 50       15 $self->{"medium-characteristics"} = new Biblio::ILL::ISO::ILLString($s) if ($s);
80             }
81              
82 2   33     14 bless($self, ref($class) || $class);
83 2         7 return ($self);
84             }
85              
86              
87             #---------------------------------------------------------------
88             #
89             #---------------------------------------------------------------
90             =head1
91              
92             =head2 set( $supply_medium_type [, $medium_characteristics] )
93              
94             Sets the object's supply-medium-type (Biblio::ILL::ISO::SupplyMediumType), and
95             (optionally) medium-characteristics (Biblio::ILL::ISO::ILLString).
96              
97             =cut
98             sub set {
99 0     0 1   my $self = shift;
100 0           my ($stype, $s) = @_;
101            
102 0 0         croak "missing SupplyMediumType" unless ($stype);
103              
104 0           $self->{"supply-medium-type"} = new Biblio::ILL::ISO::SupplyMediumType($stype);
105 0 0         $self->{"medium-characteristics"} = new Biblio::ILL::ISO::ILLString($s) if ($s);
106            
107 0           return;
108             }
109              
110              
111             #---------------------------------------------------------------
112             #
113             #---------------------------------------------------------------
114             =head1
115              
116             =head2 from_asn($href)
117              
118             Given a properly formatted hash, builds the object.
119              
120             =cut
121             sub from_asn {
122 0     0 1   my $self = shift;
123 0           my $href = shift;
124              
125 0           foreach my $k (keys %$href) {
126             #print ref($self) . "...$k\n";
127              
128 0 0         if ($k =~ /^supply-medium-type$/) {
    0          
129 0           $self->{$k} = new Biblio::ILL::ISO::SupplyMediumType();
130 0           $self->{$k}->from_asn($href->{$k});
131              
132             } elsif ($k =~ /^medium-characteristics$/) {
133 0           $self->{$k} = new Biblio::ILL::ISO::ILLString();
134 0           $self->{$k}->from_asn($href->{$k});
135              
136             } else {
137 0           croak "invalid " . ref($self) . " element: [$k]";
138             }
139              
140             }
141 0           return $self;
142             }
143              
144             =head1 SEE ALSO
145              
146             See the README for system design notes.
147             See the parent class(es) for other available methods.
148              
149             For more information on Interlibrary Loan standards (ISO 10160/10161),
150             a good place to start is:
151              
152             http://www.nlc-bnc.ca/iso/ill/main.htm
153              
154             =cut
155              
156             =head1 AUTHOR
157              
158             David Christensen,
159              
160             =cut
161              
162              
163             =head1 COPYRIGHT AND LICENSE
164              
165             Copyright 2003 by David Christensen
166              
167             This library is free software; you can redistribute it and/or modify it
168             under the same terms as Perl itself.
169              
170             =cut
171              
172             1;