// Decompiled by Jad v1.5.7f. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) braces deadcode fieldsfirst 
// Source File Name:   GoogleSearch.java
// Class Version:      45.3

package com.google.soap.search;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.Vector;
import org.apache.soap.Fault;
import org.apache.soap.SOAPException;
import org.apache.soap.encoding.SOAPMappingRegistry;
import org.apache.soap.encoding.soapenc.BeanSerializer;
import org.apache.soap.rpc.*;
import org.apache.soap.transport.http.SOAPHTTPConnection;
import org.apache.soap.util.xml.QName;
import org.apache.soap.util.xml.XMLJavaMappingRegistry;

// Referenced classes of package com.google.soap.search:
//            GoogleSearchFault, GoogleSearchResult

// flag ACC_SUPER is set
public class GoogleSearch
{
    // Constants:          358
    // Interfaces:         0
    // Fields:             22
    // Methods:            24
    // Class Attributes:   1


    private static final String defaultEndpointURL = "http://api.google.com/search/beta2";
    private String key;
    private String soapServiceURL;
    private String q;
    private Integer start;
    private Integer maxResults;
    private Boolean filter;
    private String restrict;
    private Boolean safeSearch;
    private String lr;
    private String ie;
    private String oe;
    private String proxyHost;
    private int proxyPort;
    private String proxyUserName;
    private String proxyPassword;
    private static Class class$Ljava$lang$String; /* synthetic field */
    private static Class class$Ljava$lang$Integer; /* synthetic field */
    private static Class class$Ljava$lang$Boolean; /* synthetic field */
    private static Class class$Lcom$google$soap$search$GoogleSearchResult; /* synthetic field */
    private static Class class$Lcom$google$soap$search$GoogleSearchDirectoryCategory; /* synthetic field */
    private static Class class$Lcom$google$soap$search$GoogleSearchResultElement; /* synthetic field */

    // Decompiling method: setKey  Signature: (Ljava/lang/String;)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 6 bytes, Code offset: 5000
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 6 Range 0 5 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 6 Range 0 5 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 6 Range 0 5 Init 0 fixed
    public void setKey(String s)
    {
        key = s;
        return;
    }

    // Decompiling method: setSoapServiceURL  Signature: (Ljava/lang/String;)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 6 bytes, Code offset: 5048
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 6 Range 0 5 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 6 Range 0 5 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 6 Range 0 5 Init 0 fixed
    public void setSoapServiceURL(String s)
    {
        soapServiceURL = s;
        return;
    }

    // Decompiling method: setQueryString  Signature: (Ljava/lang/String;)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 6 bytes, Code offset: 5096
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 6 Range 0 5 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 6 Range 0 5 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 6 Range 0 5 Init 0 fixed
    public void setQueryString(String s)
    {
        q = s;
        return;
    }

    // Decompiling method: setStartResult  Signature: (I)V
    // Max stack: 4, #locals: 2, #params: 2
    // Code length: 13 bytes, Code offset: 5144
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 13 Range 0 12 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 13 Range 0 12 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 13 Range 0 12 Init 0 fixed
    public void setStartResult(int i)
    {
        start = new Integer(i);
        return;
    }

    // Decompiling method: setMaxResults  Signature: (I)V
    // Max stack: 4, #locals: 2, #params: 2
    // Code length: 13 bytes, Code offset: 5199
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 13 Range 0 12 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 13 Range 0 12 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 13 Range 0 12 Init 0 fixed
    public void setMaxResults(int i)
    {
        maxResults = new Integer(i);
        return;
    }

    // Decompiling method: setFilter  Signature: (Z)V
    // Max stack: 4, #locals: 2, #params: 2
    // Code length: 13 bytes, Code offset: 5254
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 13 Range 0 12 Init 0 fixed
    // Parameter  1 added: Name flag Type Z At 0 13 Range 0 12 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 13 Range 0 12 Init 0 fixed
    public void setFilter(boolean flag)
    {
        filter = new Boolean(flag);
        return;
    }

    // Decompiling method: setRestrict  Signature: (Ljava/lang/String;)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 6 bytes, Code offset: 5309
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 6 Range 0 5 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 6 Range 0 5 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 6 Range 0 5 Init 0 fixed
    public void setRestrict(String s)
    {
        restrict = s;
        return;
    }

