# http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/
# generated by wsdl2ruby
# changed so that classes are wrapped into module DevTools::RAA
# changed RaaServicePortType to RaaService class

require 'soap/rpc/driver'

module DevTools

  module RAA

    class Gem
      @@schema_type = "Gem"
      @@schema_ns = "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/"

      def id
        @id
      end

      def id=(value)
        @id = value
      end

      def category
        @category
      end

      def category=(value)
        @category = value
      end

      def owner
        @owner
      end

      def owner=(value)
        @owner = value
      end

      def project
        @project
      end

      def project=(value)
        @project = value
      end

      def updated
        @updated
      end

      def updated=(value)
        @updated = value
      end

      def created
        @created
      end

      def created=(value)
        @created = value
      end

      def initialize(id = nil,
                     category = nil,
                     owner = nil,
                     project = nil,
                     updated = nil,
                     created = nil)
        @id = id
        @category = category
        @owner = owner
        @project = project
        @updated = updated
        @created = created
      end
    end

    # http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/
    class Category
      @@schema_type = "Category"
      @@schema_ns = "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/"

      def major
        @major
      end

      def major=(value)
        @major = value
      end

      def minor
        @minor
      end

      def minor=(value)
        @minor = value
      end

      def initialize(major = nil,
                     minor = nil)
        @major = major
        @minor = minor
      end
    end

    # http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/
    class Owner
      @@schema_type = "Owner"
      @@schema_ns = "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/"

      def id
        @id
      end

      def id=(value)
        @id = value
      end

      def email
        @email
      end

      def email=(value)
        @email = value
      end

      def name
        @name
      end

      def name=(value)
        @name = value
      end

      def initialize(id = nil,
                     email = nil,
                     name = nil)
        @id = id
        @email = email
        @name = name
      end
    end

    # http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/
    class Project
      @@schema_type = "Project"
      @@schema_ns = "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/"

      def name
        @name
      end

      def name=(value)
        @name = value
      end

      def short_description
        @short_description
      end

      def short_description=(value)
        @short_description = value
      end

      def version
        @version
      end

      def version=(value)
        @version = value
      end

      def status
        @status
      end

      def status=(value)
        @status = value
      end

      def url
        @url
      end

      def url=(value)
        @url = value
      end

      def download
        @download
      end

      def download=(value)
        @download = value
      end

      def license
        @license
      end

      def license=(value)
        @license = value
      end

      def description
        @description
      end

      def description=(value)
        @description = value
      end

      def description_style
        @description_style
      end

      def description_style=(value)
        @description_style = value
      end

      def updated
        @updated
      end

      def updated=(value)
        @updated = value
      end

      def history
        @history
      end

      def history=(value)
        @history = value
      end

      def dependency
        @dependency
      end

      def dependency=(value)
        @dependency = value
      end

      def initialize(name = nil,
                     short_description = nil,
                     version = nil,
                     status = nil,
                     url = nil,
                     download = nil,
license = nil,
description = nil,
description_style = nil,
updated = nil,
history = nil,
dependency = nil)
        @name = name
        @short_description = short_description
        @version = version
        @status = status
        @url = url
        @download = download
        @license = license
        @description = description
        @description_style = description_style
        @updated = updated
        @history = history
        @dependency = dependency
      end
    end

    # http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/
    class ProjectDependency
      @@schema_type = "ProjectDependency"
      @@schema_ns = "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/"

      def project
        @project
      end

      def project=(value)
        @project = value
      end

      def version
        @version
      end

      def version=(value)
        @version = value
      end

      def description
        @description
      end

      def description=(value)
        @description = value
      end

      def initialize(project = nil,
                     version = nil,
                     description = nil)
        @project = project
        @version = version
        @description = description
      end
    end

    # http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/
    class GemArray < Array
      # Contents type should be dumped here...
      @@schema_type = "GemArray"
      @@schema_ns = "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/"
    end

    # http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/
    class OwnerArray < Array
      # Contents type should be dumped here...
      @@schema_type = "OwnerArray"
      @@schema_ns = "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/"
    end

    # http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/
    class ProjectArray < Array
      # Contents type should be dumped here...
      @@schema_type = "ProjectArray"
      @@schema_ns = "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/"
    end

    # http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/
    class ProjectDependencyArray < Array
      # Contents type should be dumped here...
      @@schema_type = "ProjectDependencyArray"
      @@schema_ns = "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/"
    end

    # http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/
    class StringArray < Array
      # Contents type should be dumped here...
      @@schema_type = "StringArray"
      @@schema_ns = "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/"
    end

    # http://xml.apache.org/xml-soap
    class Map < Array
      # Contents type should be dumped here...
      @@schema_type = "Map"
      @@schema_ns = "http://xml.apache.org/xml-soap"
    end


    class RaaService < SOAP::RPC::Driver
      MappingRegistry = ::SOAP::Mapping::Registry.new

      MappingRegistry.set(
                          DevTools::RAA::Gem,
                          ::SOAP::SOAPStruct,
                          ::SOAP::Mapping::Registry::TypedStructFactory,
                          { :type => XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Gem") }
                          )
      MappingRegistry.set(
                          DevTools::RAA::Category,
                          ::SOAP::SOAPStruct,
                          ::SOAP::Mapping::Registry::TypedStructFactory,
                          { :type => XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Category") }
                          )
      MappingRegistry.set(
                          DevTools::RAA::Owner,
                          ::SOAP::SOAPStruct,
                          ::SOAP::Mapping::Registry::TypedStructFactory,
                          { :type => XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Owner") }
                          )
      MappingRegistry.set(
                          DevTools::RAA::Project,
                          ::SOAP::SOAPStruct,
                          ::SOAP::Mapping::Registry::TypedStructFactory,
                          { :type => XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Project") }
                          )
      MappingRegistry.set(
                          DevTools::RAA::ProjectArray,
                          ::SOAP::SOAPArray,
                          ::SOAP::Mapping::Registry::TypedArrayFactory,
                          { :type => XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Project") }
                          )
      MappingRegistry.set(
                          DevTools::RAA::ProjectDependencyArray,
                          ::SOAP::SOAPArray,
                          ::SOAP::Mapping::Registry::TypedArrayFactory,
                          { :type => XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "ProjectDependency") }
                          )
      MappingRegistry.set(
                          DevTools::RAA::StringArray,
                          ::SOAP::SOAPArray,
                          ::SOAP::Mapping::Registry::TypedArrayFactory,
                          { :type => XSD::QName.new("http://www.w3.org/2001/XMLSchema", "string") }
                          )
      MappingRegistry.set(
                          DevTools::RAA::Map,
                          ::SOAP::SOAPArray,
                          ::SOAP::Mapping::Registry::TypedArrayFactory,
                          { :type => XSD::QName.new("http://www.w3.org/2001/XMLSchema", "anyType") }
                          )
      MappingRegistry.set(
                          DevTools::RAA::OwnerArray,
                          ::SOAP::SOAPArray,
                          ::SOAP::Mapping::Registry::TypedArrayFactory,
                          { :type => XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Owner") }
                          )
      MappingRegistry.set(
                          DevTools::RAA::ProjectDependency,
                          ::SOAP::SOAPStruct,
                          ::SOAP::Mapping::Registry::TypedStructFactory,
                          { :type => XSD::QName.new("http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "ProjectDependency") }
                          )
      Methods = [
        ["gem", "gem", [
            ["in", "name",
             [SOAP::SOAPString]],
            ["retval", "return",
             [::SOAP::SOAPStruct, "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Gem"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
        ["dependents", "dependents", [
            ["in", "name",
             [SOAP::SOAPString]],
            ["in", "version",
             [SOAP::SOAPString]],
            ["retval", "return",
             [::SOAP::SOAPArray, "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "ProjectDependency"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
        ["names", "names", [
            ["retval", "return",
             [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
        ["size", "size", [
            ["retval", "return",
             [SOAP::SOAPInt]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
        ["list_by_category", "list_by_category", [
            ["in", "major",
             [SOAP::SOAPString]],
            ["in", "minor",
             [SOAP::SOAPString]],
            ["retval", "return",
             [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
        ["tree_by_category", "tree_by_category", [
            ["retval", "return",
             [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "anyType"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
        ["list_recent_updated", "list_recent_updated", [
            ["in", "idx",
             [SOAP::SOAPInt]],
            ["retval", "return",
             [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
        ["list_recent_created", "list_recent_created", [
            ["in", "idx",
             [SOAP::SOAPInt]],
            ["retval", "return",
             [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
        ["list_updated_since", "list_updated_since", [
            ["in", "date",
             [SOAP::SOAPDateTime]],
            ["in", "idx",
             [SOAP::SOAPInt]],
            ["retval", "return",
             [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
        ["list_created_since", "list_created_since", [
            ["in", "date",
             [SOAP::SOAPDateTime]],
            ["in", "idx",
             [SOAP::SOAPInt]],
            ["retval", "return",
             [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
        ["list_by_owner", "list_by_owner", [
            ["in", "owner_id",
             [SOAP::SOAPInt]],
            ["retval", "return",
             [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
        ["search_name", "search_name", [
            ["in", "substring",
             [SOAP::SOAPString]],
            ["in", "idx",
             [SOAP::SOAPInt]],
            ["retval", "return",
             [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
        ["search_short_description", "search_short_description", [
            ["in", "substring",
             [SOAP::SOAPString]],
            ["in", "idx",
             [SOAP::SOAPInt]],
            ["retval", "return",
             [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
        ["search_owner", "search_owner", [
            ["in", "substring",
             [SOAP::SOAPString]],
            ["in", "idx",
             [SOAP::SOAPInt]],
            ["retval", "return",
             [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
        ["search_version", "search_version", [
            ["in", "substring",
             [SOAP::SOAPString]],
            ["in", "idx",
             [SOAP::SOAPInt]],
            ["retval", "return",
             [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
        ["search_status", "search_status", [
            ["in", "substring",
             [SOAP::SOAPString]],
            ["in", "idx",
             [SOAP::SOAPInt]],
            ["retval", "return",
             [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
        ["search_description", "search_description", [
            ["in", "substring",
             [SOAP::SOAPString]],
            ["in", "idx",
             [SOAP::SOAPInt]],
            ["retval", "return",
             [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "string"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
        ["search", "search", [
            ["in", "substring",
             [SOAP::SOAPString]],
            ["retval", "return",
             [::SOAP::SOAPArray, "http://www.w3.org/2001/XMLSchema", "anyType"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
        ["owner", "owner", [
            ["in", "owner_id",
             [SOAP::SOAPInt]],
            ["retval", "return",
             [::SOAP::SOAPStruct, "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Owner"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
        ["list_owner", "list_owner", [
            ["in", "idx",
             [SOAP::SOAPInt]],
            ["retval", "return",
             [::SOAP::SOAPArray, "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Owner"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
        ["update", "update", [
            ["in", "name",
             [SOAP::SOAPString]],
            ["in", "pass",
             [SOAP::SOAPString]],
            ["in", "gem",
             [::SOAP::SOAPStruct, "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Gem"]],
            ["retval", "return",
             [::SOAP::SOAPStruct, "http://www.ruby-lang.org/xmlns/soap/type/RAA/0.0.3/", "Gem"]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"],
        ["update_pass", "update_pass", [
            ["in", "name",
             [SOAP::SOAPString]],
            ["in", "oldpass",
             [SOAP::SOAPString]],
            ["in", "newpass",
             [SOAP::SOAPString]]], "", "http://www.ruby-lang.org/xmlns/soap/interface/RAA/0.0.4/"]
      ]

      DefaultEndpointUrl = "http://raa.ruby-lang.org/soapsrv"

      def initialize(endpoint_url = nil)
        endpoint_url ||= DefaultEndpointUrl
        super(endpoint_url, nil)
        self.mapping_registry = MappingRegistry
        init_methods
      end

      private

      def init_methods
        Methods.each do |name_as, name, params, soapaction, namespace|
          qname = XSD::QName.new(namespace, name_as)
          @proxy.add_method(qname, soapaction, name, params)
          add_rpc_method_interface(name, params)
        end
      end
    end

  end

end
