line |
stmt |
bran |
cond |
sub |
pod |
time |
code |
1
|
|
|
|
|
|
|
package XML::NewsML_G2::AnyItem; |
2
|
|
|
|
|
|
|
|
3
|
18
|
|
|
18
|
|
9381
|
use Moose; |
|
18
|
|
|
|
|
40
|
|
|
18
|
|
|
|
|
99
|
|
4
|
18
|
|
|
18
|
|
107580
|
use namespace::autoclean; |
|
18
|
|
|
|
|
42
|
|
|
18
|
|
|
|
|
117
|
|
5
|
|
|
|
|
|
|
|
6
|
18
|
|
|
18
|
|
10488
|
use UUID::Tiny; |
|
18
|
|
|
|
|
243687
|
|
|
18
|
|
|
|
|
1697
|
|
7
|
18
|
|
|
18
|
|
486
|
use XML::NewsML_G2::Types; |
|
18
|
|
|
|
|
41
|
|
|
18
|
|
|
|
|
413
|
|
8
|
18
|
|
|
18
|
|
7323
|
use XML::NewsML_G2::Link; |
|
18
|
|
|
|
|
55
|
|
|
18
|
|
|
|
|
8720
|
|
9
|
|
|
|
|
|
|
|
10
|
|
|
|
|
|
|
has 'guid', isa => 'Str', is => 'ro', lazy => 1, builder => '_build_guid'; |
11
|
|
|
|
|
|
|
has 'doc_version', isa => 'Int', is => 'ro', default => '1'; |
12
|
|
|
|
|
|
|
has 'language', isa => 'Str', is => 'ro', required => 1; |
13
|
|
|
|
|
|
|
has 'nature', |
14
|
|
|
|
|
|
|
isa => 'XML::NewsML_G2::Types::Nature', |
15
|
|
|
|
|
|
|
is => 'ro', |
16
|
|
|
|
|
|
|
required => 1; |
17
|
|
|
|
|
|
|
has 'provider', isa => 'XML::NewsML_G2::Provider', is => 'ro', required => 1; |
18
|
|
|
|
|
|
|
has 'copyright_holder', isa => 'XML::NewsML_G2::Copyright_Holder', is => 'ro'; |
19
|
|
|
|
|
|
|
has 'usage_terms', isa => 'Str', is => 'rw'; |
20
|
|
|
|
|
|
|
|
21
|
|
|
|
|
|
|
has 'service', |
22
|
|
|
|
|
|
|
isa => 'XML::NewsML_G2::Service', |
23
|
|
|
|
|
|
|
is => 'ro', |
24
|
|
|
|
|
|
|
predicate => 'has_service'; |
25
|
|
|
|
|
|
|
has 'doc_status', isa => 'Str', is => 'ro', default => 'usable'; |
26
|
|
|
|
|
|
|
|
27
|
|
|
|
|
|
|
has 'note', isa => 'Str', is => 'rw'; |
28
|
|
|
|
|
|
|
has 'closing', isa => 'Str', is => 'rw'; |
29
|
|
|
|
|
|
|
|
30
|
|
|
|
|
|
|
has 'see_alsos', |
31
|
|
|
|
|
|
|
isa => 'XML::NewsML_G2::ArrayRefOfLinks', |
32
|
|
|
|
|
|
|
is => 'rw', |
33
|
|
|
|
|
|
|
default => sub { [] }, |
34
|
|
|
|
|
|
|
coerce => 1, |
35
|
|
|
|
|
|
|
traits => ['Array'], |
36
|
|
|
|
|
|
|
handles => { add_see_also => 'push' }; |
37
|
|
|
|
|
|
|
has 'derived_froms', |
38
|
|
|
|
|
|
|
isa => 'XML::NewsML_G2::ArrayRefOfLinks', |
39
|
|
|
|
|
|
|
is => 'rw', |
40
|
|
|
|
|
|
|
default => sub { [] }, |
41
|
|
|
|
|
|
|
coerce => 1, |
42
|
|
|
|
|
|
|
traits => ['Array'], |
43
|
|
|
|
|
|
|
handles => { add_derived_from => 'push' }; |
44
|
|
|
|
|
|
|
has 'processed_froms', |
45
|
|
|
|
|
|
|
isa => 'XML::NewsML_G2::ArrayRefOfLinks', |
46
|
|
|
|
|
|
|
is => 'rw', |
47
|
|
|
|
|
|
|
default => sub { [] }, |
48
|
|
|
|
|
|
|
coerce => 1, |
49
|
|
|
|
|
|
|
traits => ['Array'], |
50
|
|
|
|
|
|
|
handles => { add_processed_from => 'push' }; |
51
|
|
|
|
|
|
|
has 'evolved_froms', |
52
|
|
|
|
|
|
|
isa => 'XML::NewsML_G2::ArrayRefOfLinks', |
53
|
|
|
|
|
|
|
is => 'rw', |
54
|
|
|
|
|
|
|
default => sub { [] }, |
55
|
|
|
|
|
|
|
coerce => 1, |
56
|
|
|
|
|
|
|
traits => ['Array'], |
57
|
|
|
|
|
|
|
handles => { add_evolved_from => 'push' }; |
58
|
|
|
|
|
|
|
|
59
|
|
|
|
|
|
|
has 'embargo', isa => 'DateTime', is => 'rw'; |
60
|
|
|
|
|
|
|
has 'embargo_text', isa => 'Str', is => 'rw'; |
61
|
|
|
|
|
|
|
|
62
|
|
|
|
|
|
|
has 'indicators', |
63
|
|
|
|
|
|
|
isa => 'ArrayRef[Str]', |
64
|
|
|
|
|
|
|
is => 'rw', |
65
|
|
|
|
|
|
|
default => sub { [] }, |
66
|
|
|
|
|
|
|
traits => ['Array'], |
67
|
|
|
|
|
|
|
handles => { add_indicator => 'push' }; |
68
|
|
|
|
|
|
|
|
69
|
|
|
|
|
|
|
has 'timezone', is => 'ro', isa => 'Str', default => 'local'; |
70
|
|
|
|
|
|
|
|
71
|
|
|
|
|
|
|
sub _build_guid { |
72
|
0
|
|
|
0
|
|
0
|
return UUID::Tiny::create_uuid_as_string(); |
73
|
|
|
|
|
|
|
} |
74
|
|
|
|
|
|
|
|
75
|
|
|
|
|
|
|
sub _attr_zombie_lifter { |
76
|
4
|
|
|
4
|
|
9
|
my ( $self, $attr, $value ) = @_; |
77
|
|
|
|
|
|
|
|
78
|
4
|
|
|
|
|
8
|
my $adder = "add_$attr"; |
79
|
4
|
|
|
|
|
9
|
my $getter = $attr . 's'; |
80
|
4
|
|
|
|
|
82
|
warnings::warnif( 'deprecated', |
81
|
|
|
|
|
|
|
"$attr is deprecated - use $adder / $getter instead" ); |
82
|
|
|
|
|
|
|
|
83
|
4
|
100
|
|
|
|
1489
|
return defined $value ? $self->$adder($value) : $self->$getter->[0]; |
84
|
|
|
|
|
|
|
} |
85
|
|
|
|
|
|
|
|
86
|
|
|
|
|
|
|
sub see_also { |
87
|
2
|
|
|
2
|
0
|
2062
|
my ( $self, $value ) = @_; |
88
|
2
|
|
|
|
|
21
|
return $self->_attr_zombie_lifter( 'see_also', $value ); |
89
|
|
|
|
|
|
|
} |
90
|
|
|
|
|
|
|
|
91
|
|
|
|
|
|
|
sub derived_from { |
92
|
2
|
|
|
2
|
0
|
4239
|
my ( $self, $value ) = @_; |
93
|
2
|
|
|
|
|
5
|
return $self->_attr_zombie_lifter( 'derived_from', $value ); |
94
|
|
|
|
|
|
|
} |
95
|
|
|
|
|
|
|
|
96
|
|
|
|
|
|
|
__PACKAGE__->meta->make_immutable; |
97
|
|
|
|
|
|
|
|
98
|
|
|
|
|
|
|
1; |
99
|
|
|
|
|
|
|
__END__ |
100
|
|
|
|
|
|
|
|
101
|
|
|
|
|
|
|
=head1 NAME |
102
|
|
|
|
|
|
|
|
103
|
|
|
|
|
|
|
XML::NewsML_G2::AnyItem - base class for news and package items |
104
|
|
|
|
|
|
|
|
105
|
|
|
|
|
|
|
=head1 DESCRIPTION |
106
|
|
|
|
|
|
|
|
107
|
|
|
|
|
|
|
This module acts as a base class for NewsML-G2 news items and package |
108
|
|
|
|
|
|
|
items. For a documentation of the attributes it provides, please see |
109
|
|
|
|
|
|
|
L<XML::NewsML_G2::News_Item>. |
110
|
|
|
|
|
|
|
|
111
|
|
|
|
|
|
|
|
112
|
|
|
|
|
|
|
=head1 AUTHOR |
113
|
|
|
|
|
|
|
|
114
|
|
|
|
|
|
|
Philipp Gortan C<< <philipp.gortan@apa.at> >> |
115
|
|
|
|
|
|
|
|
116
|
|
|
|
|
|
|
=head1 LICENCE AND COPYRIGHT |
117
|
|
|
|
|
|
|
|
118
|
|
|
|
|
|
|
Copyright (c) 2014-2015, APA-IT. All rights reserved. |
119
|
|
|
|
|
|
|
|
120
|
|
|
|
|
|
|
See L<XML::NewsML_G2> for the license. |