File Coverage

blib/lib/Maven/Xml/Pom.pm
Criterion Covered Total %
statement 7 9 77.7
branch n/a
condition n/a
subroutine 3 3 100.0
pod n/a
total 10 12 83.3


line stmt bran cond sub pod time code
1 1     1   13060 use strict;
  1         2  
  1         24  
2 1     1   3 use warnings;
  1         1  
  1         44  
3              
4             package Maven::Xml::Pom;
5             $Maven::Xml::Pom::VERSION = '1.13';
6             # ABSTRACT: Maven Pom element
7             # PODNAME: Maven::Xml::Pom
8              
9 1     1   313 use Maven::Xml::Common::Configuration;
  0            
  0            
10             use Maven::Xml::Common::Repository;
11             use Maven::Xml::Pom::BaseBuild;
12             use Maven::Xml::Pom::Build;
13             use Maven::Xml::Pom::CiManagement;
14             use Maven::Xml::Pom::Contributor;
15             use Maven::Xml::Pom::Dependencies;
16             use Maven::Xml::Pom::DependencyManagement;
17             use Maven::Xml::Pom::Developer;
18             use Maven::Xml::Pom::DistributionManagement;
19             use Maven::Xml::Pom::IssueManagement;
20             use Maven::Xml::Pom::License;
21             use Maven::Xml::Pom::MailingList;
22             use Maven::Xml::Pom::Organization;
23             use Maven::Xml::Pom::Parent;
24             use Maven::Xml::Pom::Profile;
25             use Maven::Xml::Common::Properties;
26             use Maven::Xml::Pom::Reporting;
27             use Maven::Xml::Pom::Scm;
28              
29             use parent qw(Maven::Xml::XmlFile);
30             __PACKAGE__->follow_best_practice;
31             __PACKAGE__->mk_ro_accessors(
32             qw(
33             artifactId
34             build
35             dependencies
36             dependencyManagement
37             description
38             developers
39             distributionManagement
40             ciManagement
41             contributors
42             groupId
43             inceptionYear
44             issueManagement
45             licenses
46             mailingLists
47             modelVersion
48             modules
49             name
50             organization
51             packaging
52             parent
53             pluginRepositories
54             properties
55             profiles
56             repositories
57             scm
58             url
59             version
60             )
61             );
62              
63             sub _add_value {
64             my ( $self, $name, $value ) = @_;
65              
66             return if ( $name eq 'contributors' );
67             return if ( $name eq 'developers' );
68             return if ( $name eq 'licenses' );
69             return if ( $name eq 'modules' );
70             return if ( $name eq 'mailingLists' );
71             return if ( $name eq 'pluginRepositories' );
72             return if ( $name eq 'profiles' );
73             return if ( $name eq 'project' );
74             return if ( $name eq 'repositories' );
75              
76             if ( $name eq 'contributor' ) {
77             push( @{ $self->{contributors} }, $value );
78             }
79             elsif ( $name eq 'developer' ) {
80             push( @{ $self->{developers} }, $value );
81             }
82             elsif ( $name eq 'license' ) {
83             push( @{ $self->{licenses} }, $value );
84             }
85             elsif ( $name eq 'module' ) {
86             push( @{ $self->{modules} }, $value );
87             }
88             elsif ( $name eq 'mailingList' ) {
89             push( @{ $self->{mailingLists} }, $value );
90             }
91             elsif ( $name eq 'pluginRepository' ) {
92             push( @{ $self->{pluginRepositories} }, $value );
93             }
94             elsif ( $name eq 'profile' ) {
95             push( @{ $self->{profiles} }, $value );
96             }
97             elsif ( $name eq 'repository' ) {
98             push( @{ $self->{repositories} }, $value );
99             }
100             else {
101             $self->Maven::Xml::XmlNodeParser::_add_value( $name, $value );
102             }
103             }
104              
105             sub _get_parser {
106             my ( $self, $name ) = @_;
107             if ( $name eq 'build' ) {
108             return Maven::Xml::Pom::Build->new();
109             }
110             elsif ( $name eq 'ciManagement' ) {
111             return Maven::Xml::Pom::CiManagement->new();
112             }
113             elsif ( $name eq 'contributor' ) {
114             return Maven::Xml::Pom::Contributor->new();
115             }
116             elsif ( $name eq 'dependencies' ) {
117             return Maven::Xml::Pom::Dependencies->new();
118             }
119             elsif ( $name eq 'developer' ) {
120             return Maven::Xml::Pom::Developer->new();
121             }
122             elsif ( $name eq 'distributionManagement' ) {
123             return Maven::Xml::Pom::DistributionManagement->new();
124             }
125             elsif ( $name eq 'issueManagement' ) {
126             return Maven::Xml::Pom::IssueManagement->new();
127             }
128             elsif ( $name eq 'license' ) {
129             return Maven::Xml::Pom::License->new();
130             }
131             elsif ( $name eq 'mailingList' ) {
132             return Maven::Xml::Pom::MailingList->new();
133             }
134             elsif ( $name eq 'organization' ) {
135             return Maven::Xml::Pom::Organization->new();
136             }
137             elsif ( $name eq 'parent' ) {
138             return Maven::Xml::Pom::Parent->new();
139             }
140             elsif ( $name eq 'pluginRepository' ) {
141             return Maven::Xml::Common::Repository->new();
142             }
143             elsif ( $name eq 'prerequisites' ) {
144             return Maven::Xml::Common::Configuration->new();
145             }
146             elsif ( $name eq 'properties' ) {
147             return Maven::Xml::Common::Properties->new();
148             }
149             elsif ( $name eq 'profile' ) {
150             return Maven::Xml::Pom::Profile->new();
151             }
152             elsif ( $name eq 'reporting' ) {
153             return Maven::Xml::Pom::Reporting->new();
154             }
155             elsif ( $name eq 'repository' ) {
156             return Maven::Xml::Common::Repository->new();
157             }
158             elsif ( $name eq 'scm' ) {
159             return Maven::Xml::Pom::Scm->new();
160             }
161             return $self->Maven::Xml::XmlNodeParser::_get_parser($name);
162             }
163              
164             1;
165              
166             __END__