File Coverage

blib/lib/SOAP/WSDL/XSD/Typelib/Builtin/anyType.pm
Criterion Covered Total %
statement 29 29 100.0
branch 19 22 86.3
condition n/a
subroutine 11 11 100.0
pod 0 6 0.0
total 59 68 86.7


line stmt bran cond sub pod time code
1             package SOAP::WSDL::XSD::Typelib::Builtin::anyType;
2 85     85   1401 use strict;
  85         175  
  85         2939  
3 85     85   431 use warnings;
  85         148  
  85         2548  
4 85     85   1385 use Class::Std::Fast::Storable constructor => 'none';
  85         32362  
  85         794  
5              
6             our $VERSION = $SOAP::WSDL::VERSION;
7              
8 11     11 0 1742 sub get_xmlns { 'http://www.w3.org/2001/XMLSchema' };
9              
10             # start_tag creates a XML start tag either for a XML element or a attribute.
11             # The method is highly optimized for performance:
12             # - operates on @_
13             # - uses no private variables
14             # - uses no blocks
15              
16             sub start_tag {
17             # return empty string if no second argument ($opt) or no name
18 124 100   124 0 315 return q{} if (! $#_);
19 123 100       765 return q{} if (! exists $_[1]->{ name });
20             # return attribute start if it's an attribute
21 46 100       151 return qq{ $_[1]->{name}="} if $_[1]->{ attr };
22             # return with xsi:nil="true" if it is nil
23             return join
24             q{} ,
25             "<$_[1]->{ name }" ,
26             (defined $_[1]->{ xmlns }) ? qq{ xmlns="$_[1]->{ xmlns }"} : (),
27             $_[0]->serialize_attr($_[1]) ,
28             q{ xsi:nil="true"/>}
29 42 50       126 if ($_[1]->{ nil });
    100          
30             # return "empty" start tag if it's empty
31             return join
32             q{},
33             "<$_[1]->{ name }",
34             (defined $_[1]->{ xmlns }) ? qq{ xmlns="$_[1]->{ xmlns }"} : (),
35             $_[0]->serialize_attr($_[1]) ,
36             '/>'
37 41 50       127 if ($_[1]->{ empty });
    100          
38             # return XML element start tag
39             return join
40             q{},
41             "<$_[1]->{ name }",
42 39 50       236 (defined $_[1]->{ xmlns }) ? qq{ xmlns="$_[1]->{ xmlns }"} : (),
43             , $_[0]->serialize_attr($_[1])
44             , '>';
45             }
46              
47             # start_tag creates a XML end tag either for a XML element or a attribute.
48             # The method is highly optimized for performance:
49             # - operates on @_
50             # - uses no private variables
51             # - uses no blocks
52             sub end_tag {
53             # return empty string if no second argument ($opt) or no name
54 112 100   112 0 417 return q{} if (! $#_);
55 100 100       492 return q{} if (! exists $_[1]->{ name });
56 42 100       149 return q{"} if $_[1]->{ attr };
57 38         296 return "{name}>";
58             };
59              
60 54     54 0 207 sub serialize_attr {};
61              
62             # sub serialize { q{} };
63              
64             sub serialize_qualified :STRINGIFY {
65 15     15 0 6313 return $_[0]->serialize( { qualified => 1 } );
66 85     85   53669 }
  85         196  
  85         968  
67              
68             sub as_list :ARRAYIFY {
69 2     2 0 538 return [ $_[0] ];
70 85     85   23482 }
  85         163  
  85         433  
71              
72             Class::Std::initialize(); # make :STRINGIFY overloading work
73              
74             1;
75