import SOAP-WSDL 2.00_20 from CPAN

git-cpan-module:   SOAP-WSDL
git-cpan-version:  2.00_20
git-cpan-authorid: MKUTTER
git-cpan-file:     authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00_20.tar.gz
This commit is contained in:
Martin Kutter
2009-12-12 19:48:05 -08:00
committed by Michael G. Schwern
parent 3d11524449
commit fa4d5dd884
20 changed files with 368 additions and 322 deletions
+13 -7
View File
@@ -24,9 +24,10 @@ sub BUILD {
sub generate {
my $self = shift;
$self->generate_typelib();
$self->generate_interface();
$self->generate_typemap();
my $opt = shift;
$self->generate_typelib( $opt );
$self->generate_interface( $opt );
$self->generate_typemap( $opt );
}
sub generate_typelib {
@@ -54,17 +55,22 @@ sub generate_interface {
next if not $port->first_address;
next if not $port->first_address->isa('SOAP::WSDL::SOAP::Address');
my $port_name = $port->get_name;
$port_name =~s{ \A .+\. }{}xms;
my $output = $arg_ref->{ output }
? $arg_ref->{ output }
: $self->_generate_filename( $self->get_interface_prefix(), $service->get_name(), $port->get_name );
: $self->_generate_filename(
$self->get_interface_prefix(),
$service->get_name(),
$port_name,
);
$self->_process('Interface.tt',
{
service => $service,
port => $port,
NO_POD => $arg_ref->{ NO_POD } ? 1 : 0 ,
},
$output);
},
$output, binmode => ':utf8');
}
}
}
@@ -1,16 +1,16 @@
package [% interface_prefix %]::[% service.get_name %]::[% port.get_name %];
package [% interface_prefix %]::[% service.get_name.replace('\.', '::') %]::[% port.get_name.replace('^.+\.','') %];
use strict;
use warnings;
use Class::Std::Storable;
use base qw(SOAP::WSDL::Client::Base);
# only load if it hasn't been loaded before
require [% typemap_prefix %]::[% service.get_name %]
if not [% typemap_prefix %]::[% service.get_name %]->can('get_class');
require [% typemap_prefix %]::[% service.get_name.replace('\.', '::') %]
if not [% typemap_prefix %]::[% service.get_name.replace('\.', '::') %]->can('get_class');
sub START {
$_[0]->set_proxy('[% port.first_address.get_location %]') if not $_[2]->{proxy};
$_[0]->set_class_resolver('[% typemap_prefix %]::[% service.get_name %]')
$_[0]->set_class_resolver('[% typemap_prefix %]::[% service.get_name.replace('\.', '::') %]')
if not $_[2]->{class_resolver};
}
@@ -7,7 +7,9 @@ ELSIF (complexType.get_variety == 'group');
THROW NOT_IMPLEMENTED, "${ element.get_name } - complexType group not implemented yet";
ELSIF (complexType.get_variety == 'choice');
INCLUDE complexType/all.tt(complexType = complexType);
ELSIF (complexType.get_variety);
THROW NOT_IMPLEMENTED, "Unknown variety ${ complexType.get_variety } in ${ complexType.get_name } (${ element.get_name })";
ELSE;
THROW NOT_IMPLEMENTED, "Unknown variety ${ complexType.get_variety }";
# There's no variety - might be empty complexType
END;
%]