package oracle.otnsamples.ibfbs.admin.helper;
import oracle.soap.transport.http.OracleSOAPHTTPConnection;
import org.apache.soap.encoding.soapenc.BeanSerializer;
import org.apache.soap.encoding.SOAPMappingRegistry;
import org.apache.soap.util.xml.QName;
import java.net.URL;
import org.apache.soap.Constants;
import org.apache.soap.Fault;
import org.apache.soap.SOAPException;
import org.apache.soap.rpc.Call;
import org.apache.soap.rpc.Parameter;
import org.apache.soap.rpc.Response;
import java.util.Vector;
import java.util.Properties;
public class GoogleSearchServiceStub
{
public GoogleSearchServiceStub()
{
m_httpConnection = new OracleSOAPHTTPConnection();
m_smr = new SOAPMappingRegistry();
BeanSerializer beanSer = new BeanSerializer();
m_smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName("urn:GoogleSearch", "GoogleSearchResult"), oracle.otnsamples.ibfbs.admin.helper.GoogleSearchResult.class, beanSer, beanSer);
m_smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName("urn:GoogleSearch", "ResultElement"), oracle.otnsamples.ibfbs.admin.helper.ResultElement.class, beanSer, beanSer);
m_smr.mapTypes(Constants.NS_URI_SOAP_ENC, new QName("urn:GoogleSearch", "DirectoryCategory"), oracle.otnsamples.ibfbs.admin.helper.DirectoryCategory.class, beanSer, beanSer);
}
public String endpoint = "http://api.google.com/search/beta2";
private OracleSOAPHTTPConnection m_httpConnection = null;
private SOAPMappingRegistry m_smr = null;
public GoogleSearchResult doGoogleSearch(String key, String q, Integer start, Integer maxResults, Boolean filter, String restrict, Boolean safeSearch, String lr, String ie, String oe) throws Exception
{
GoogleSearchResult returnVal = null;
URL endpointURL = new URL(endpoint);
Call call = new Call();
call.setSOAPTransport(m_httpConnection);
call.setTargetObjectURI("urn:GoogleSearch");
call.setMethodName("doGoogleSearch");
call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
Vector params = new Vector();
params.addElement(new Parameter("key", java.lang.String.class, key, null));
params.addElement(new Parameter("q", java.lang.String.class, q, null));
params.addElement(new Parameter("start", java.lang.Integer.class, start, null));
params.addElement(new Parameter("maxResults", java.lang.Integer.class, maxResults, null));
params.addElement(new Parameter("filter", java.lang.Boolean.class, filter, null));
params.addElement(new Parameter("restrict", java.lang.String.class, restrict, null));
params.addElement(new Parameter("safeSearch", java.lang.Boolean.class, safeSearch, null));
params.addElement(new Parameter("lr", java.lang.String.class, lr, null));
params.addElement(new Parameter("ie", java.lang.String.class, ie, null));
params.addElement(new Parameter("oe", java.lang.String.class, oe, null));
call.setParams(params);
call.setSOAPMappingRegistry(m_smr);
Response response = call.invoke(endpointURL, "urn:GoogleSearchAction");
if (!response.generatedFault())
{
Parameter result = response.getReturnValue();
returnVal = (GoogleSearchResult)result.getValue();
}
else
{
Fault fault = response.getFault();
throw new SOAPException(fault.getFaultCode(), fault.getFaultString());
}
return returnVal;
}
public void setMaintainSession(boolean maintainSession)
{
m_httpConnection.setMaintainSession(maintainSession);
}
public boolean getMaintainSession()
{
return m_httpConnection.getMaintainSession();
}
public void setTransportProperties(Properties props)
{
m_httpConnection.setProperties(props);
}
public Properties getTransportProperties()
{
return m_httpConnection.getProperties();
}
}