    // Decompiling method: setSafeSearch  Signature: (Z)V
    // Max stack: 4, #locals: 2, #params: 2
    // Code length: 13 bytes, Code offset: 5357
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 13 Range 0 12 Init 0 fixed
    // Parameter  1 added: Name flag Type Z At 0 13 Range 0 12 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 13 Range 0 12 Init 0 fixed
    public void setSafeSearch(boolean flag)
    {
        safeSearch = new Boolean(flag);
        return;
    }

    // Decompiling method: setLanguageRestricts  Signature: (Ljava/lang/String;)V
    // Max stack: 4, #locals: 2, #params: 2
    // Code length: 13 bytes, Code offset: 5412
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 13 Range 0 12 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 13 Range 0 12 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 13 Range 0 12 Init 0 fixed
    public void setLanguageRestricts(String s)
    {
        lr = new String(s);
        return;
    }

    // Decompiling method: setInputEncoding  Signature: (Ljava/lang/String;)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 6 bytes, Code offset: 5473
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 6 Range 0 5 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 6 Range 0 5 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 6 Range 0 5 Init 0 fixed
    public void setInputEncoding(String s)
    {
        ie = s;
        return;
    }

    // Decompiling method: setOutputEncoding  Signature: (Ljava/lang/String;)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 6 bytes, Code offset: 5527
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 6 Range 0 5 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 6 Range 0 5 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 6 Range 0 5 Init 0 fixed
    public void setOutputEncoding(String s)
    {
        oe = s;
        return;
    }

    // Decompiling method: setProxyHost  Signature: (Ljava/lang/String;)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 6 bytes, Code offset: 5575
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 6 Range 0 5 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 6 Range 0 5 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 6 Range 0 5 Init 0 fixed
    public void setProxyHost(String s)
    {
        proxyHost = s;
        return;
    }

    // Decompiling method: setProxyPort  Signature: (I)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 6 bytes, Code offset: 5623
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 6 Range 0 5 Init 0 fixed
    // Parameter  1 added: Name i Type I At 0 6 Range 0 5 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 6 Range 0 5 Init 0 fixed
    public void setProxyPort(int i)
    {
        proxyPort = i;
        return;
    }

    // Decompiling method: setProxyUserName  Signature: (Ljava/lang/String;)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 6 bytes, Code offset: 5671
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 6 Range 0 5 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 6 Range 0 5 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 6 Range 0 5 Init 0 fixed
    public void setProxyUserName(String s)
    {
        proxyUserName = s;
        return;
    }

    // Decompiling method: setProxyPassword  Signature: (Ljava/lang/String;)V
    // Max stack: 2, #locals: 2, #params: 2
    // Code length: 6 bytes, Code offset: 5719
    // Line Number Table found: 2 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 6 Range 0 5 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 6 Range 0 5 Init 0
    // RetValue   2 added: Name <returnValue> Type V At 0 6 Range 0 5 Init 0 fixed
    public void setProxyPassword(String s)
    {
        proxyPassword = s;
        return;
    }

    // Decompiling method: doSearch  Signature: ()Lcom/google/soap/search/GoogleSearchResult;
    // Max stack: 4, #locals: 3, #params: 1
    // Code length: 96 bytes, Code offset: 5777
    // Exception table: 1 entries
    //           start  2 end 13 handler 16 type Exception
    // Line Number Table found: 9 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 96 Range 0 95 Init 0 fixed
    // RetValue   3 added: Name <returnValue> Type Lcom/google/soap/search/GoogleSearchResult; At 0 96 Range 0 95 Init 0 fixed
    // LocalVar   1 added: Name obj Type A At 1 1 Range 1 1 Init 1
    // LocalVar   1 added: Name response Type Lorg/apache/soap/rpc/Response; At 12 38 Range 12 49 Init 12
    // LocalVar   2 added: Name parameter Type Lorg/apache/soap/rpc/Parameter; At 40 2 Range 40 41 Init 40
    // LocalVar   2 added: Name fault Type Lorg/apache/soap/Fault; At 53 30 Range 53 82 Init 53
    // LocalVar   2 added: Name exception Type Ljava/lang/Exception; At 16 6 Range 16 21 Init 16
    // LocalVar   1 chged: Name response1 Oname obj Type Lorg/apache/soap/rpc/Response; At 1 1 Range 1 1 Init 1
    // LocalVar   1 name response(Lorg/apache/soap/rpc/Response;) merged out into response1(Lorg/apache/soap/rpc/Response;)
    public GoogleSearchResult doSearch()
        throws GoogleSearchFault
    {
        Response response = null;
        try
        {
            response = callRemoteMethodUsingSOAP("doGoogleSearch", generateParamsVector());
        }
        catch(Exception exception)
        {
            throw new GoogleSearchFault(exception.toString());
        }
        if(!response.generatedFault())
        {
            Parameter parameter = response.getReturnValue();
            return (GoogleSearchResult)parameter.getValue();
        } else
        {
            Fault fault = response.getFault();
            throw new GoogleSearchFault("Fault Code = " + fault.getFaultCode() + "\nFault String = " + fault.getFaultString());
        }
    }

