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__ |