File Coverage

blib/lib/XML/Mini/Node.pm
Criterion Covered Total %
statement 33 62 53.2
branch 8 30 26.6
condition 1 3 33.3
subroutine 7 10 70.0
pod 4 6 66.6
total 53 111 47.7


line stmt bran cond sub pod time code
1             package XML::Mini::Node;
2 10     10   54 use strict;
  10         22  
  10         396  
3             $^W = 1;
4 10     10   71 use XML::Mini;
  10         19  
  10         218  
5 10     10   55 use XML::Mini::TreeComponent;
  10         16  
  10         229  
6              
7 10     10   48 use vars qw ( $VERSION @ISA );
  10         26  
  10         10885  
8              
9             push @ISA, qw ( XML::Mini::TreeComponent );
10             $VERSION = '1.36';
11              
12             sub new
13             {
14 597     597 0 661 my $class = shift;
15 597         653 my $value = shift;
16            
17 597         1154 my $self = {};
18 597   33     2627 bless $self, ref $class || $class;
19            
20 597 50       1166 if (defined ($value))
21             {
22 597 50       1098 if ($XML::Mini::IgnoreWhitespaces)
23             {
24 597         3915 $value =~ s/^\s*(.*?)\s*$/$1/;
25             }
26            
27 597 100       1272 if ($XML::Mini::AutoEscapeEntities)
28             {
29 592         1823 $value = XML::Mini->escapeEntities($value);
30             }
31            
32 597 50       1190 if ($XML::Mini::Debug)
33             {
34 0         0 XML::Mini->Log("Setting value of node to '$value'");
35             }
36            
37 597         1648 $self->{'_contents'} = $value;
38             }
39 597         1462 return $self;
40             }
41              
42             sub getValue
43             {
44 121     121 1 136 my $self = shift;
45 121 50       233 if ($XML::Mini::Debug)
46             {
47 0         0 XML::Mini->Log("Returning value of node as '" . $self->{'_contents'} . "'");
48             }
49 121         559 return $self->{'_contents'};
50             }
51              
52             sub text
53             {
54 0     0 1 0 my $self = shift;
55 0         0 my $setToPrim = shift;
56 0         0 my $setToAlt = shift;
57            
58 0 0       0 my $setTo = defined ($setToPrim) ? $setToPrim : $setToAlt;
59            
60 0 0       0 if (defined ($setTo))
61             {
62 0 0       0 if ($XML::Mini::IgnoreWhitespaces)
63             {
64 0         0 $setTo =~ s/^\s*(.*?)\s*$/$1/;
65             }
66            
67 0 0       0 if ($XML::Mini::AutoEscapeEntities)
68             {
69 0         0 $setTo = XML::Mini->escapeEntities($setTo);
70             }
71            
72 0 0       0 if ($XML::Mini::Debug)
73             {
74 0         0 XML::Mini->Log("Setting text of node to '$setTo'");
75             }
76            
77 0         0 $self->{'_contents'} = $setTo;
78             }
79 0         0 return $self->{'_contents'};
80             }
81              
82             sub numeric
83             {
84 0     0 1 0 my $self = shift;
85 0         0 my $setToPrim = shift;
86 0         0 my $setToAlt = shift;
87            
88 0 0       0 my $setTo = defined ($setToPrim) ? $setToPrim : $setToAlt;
89            
90 0 0       0 if (defined $setTo)
91             {
92 0 0       0 if ($setTo =~ m/^\s*[Ee\d\.\+-]+\s*$/)
93             {
94 0         0 return $self->text($setTo);
95             } else {
96 0         0 XML::Mini->Error("Node::numeric() Must pass a NUMERIC value to set ($setTo)");
97             }
98             }
99            
100 0         0 return $self->{'_contents'};
101             }
102              
103             sub toString
104             {
105 88     88 1 103 my $self = shift;
106 88         91 my $depth = shift;
107            
108 88 50       162 if ($XML::Mini::Debug)
109             {
110 0         0 XML::Mini->Log("Node::toString() call with depth $depth");
111             }
112              
113 88 50       318 if ($depth == $XML::Mini::NoWhiteSpaces)
114             {
115 0         0 return $self->toStringNoWhiteSpaces();
116            
117             }
118            
119             #my $spaces = $self->_spaceStr($depth);
120              
121             #my $retStr; = $spaces;
122 88         149 my $retStr = $self->{'_contents'};
123             #$retStr =~ s/\n\s*/\n$spaces/smg;
124              
125 88         240 return $retStr;
126             }
127              
128             sub toStringNoWhiteSpaces
129             {
130 0     0 0   my $self = shift;
131 0           my $retStr = "$self->{'_contents'}";
132 0           return $retStr;
133             }
134              
135             1;
136              
137             __END__