    // Decompiling method: doGetCachedPage  Signature: (Ljava/lang/String;)[B
    // Max stack: 9, #locals: 4, #params: 2
    // Code length: 176 bytes, Code offset: 5961
    // Exception table: 1 entries
    //           start  2 end 93 handler 96 type Exception
    // Line Number Table found: 12 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 176 Range 0 175 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 176 Range 0 175 Init 0
    // RetValue   4 added: Name <returnValue> Type [B At 0 176 Range 0 175 Init 0 fixed
    // LocalVar   2 added: Name obj Type A At 1 1 Range 1 1 Init 1
    // LocalVar   3 added: Name vector Type Ljava/util/Vector; At 9 80 Range 9 88 Init 9
    // LocalVar   2 added: Name response Type Lorg/apache/soap/rpc/Response; At 92 38 Range 92 129 Init 92
    // LocalVar   3 added: Name parameter Type Lorg/apache/soap/rpc/Parameter; At 120 2 Range 120 121 Init 120
    // LocalVar   3 added: Name fault Type Lorg/apache/soap/Fault; At 133 30 Range 133 162 Init 133
    // LocalVar   3 added: Name exception Type Ljava/lang/Exception; At 96 6 Range 96 101 Init 96
    // LocalVar   2 chged: Name response1 Oname obj Type Lorg/apache/soap/rpc/Response; At 1 1 Range 1 1 Init 1
    // LocalVar   2 name response(Lorg/apache/soap/rpc/Response;) merged out into response1(Lorg/apache/soap/rpc/Response;)
    public byte[] doGetCachedPage(String s)
        throws GoogleSearchFault
    {
        Response response = null;
        try
        {
            Vector vector = new Vector();
            vector.addElement(new Parameter("key", class$Ljava$lang$String == null ? (class$Ljava$lang$String = class$("java.lang.String")) : class$Ljava$lang$String, key, null));
            vector.addElement(new Parameter("url", class$Ljava$lang$String == null ? (class$Ljava$lang$String = class$("java.lang.String")) : class$Ljava$lang$String, s, null));
            response = callRemoteMethodUsingSOAP("doGetCachedPage", vector);
        }
        catch(Exception exception)
        {
            throw new GoogleSearchFault(exception.toString());
        }
        if(!response.generatedFault())
        {
            Parameter parameter = response.getReturnValue();
            return (byte[])parameter.getValue();
        } else
        {
            Fault fault = response.getFault();
            throw new GoogleSearchFault("Fault Code = " + fault.getFaultCode() + "\nFault String = " + fault.getFaultString());
        }
    }

