pw.println(" org.apache.axis.description.OperationDesc _oper;");
pw.println(" org.apache.axis.description.ParameterDesc [] _params;");
List operations = binding.getBindingOperations();
for (int i = 0; i < operations.size(); ++i) {
BindingOperation operation = (BindingOperation) operations.get(i);
Parameters parameters =
bEntry.getParameters(operation.getOperation());
if (parameters != null) {
// The invoked java name of the operation is stored.
String opName = operation.getOperation().getName();
String javaOpName = Utils.xmlNameToJava(opName);
pw.println(" _params = new org.apache.axis.description.ParameterDesc [] {");
for (int j=0; j < parameters.list.size(); j++) {
Parameter p = (Parameter) parameters.list.get(j);
String modeStr;
switch (p.getMode()) {
case Parameter.IN:
modeStr = "org.apache.axis.description.ParameterDesc.IN";
break;
case Parameter.OUT:
modeStr = "org.apache.axis.description.ParameterDesc.OUT";
break;
case Parameter.INOUT:
modeStr = "org.apache.axis.description.ParameterDesc.INOUT";
break;
default:
throw new IOException(
JavaUtils.getMessage("badParmMode00",
(new Byte(p.getMode())).toString()));
}
// Construct a parameter with the parameter name, mode, type qname
// a type javaType.
TypeEntry paramType = p.getType();
if (paramType instanceof Element &&
paramType.getRefType() != null) {
paramType = paramType.getRefType();
}
pw.println(" " +
"new org.apache.axis.description.ParameterDesc(" +
Utils.getNewQName(
p.getQName()) +
", " + modeStr + "," +
Utils.getNewQName(
paramType.getQName())
+","+
p.getType().getName() + ".class"
+"),");
}
pw.println(" };");
String returnStr;
if (parameters.returnType != null) {
returnStr = Utils.getNewQName(parameters.returnName);
} else {
returnStr = "null";
}
pw.println(" _oper = new org.apache.axis.description.OperationDesc(\"" +
javaOpName + "\", _params, " + returnStr + ");");
// If we need to know the QName (if we have a namespace or
// the actual method name doesn't match the XML we expect),
// record it in the OperationDesc
QName elementQName = Utils.getOperationQName(operation);
if (elementQName != null) {
pw.println(" _oper.setElementQName(" +
Utils.getNewQName(elementQName) + ");");
}
// Find the SOAPAction.
List elems = operation.getExtensibilityElements();
Iterator it = elems.iterator();
boolean found = false;
while (!found && it.hasNext()) {
ExtensibilityElement elem = (ExtensibilityElement) it.next();
if (elem instanceof SOAPOperation) {
SOAPOperation soapOp = (SOAPOperation) elem;
String action = soapOp.getSoapActionURI();
if (action != null) {
pw.println(" _oper.setSoapAction(\"" + action + "\");");
found = true;
}
}
}
pw.println(" _myOperationsList.add(_oper);");
pw.println(" if (_myOperations.get(\"" + javaOpName + "\")==null) {");
pw.println(" _myOperations.put(\"" + javaOpName + "\", new java.util.ArrayList());");
pw.println(" }");
pw.println(" ((java.util.List)_myOperations.get(\"" + javaOpName + "\")).add(_oper);");
}
}
pw.println(" }");
pw.println();
// Skeleton constructors
pw.println(" public " + className + "() {");
pw.println(" this.impl = new " + bEntry.getName() + "Impl();");
pw.println(" }");
pw.println();
pw.println(" public " + className + "(" + implType + ") {");
pw.println(" this.impl = impl;");
pw.println(" }");
// Now write each of the operation methods
for (int i = 0; i < operations.size(); ++i) {
BindingOperation operation = (BindingOperation) operations.get(i);
Parameters parameters =
bEntry.getParameters(operation.getOperation());
// Get the soapAction from the <soap:operation>
String soapAction = "";
Iterator operationExtensibilityIterator = operation.getExtensibilityElements().iterator();