File Coverage

blib/lib/XML/XPathEngine/Literal.pm
Criterion Covered Total %
statement 26 45 57.7
branch 0 4 0.0
condition n/a
subroutine 12 19 63.1
pod 3 14 21.4
total 41 82 50.0


line stmt bran cond sub pod time code
1             # $Id: Literal.pm,v 1.11 2001/03/16 11:10:08 matt Exp $
2              
3             package XML::XPathEngine::Literal;
4 2     2   10 use XML::XPathEngine::Boolean;
  2         5  
  2         48  
5 2     2   10 use XML::XPathEngine::Number;
  2         11  
  2         41  
6 2     2   12 use strict;
  2         4  
  2         62  
7 2     2   11 use Carp;
  2         2  
  2         255  
8              
9             use overload
10 2         18 '""' => \&value,
11 2     2   3966 'cmp' => \&cmp;
  2         2456  
12              
13             sub new {
14 29     29 1 48 my $class = shift;
15 29         72 my ($string) = @_;
16            
17             # $string =~ s/"/"/g;
18             # $string =~ s/'/'/g;
19            
20 29         188 bless \$string, $class;
21             }
22              
23             sub as_string {
24 0     0 0 0 my $self = shift;
25 0         0 my $string = $$self;
26 0         0 $string =~ s/'/'/g;
27 0         0 return "'$string'";
28             }
29              
30             sub as_xml {
31 0     0 0 0 my $self = shift;
32 0         0 my $string = $$self;
33 0         0 return "$string\n";
34             }
35              
36             sub value {
37 115     115 1 518 my $self = shift;
38 115         443 $$self;
39             }
40              
41             sub value_as_number {
42 0     0 0 0 my $self = shift;
43 0         0 warn "numifying '", $$self, "' to '", +$$self, "'\n";
44 0         0 +$$self;
45             }
46              
47             sub cmp {
48 0     0 1 0 my $self = shift;
49 0         0 my ($cmp, $swap) = @_;
50 0 0       0 if ($swap) {
51 0         0 return $cmp cmp $$self;
52             }
53 0         0 return $$self cmp $cmp;
54             }
55              
56             sub evaluate {
57 112     112 0 140 my $self = shift;
58 112         234 $self;
59             }
60              
61             sub to_boolean {
62 0     0 0 0 my $self = shift;
63 0 0       0 return (length($$self) > 0) ? XML::XPathEngine::Boolean->True : XML::XPathEngine::Boolean->False;
64             }
65              
66 0     0 0 0 sub to_number { return XML::XPathEngine::Number->new($_[0]->value); }
67 0     0 0 0 sub to_literal { return $_[0]; }
68              
69 53     53 0 118 sub string_value { return $_[0]->value; }
70              
71 1     1 0 203 sub getChildNodes { croak "cannot get child nodes of a literal"; }
72 1     1 0 132 sub getAttributes { croak "cannot get attributes of a literal"; }
73 1     1 0 135 sub getParentNode { croak "cannot get parent node of a literal"; }
74              
75             1;
76             __END__