    // Decompiling method: doSpellingSuggestion  Signature: (Ljava/lang/String;)Ljava/lang/String;
    // Max stack: 9, #locals: 4, #params: 2
    // Code length: 176 bytes, Code offset: 6237
    // Exception table: 1 entries
    //           start  2 end 93 handler 96 type Exception
    // Line Number Table found: 12 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 176 Range 0 175 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 176 Range 0 175 Init 0
    // RetValue   4 added: Name <returnValue> Type Ljava/lang/String; At 0 176 Range 0 175 Init 0 fixed
    // LocalVar   2 added: Name obj Type A At 1 1 Range 1 1 Init 1
    // LocalVar   3 added: Name vector Type Ljava/util/Vector; At 9 80 Range 9 88 Init 9
    // LocalVar   2 added: Name response Type Lorg/apache/soap/rpc/Response; At 92 38 Range 92 129 Init 92
    // LocalVar   3 added: Name parameter Type Lorg/apache/soap/rpc/Parameter; At 120 2 Range 120 121 Init 120
    // LocalVar   3 added: Name fault Type Lorg/apache/soap/Fault; At 133 30 Range 133 162 Init 133
    // LocalVar   3 added: Name exception Type Ljava/lang/Exception; At 96 6 Range 96 101 Init 96
    // LocalVar   2 chged: Name response1 Oname obj Type Lorg/apache/soap/rpc/Response; At 1 1 Range 1 1 Init 1
    // LocalVar   2 name response(Lorg/apache/soap/rpc/Response;) merged out into response1(Lorg/apache/soap/rpc/Response;)
    public String doSpellingSuggestion(String s)
        throws GoogleSearchFault
    {
        Response response = null;
        try
        {
            Vector vector = new Vector();
            vector.addElement(new Parameter("key", class$Ljava$lang$String == null ? (class$Ljava$lang$String = class$("java.lang.String")) : class$Ljava$lang$String, key, null));
            vector.addElement(new Parameter("phrase", class$Ljava$lang$String == null ? (class$Ljava$lang$String = class$("java.lang.String")) : class$Ljava$lang$String, s, null));
            response = callRemoteMethodUsingSOAP("doSpellingSuggestion", vector);
        }
        catch(Exception exception)
        {
            throw new GoogleSearchFault(exception.toString());
        }
        if(!response.generatedFault())
        {
            Parameter parameter = response.getReturnValue();
            return (String)parameter.getValue();
        } else
        {
            Fault fault = response.getFault();
            throw new GoogleSearchFault("Fault Code = " + fault.getFaultCode() + "\nFault String = " + fault.getFaultString());
        }
    }

    // Decompiling method: generateParamsVector  Signature: ()Ljava/util/Vector;
    // Max stack: 8, #locals: 2, #params: 1
    // Code length: 400 bytes, Code offset: 6503
    // Line Number Table found: 12 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 400 Range 0 399 Init 0 fixed
    // RetValue   2 added: Name <returnValue> Type Ljava/util/Vector; At 0 400 Range 0 399 Init 0 fixed
    // LocalVar   1 added: Name vector Type Ljava/util/Vector; At 7 392 Range 7 398 Init 7
    private Vector generateParamsVector()
    {
        Vector vector = new Vector();
        vector.addElement(new Parameter("key", class$Ljava$lang$String == null ? (class$Ljava$lang$String = class$("java.lang.String")) : class$Ljava$lang$String, key, null));
        vector.addElement(new Parameter("q", class$Ljava$lang$String == null ? (class$Ljava$lang$String = class$("java.lang.String")) : class$Ljava$lang$String, q, null));
        vector.addElement(new Parameter("start", class$Ljava$lang$Integer == null ? (class$Ljava$lang$Integer = class$("java.lang.Integer")) : class$Ljava$lang$Integer, start, null));
        vector.addElement(new Parameter("maxResults", class$Ljava$lang$Integer == null ? (class$Ljava$lang$Integer = class$("java.lang.Integer")) : class$Ljava$lang$Integer, maxResults, null));
        vector.addElement(new Parameter("filter", class$Ljava$lang$Boolean == null ? (class$Ljava$lang$Boolean = class$("java.lang.Boolean")) : class$Ljava$lang$Boolean, filter, null));
        vector.addElement(new Parameter("restrict", class$Ljava$lang$String == null ? (class$Ljava$lang$String = class$("java.lang.String")) : class$Ljava$lang$String, restrict, null));
        vector.addElement(new Parameter("safeSearch", class$Ljava$lang$Boolean == null ? (class$Ljava$lang$Boolean = class$("java.lang.Boolean")) : class$Ljava$lang$Boolean, safeSearch, null));
        vector.addElement(new Parameter("lr", class$Ljava$lang$String == null ? (class$Ljava$lang$String = class$("java.lang.String")) : class$Ljava$lang$String, lr, null));
        vector.addElement(new Parameter("ie", class$Ljava$lang$String == null ? (class$Ljava$lang$String = class$("java.lang.String")) : class$Ljava$lang$String, ie, null));
        vector.addElement(new Parameter("oe", class$Ljava$lang$String == null ? (class$Ljava$lang$String = class$("java.lang.String")) : class$Ljava$lang$String, oe, null));
        return vector;
    }

