List<ResourceDescription> results,
OutputAdapterFactory factory) {
try {
ResourceDescription firstDescription = results.get(0);
if (!OMElementResourceAdapter.TYPE.equals(firstDescription.getType())) {
throw new LoggedRuntimeException("Invalid result !! result type is invalid", log);
}
String methodName = axisOperation.getName().getLocalPart();
String partQName = methodName + RESPONSE;
AxisMessage outMessage = axisOperation.getMessage(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
outMessage.setName(partQName);
XmlSchemaSequence sequence = generateSchema(firstDescription.getChildResources(),
partQName, factory.getOutputAdapters(), "item");
XmlSchemaComplexType methodSchemaType =
createSchemaTypeForMethodPart(partQName);
if(sequence != null){
methodSchemaType.setParticle(sequence);
}
QName elementQName = typeTable.getQNamefortheType(partQName);
setParentElementQName((List)results.get(0).getChildResources(), elementQName);
outMessage.setElementQName(elementQName);
firstDescription.setElementQName(elementQName);
service.addMessageElementQNameToOperationMapping(methodSchemaType.getQName(),
axisOperation);
} catch (Exception e) {
throw new LoggedRuntimeException("Error when preparing out-message " +
"of operation : " + axisOperation.getName(), e, log);
}
}