File Coverage

blib/lib/Maven/Xml/Metadata.pm
Criterion Covered Total %
statement 9 9 100.0
branch n/a
condition n/a
subroutine 3 3 100.0
pod n/a
total 12 12 100.0


line stmt bran cond sub pod time code
1 5     5   14253 use strict;
  5         8  
  5         122  
2 5     5   17 use warnings;
  5         7  
  5         237  
3              
4             package Maven::Xml::Metadata;
5             $Maven::Xml::Metadata::VERSION = '1.13';
6             # ABSTRACT: Maven Metadata element
7             # PODNAME: Maven::Xml::Metadata
8              
9 5     5   427 use parent qw(Maven::Xml::XmlFile);
  5         231  
  5         36  
10             __PACKAGE__->follow_best_practice;
11             __PACKAGE__->mk_ro_accessors(qw(groupId artifactId version versioning plugins));
12              
13             sub _add_value {
14             my ( $self, $name, $value ) = @_;
15              
16             return if ( $name eq 'metadata' );
17             return if ( $name eq 'plugins' );
18              
19             if ( $name eq 'plugin' ) {
20             push( @{ $self->{plugins} }, $value );
21             }
22             else {
23             $self->Maven::Xml::XmlNodeParser::_add_value( $name, $value );
24             }
25             }
26              
27             sub _get_parser {
28             my ( $self, $name ) = @_;
29             if ( $name eq 'versioning' ) {
30             return Maven::Xml::Metadata::Versioning->new();
31             }
32             if ( $name eq 'plugin' ) {
33             return Maven::Xml::Metadata::Plugin->new();
34             }
35             return $self;
36             }
37              
38             package Maven::Xml::Metadata::Versioning;
39             $Maven::Xml::Metadata::Versioning::VERSION = '1.13';
40             use parent qw(Maven::Xml::XmlNodeParser);
41             __PACKAGE__->follow_best_practice;
42             __PACKAGE__->mk_ro_accessors(qw(lastUpdated latest release snapshot snapshotVersions versions));
43              
44             sub _add_value {
45             my ( $self, $name, $value ) = @_;
46              
47             return if ( $name eq 'versions' );
48             return if ( $name eq 'snapshotVersions' );
49              
50             if ( $name eq 'version' ) {
51             push( @{ $self->{versions} }, $value );
52             }
53             elsif ( $name eq 'snapshotVersion' ) {
54             push( @{ $self->{snapshotVersions} }, $value );
55             }
56             else {
57             $self->Maven::Xml::XmlNodeParser::_add_value( $name, $value );
58             }
59             }
60              
61             sub _get_parser {
62             my ( $self, $name ) = @_;
63             if ( $name eq 'snapshot' ) {
64             return Maven::Xml::Metadata::Snapshot->new();
65             }
66             if ( $name eq 'snapshotVersion' ) {
67             return Maven::Xml::Metadata::SnapshotVersion->new();
68             }
69             return $self;
70             }
71              
72             package Maven::Xml::Metadata::SnapshotVersion;
73             $Maven::Xml::Metadata::SnapshotVersion::VERSION = '1.13';
74             use parent qw(Maven::Xml::XmlNodeParser);
75             __PACKAGE__->follow_best_practice;
76             __PACKAGE__->mk_ro_accessors(qw(classifier extension value updated));
77              
78             package Maven::Xml::Metadata::Snapshot;
79             $Maven::Xml::Metadata::Snapshot::VERSION = '1.13';
80             use parent qw(Maven::Xml::XmlNodeParser);
81             __PACKAGE__->follow_best_practice;
82             __PACKAGE__->mk_ro_accessors(qw(timestamp buildNumber localCopy));
83              
84             package Maven::Xml::Metadata::Plugin;
85             $Maven::Xml::Metadata::Plugin::VERSION = '1.13';
86             use parent qw(Maven::Xml::XmlNodeParser);
87             __PACKAGE__->follow_best_practice;
88             __PACKAGE__->mk_ro_accessors(qw(name prefix artifactId));
89              
90             1;
91              
92             __END__