    // Decompiling method: constructTypeRegistryForGoogleSearch  Signature: ()Lorg/apache/soap/encoding/SOAPMappingRegistry;
    // Max stack: 7, #locals: 3, #params: 1
    // Code length: 138 bytes, Code offset: 6985
    // Line Number Table found: 6 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 138 Range 0 137 Init 0 fixed
    // RetValue   3 added: Name <returnValue> Type Lorg/apache/soap/encoding/SOAPMappingRegistry; At 0 138 Range 0 137 Init 0 fixed
    // LocalVar   1 added: Name soapmappingregistry Type Lorg/apache/soap/encoding/SOAPMappingRegistry; At 7 130 Range 7 136 Init 7
    // LocalVar   2 added: Name beanserializer Type Lorg/apache/soap/encoding/soapenc/BeanSerializer; At 15 118 Range 15 132 Init 15
    private SOAPMappingRegistry constructTypeRegistryForGoogleSearch()
    {
        SOAPMappingRegistry soapmappingregistry = new SOAPMappingRegistry();
        BeanSerializer beanserializer = new BeanSerializer();
        soapmappingregistry.mapTypes("http://schemas.xmlsoap.org/soap/encoding/", new QName("urn:GoogleSearch", "GoogleSearchResult"), class$Lcom$google$soap$search$GoogleSearchResult == null ? (class$Lcom$google$soap$search$GoogleSearchResult = class$("com.google.soap.search.GoogleSearchResult")) : class$Lcom$google$soap$search$GoogleSearchResult, beanserializer, beanserializer);
        soapmappingregistry.mapTypes("http://schemas.xmlsoap.org/soap/encoding/", new QName("urn:GoogleSearch", "DirectoryCategory"), class$Lcom$google$soap$search$GoogleSearchDirectoryCategory == null ? (class$Lcom$google$soap$search$GoogleSearchDirectoryCategory = class$("com.google.soap.search.GoogleSearchDirectoryCategory")) : class$Lcom$google$soap$search$GoogleSearchDirectoryCategory, beanserializer, beanserializer);
        soapmappingregistry.mapTypes("http://schemas.xmlsoap.org/soap/encoding/", new QName("urn:GoogleSearch", "ResultElement"), class$Lcom$google$soap$search$GoogleSearchResultElement == null ? (class$Lcom$google$soap$search$GoogleSearchResultElement = class$("com.google.soap.search.GoogleSearchResultElement")) : class$Lcom$google$soap$search$GoogleSearchResultElement, beanserializer, beanserializer);
        return soapmappingregistry;
    }

    // Decompiling method: callRemoteMethodUsingSOAP  Signature: (Ljava/lang/String;Ljava/util/Vector;)Lorg/apache/soap/rpc/Response;
    // Max stack: 3, #locals: 5, #params: 3
    // Code length: 30 bytes, Code offset: 7193
    // Line Number Table found: 3 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 30 Range 0 29 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 30 Range 0 29 Init 0
    // Parameter  2 added: Name vector Type Ljava/util/Vector; At 0 30 Range 0 29 Init 0
    // RetValue   5 added: Name <returnValue> Type Lorg/apache/soap/rpc/Response; At 0 30 Range 0 29 Init 0 fixed
    // LocalVar   3 added: Name url Type Ljava/net/URL; At 11 12 Range 11 22 Init 11
    // LocalVar   4 added: Name call Type Lorg/apache/soap/rpc/Call; At 18 4 Range 18 21 Init 18
    private Response callRemoteMethodUsingSOAP(String s, Vector vector)
        throws MalformedURLException, SOAPException
    {
        URL url = new URL(soapServiceURL);
        Call call = constructCall(s, vector);
        return call.invoke(url, "urn:GoogleSearchAction");
    }

