blob: d5d30847063f9d1bd6a95b4b2d64b5280658c2d4 [file] [log] [blame]
/*
* Copyright 2004,2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package sample.google.search;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axiom.soap.SOAPFactory;
import org.apache.axis2.AxisFault;
import org.apache.axis2.context.MessageContext;
/**
* Builds the MessageContext as called by AsynchronousClient
* First build the request soap envilope
* then build a messageContext and soap envelope is attached to it
*/
public class ClientUtil {
/** Soap request is included to this and pass it to sendMsg() in AsynchronousClient */
//static MessageContext msgContext;
/**
* method getMessageContext
*
* @return msgContext
*/
public static MessageContext getMessageContext(
AsynchronousClient asyncClient)
throws AxisFault {
OMNamespace defNs;
OMElement operation;
MessageContext msgContext = null;
String str_ST_index = Integer.toString(asyncClient.getStartIndex());
defNs = OMAbstractFactory.getSOAP11Factory().createOMNamespace("", "");
SOAPFactory omFactory = OMAbstractFactory.getSOAP11Factory();
SOAPEnvelope envelope = omFactory.getDefaultEnvelope();
envelope.declareNamespace("http://schemas.xmlsoap.org/soap/envelope/",
"soapenv");
envelope.declareNamespace("http://schemas.xmlsoap.org/soap/encoding/",
"SOAP-ENC");
envelope.declareNamespace("http://www.w3.org/2001/XMLSchema-instance",
"xsi");
envelope.declareNamespace("http://www.w3.org/2001/XMLSchema",
"xsd");
operation =
omFactory.createOMElement("doGoogleSearch",
"urn:GoogleSearch",
"ns1");
envelope.getBody().addChild(operation);
operation.addAttribute("soapenv:encordingStyle",
"http://schemas.xmlsoap.org/soap/encoding/", null);
operation.addChild(
getOMElement(omFactory,
defNs,
"key",
"xsd:string",
asyncClient.getKey()));
operation.addChild(
getOMElement(omFactory,
defNs,
"q",
"xsd:string",
asyncClient.getSearch()));
operation.addChild(
getOMElement(omFactory,
defNs,
"start",
"xsd:int",
str_ST_index));
operation.addChild(
getOMElement(omFactory,
defNs,
"maxResults",
"xsd:int",
asyncClient.getMaxResults()));
operation.addChild(
getOMElement(omFactory,
defNs,
"filter",
"xsd:boolean",
"true"));
operation.addChild(
getOMElement(omFactory, defNs, "restrict", "xsd:string", ""));
operation.addChild(
getOMElement(omFactory,
defNs,
"safeSearch",
"xsd:boolean",
"false"));
operation.addChild(
getOMElement(omFactory, defNs, "lr", "xsd:string", ""));
operation.addChild(
getOMElement(omFactory, defNs, "ie", "xsd:string", "latin1"));
operation.addChild(
getOMElement(omFactory, defNs, "oe", "xsd:string", "latin1"));
msgContext = new MessageContext();
msgContext.setEnvelope(envelope);
return msgContext;
}
private static OMElement getOMElement(OMFactory factory, OMNamespace ns, String elementName,
String type, String text) {
OMElement part = factory.createOMElement(elementName, ns);
part.addAttribute("xsi:type", type, null);
part.addChild(factory.createOMText(text));
return part;
}
}