package ssl011407t1;
# Generated by SOAP::Lite (v0.68) for Perl -- soaplite.com
# Copyright (C) 2000-2006 Paul Kulchenko, Byrne Reese
# -- generated at [Fri Jan 12 15:38:14 2007]
# -- generated from http://ssl.com:9080/NonSSL/wsdl/com/ssl/NonSSL.wsdl
my %methods = (
NewOperationRequest => {
    #endpoint => 'https://ssl.com/ssl/services/sslSOAP',
    endpoint => 'https://IBM-SOZGIG1GH90.us.ad.lfg.com/ssl/services/sslSOAP',
    soapaction => 'https://ssl.com:9443/ssl/NewOperation',
    namespace => 'https://ssl.com:9443/ssl/',
    parameters => [
      SOAP::Data->new(name => 'NewOperationRequest', type => 'xsd:string', attr => {}),
    ], # end parameters
  }, # end NewOperationRequest
); # end my %methods

#use SOAP::Lite;
use Exporter;
use Carp ();

use vars qw(@ISA $AUTOLOAD @EXPORT_OK %EXPORT_TAGS);
@ISA = qw(Exporter SOAP::Lite);
@EXPORT_OK = (keys %methods);
%EXPORT_TAGS = ('all' => [@EXPORT_OK]);
# ---- Beginning of GSI Magic ----
#my $GSIPROXY = (defined $ENV{X509_USER_PROXY})?$ENV{X509_USER_PROXY}:"/tmp/x509up_u$<";
#$ENV{HTTPS_CA_DIR} = (defined $ENV{X509_CERT_DIR})?$ENV{X509_CERT_DIR}:"/web/webpages/groupnettest/certs";
#$ENV{HTTPS_CA_FILE} = $GSIPROXY;
#$ENV{HTTPS_CERT_FILE} = '/web/webpages/groupnettest/certs/badcerts/usercert.pem';
$ENV{HTTPS_CERT_FILE} = '/web/webpages/groupnettest/certs/usercert.pem';

#$ENV{HTTPS_KEY_FILE}  = '/web/webpages/groupnettest/certs/userkey.pem';
# ---- End of GSI Magic ----

# Uncomment next line for SSL debug info
$ENV{HTTPS_DEBUG} = 1;

# force SSLv3, If you want
$ENV{HTTPS_VERSION} = '3';

sub _call {
  my ($self, $method) = (shift, shift);
  my $name = UNIVERSAL::isa($method => 'SOAP::Data') ? $method->name : $method;
  my %method = %{$methods{$name}};
  $self->proxy($method{endpoint} || Carp::croak "No server address (proxy) specified") 
    unless $self->proxy;
  my @templates = @{$method{parameters}};
  my @parameters = ();
  foreach my $param (@_) {
    if (@templates) {
      my $template = shift @templates;
      my ($prefix,$typename) = SOAP::Utils::splitqname($template->type);
      my $method = 'as_'.$typename;
      # TODO - if can('as_'.$typename) {...}
      my $result = $self->serializer->$method($param, $template->name, $template->type, $template->attr);
      push(@parameters, $template->value($result->[2]));
    } else {
      push(@parameters, $param);
    }
  }
  $self->endpoint($method{endpoint})
       ->ns($method{namespace})
       ->on_action(sub{qq!"$method{soapaction}"!});
  $self->serializer->register_ns("http://schemas.xmlsoap.org/wsdl/","wsdl");
  $self->serializer->register_ns("http://www.w3.org/2001/XMLSchema","xsd");
  $self->serializer->register_ns("https://ssl.com:9443/ssl/","tns");
  $self->serializer->register_ns("http://schemas.xmlsoap.org/soap/http/","soap");
  
  $self->serializer->encodingStyle('');
  my $meth = SOAP::Data->name($method)->attr({xmlns => $method{namespace}});
  my $som = $self->SUPER::call($meth);

  
  if ($self->want_som) {
      return $som;
  }
  UNIVERSAL::isa($som => 'SOAP::SOM') ? wantarray ? $som->paramsall : $som->result : $som;
}

sub BEGIN {
  no strict 'refs';
  for my $method (qw(want_som)) {
    my $field = '_' . $method;
    *$method = sub {
      my $self = shift->new;
      @_ ? ($self->{$field} = shift, return $self) : return $self->{$field};
    }
  }
}
no strict 'refs';
for my $method (@EXPORT_OK) {
  my %method = %{$methods{$method}};
  *$method = sub {
    my $self = UNIVERSAL::isa($_[0] => __PACKAGE__) 
      ? ref $_[0] ? shift # OBJECT
                  # CLASS, either get self or create new and assign to self
                  : (shift->self || __PACKAGE__->self(__PACKAGE__->new))
      # function call, either get self or create new and assign to self
      : (__PACKAGE__->self || __PACKAGE__->self(__PACKAGE__->new));
    $self->_call($method, @_);
  }
}

sub AUTOLOAD {
  my $method = substr($AUTOLOAD, rindex($AUTOLOAD, '::') + 2);
  return if $method eq 'DESTROY' || $method eq 'want_som';
  die "Unrecognized method '$method'. List of available method(s): @EXPORT_OK\n";
}

1;