    // Decompiling method: constructCall  Signature: (Ljava/lang/String;Ljava/util/Vector;)Lorg/apache/soap/rpc/Call;
    // Max stack: 2, #locals: 7, #params: 3
    // Code length: 166 bytes, Code offset: 7269
    // Line Number Table found: 21 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 166 Range 0 165 Init 0 fixed
    // Parameter  1 added: Name s Type Ljava/lang/String; At 0 166 Range 0 165 Init 0
    // Parameter  2 added: Name vector Type Ljava/util/Vector; At 0 166 Range 0 165 Init 0
    // RetValue   7 added: Name <returnValue> Type Lorg/apache/soap/rpc/Call; At 0 166 Range 0 165 Init 0 fixed
    // LocalVar   3 added: Name call Type Lorg/apache/soap/rpc/Call; At 7 158 Range 7 164 Init 7
    // LocalVar   4 added: Name soaphttpconnection Type Lorg/apache/soap/transport/http/SOAPHTTPConnection; At 45 116 Range 45 160 Init 45
    // LocalVar   5 added: Name s1 Type Ljava/lang/String; At 113 22 Range 113 134 Init 113
    // LocalVar   6 added: Name i Type I At 149 6 Range 149 154 Init 149
    protected Call constructCall(String s, Vector vector)
    {
        Call call = new Call();
        call.setSOAPMappingRegistry(constructTypeRegistryForGoogleSearch());
        call.setTargetObjectURI("urn:GoogleSearch");
        call.setMethodName(s);
        call.setEncodingStyleURI("http://schemas.xmlsoap.org/soap/encoding/");
        call.setParams(vector);
        SOAPHTTPConnection soaphttpconnection = new SOAPHTTPConnection();
        if(proxyHost != null)
        {
            soaphttpconnection.setProxyHost(proxyHost);
            soaphttpconnection.setProxyPort(proxyPort);
            if(proxyUserName != null)
            {
                soaphttpconnection.setProxyUserName(proxyUserName);
            }
            if(proxyPassword != null)
            {
                soaphttpconnection.setProxyPassword(proxyPassword);
            }
        } else
        {
            String s1 = System.getProperty("http.proxyHost");
            if(s1 != null && !"".equals(s1))
            {
                soaphttpconnection.setProxyHost(s1);
                int i = Integer.getInteger("http.proxyPort", 80).intValue();
                soaphttpconnection.setProxyPort(i);
            }
        }
        call.setSOAPTransport(soaphttpconnection);
        return call;
    }

    // Decompiling method: class$  Signature: (Ljava/lang/String;)Ljava/lang/Class;
    // Max stack: 3, #locals: 2, #params: 1
    // Code length: 18 bytes, Code offset: 7559
    // Exception table: 1 entries
    //           start  0 end 5 handler 5 type ClassNotFoundException
    // Parameter  0 added: Name s Type Ljava/lang/String; At 0 18 Range 0 17 Init 0
    // RetValue   2 added: Name <returnValue> Type Ljava/lang/Class; At 0 18 Range 0 17 Init 0 fixed
    // LocalVar   1 added: Name classnotfoundexception Type Ljava/lang/ClassNotFoundException; At 5 6 Range 5 10 Init 5
    static Class class$(String s)
    {
        try
        {
            return Class.forName(s);
        }
        catch(ClassNotFoundException classnotfoundexception)
        {
            throw new NoClassDefFoundError(classnotfoundexception.getMessage());
        }
    }

    // Decompiling method: <init>  Signature: ()V
    // Max stack: 16, #locals: 1, #params: 1
    // Code length: 148 bytes, Code offset: 7611
    // Line Number Table found: 5 entries
    // Parameter  0 added: Name this Type Lcom/google/soap/search/GoogleSearch; At 0 148 Range 0 147 Init 0 fixed
    // RetValue   1 added: Name <returnValue> Type V At 0 148 Range 0 147 Init 0 fixed
    public GoogleSearch()
    {
        super();
        key = null;
        soapServiceURL = "";
        q = null;
        start = new Integer(0);
        maxResults = new Integer(10);
        filter = new Boolean(true);
        restrict = "";
        safeSearch = new Boolean(false);
        lr = "";
        ie = "UTF-8";
        oe = "UTF-8";
        proxyHost = null;
        proxyPort = 80;
        proxyUserName = null;
        proxyPassword = null;
        if(System.getProperty("google.soapEndpointURL") != null)
        {
            setSoapServiceURL(System.getProperty("google.soapEndpointURL"));
        } else
        {
            setSoapServiceURL("http://api.google.com/search/beta2");
        }
        return;
    }
}
