File Coverage

blib/lib/Geo/StormTracker/Advisory.pm
Criterion Covered Total %
statement 9 68 13.2
branch 0 8 0.0
condition 0 6 0.0
subroutine 3 19 15.7
pod 14 15 93.3
total 26 116 22.4


line stmt bran cond sub pod time code
1             package Geo::StormTracker::Advisory;
2 1     1   5 use Carp;
  1         1  
  1         65  
3 1     1   5 use strict;
  1         1  
  1         38  
4 1     1   4 use vars qw($VERSION);
  1         2  
  1         605  
5              
6             $VERSION = '0.02';
7              
8             #----------------------------------------------------------------------
9             sub new {
10 0     0 1   my $HR={};
11 0           bless $HR,'Geo::StormTracker::Advisory';
12 0           return $HR;
13             }#new
14             #---------------------------------------------------------------------
15             sub stringify {
16 0     0 1   my $self=shift;
17              
18 0           my $head=$self->_muck_with_hash('header_string');
19 0           my $body=$self->_muck_with_hash('body_string');
20              
21 0 0 0       if (defined($head) and defined($body)){
22 0           return $head."\n".$body;
23             }
24             else {
25 0           return undef;
26             }
27             }#stringify
28             #---------------------------------------------------------------------
29             sub stringify_header {
30 0     0 1   my $self=shift;
31 0           my $header_string=shift;
32              
33 0           return $self->_muck_with_hash('header_string',$header_string);
34             }#stringify_header
35             #---------------------------------------------------------------------
36             sub stringify_body {
37 0     0 1   my $self=shift;
38 0           my $body_string=shift;
39              
40 0           return $self->_muck_with_hash('body_string',$body_string);
41             }#stringify_body
42             #---------------------------------------------------------------------
43             sub name {
44 0     0 1   my $self=shift;
45 0           my $name=shift;
46              
47 0           return $self->_muck_with_hash('name',$name);
48             }#name
49             #---------------------------------------------------------------------
50             sub epoch_date {
51 0     0 1   my $self=shift;
52 0           my $epoch_date=shift;
53              
54 0           return $self->_muck_with_hash('epoch_date',$epoch_date);
55             }#epoch_date
56             #---------------------------------------------------------------------
57             sub event_type {
58 0     0 0   my $self=shift;
59 0           my $event_type=shift;
60              
61 0           return $self->_muck_with_hash('event_type',$event_type);
62             }#event_type
63             #---------------------------------------------------------------------
64             sub advisory_number {
65 0     0 1   my $self=shift;
66 0           my $advisory_number=shift;
67              
68 0           return $self->_muck_with_hash('advisory_number',$advisory_number);
69             }#advisory_number
70             #---------------------------------------------------------------------
71             sub is_final {
72 0     0 1   my $self=shift;
73 0           my $is_final=shift;
74              
75 0           return $self->_muck_with_hash('is_final',$is_final);
76             }#is_final
77             #---------------------------------------------------------------------
78             sub release_time {
79 0     0 1   my $self=shift;
80 0           my $release_time=shift;
81              
82 0           return $self->_muck_with_hash('release_time',$release_time);
83             }#release_time
84             #---------------------------------------------------------------------
85             sub weather_service {
86 0     0 1   my $self=shift;
87 0           my $weather_service=shift;
88              
89 0           return $self->_muck_with_hash('weather_service',$weather_service);
90             }#weather_service
91             #---------------------------------------------------------------------
92             sub position {
93 0     0 1   my $self=shift;
94 0           my $position_AR=shift;
95              
96 0 0 0       if ((defined $position_AR) and ( ref($position_AR) ne 'ARRAY' )){
97 0           croak "position method expects an array reference when used as an assignment operator!\n";
98             }
99            
100 0           return $self->_muck_with_hash('position',$position_AR);
101             }#position
102             #---------------------------------------------------------------------
103             sub max_winds {
104 0     0 1   my $self=shift;
105 0           my $max_winds=shift;
106              
107 0           return $self->_muck_with_hash('max_winds',$max_winds);
108             }#max_winds
109             #---------------------------------------------------------------------
110             sub min_central_pressure {
111 0     0 1   my $self=shift;
112 0           my $min_central_pressure=shift;
113              
114 0           return $self->_muck_with_hash('min_central_pressure',$min_central_pressure);
115             }#min_central_pressure
116             #---------------------------------------------------------------------
117             #sub movement_toward {
118             # my $self=shift;
119             # my $movement_toward_AR=shift;
120             #
121             # if ((defined $movement_toward_AR) and (ref($movement_toward_AR) ne 'ARRAY')){
122             # croak "movement_toward method expects an array reference when used as an assignment operator!\n";
123             # }
124             #
125             # return $self->_muck_with_hash('movement_toward',$movement_toward_AR);
126             #}#movement_toward
127             #---------------------------------------------------------------------
128             sub wmo_header {
129 0     0 1   my $self=shift;
130 0           my $wmo_header=shift;
131              
132 0           return $self->_muck_with_hash('wmo_header',$wmo_header);
133             }#wmo_header
134             #---------------------------------------------------------------------
135             sub _muck_with_hash {
136 0     0     my $self=shift;
137 0           my $key=shift;
138 0           my $value=shift;
139              
140             #If called as an assignment
141 0 0         if (defined($value)){
142 0           $self->{$key}=$value;
143 0           return $self->{$key};
144             }
145             #Must have been called as a data request
146             else {
147 0 0         if (defined($self->{$key})){
148 0           return $self->{$key};
149             }
150             else {
151 0           return undef;
152             }#if/else
153             }#if/else
154             }#_muck_with_hash
155             #---------------------------------------------------------------------
156             1;
157             __END__