log.trace("processOperationOutput: " + srcMessage.getQName());
destOperation.setPattern(Constants.WSDL20_PATTERN_IN_OUT);
QName wsaAction = (QName)srcOutput.getExtensionAttribute(Constants.WSDL_ATTRIBUTE_WSA_ACTION);
if (wsaAction != null)
destOperation.addProperty(new WSDLProperty(Constants.WSDL_PROPERTY_ACTION_OUT, wsaAction.getLocalPart()));
List<String> paramOrder = (List<String>)srcOperation.getParameterOrdering();
if (paramOrder != null)
{
for (String name : paramOrder)
{
if (srcMessage.getPart(name) != null)
{
WSDLRPCSignatureItem item = destOperation.getRpcSignatureitem(name);
if (item != null)
item.setDirection(Direction.INOUT);
else destOperation.addRpcSignatureItem(new WSDLRPCSignatureItem(name, Direction.OUT));
}
}
}
WSDLInterfaceOperationOutput rpcOutput = new WSDLInterfaceOperationOutput(destOperation);
for (Part srcPart : (List<Part>)srcMessage.getOrderedParts(null))
{
// Skip SWA attachment parts
if (ignorePart(srcPortType, srcPart))
continue;
if (Constants.URI_STYLE_DOCUMENT == destOperation.getStyle())
{
WSDLInterfaceOperationOutput destOutput = new WSDLInterfaceOperationOutput(destOperation);
QName elementName = messagePartToElementName(srcMessage, srcPart, destOperation, destBinding);
destOutput.setElement(elementName);
// Lets remember the Message name
destOutput.setMessageName(srcMessage.getQName());
destOperation.addProperty(new WSDLProperty(Constants.WSDL_PROPERTY_MESSAGE_NAME_OUT, srcMessage.getQName().getLocalPart()));
// Remember the original part name
destOutput.setPartName(srcPart.getName());
destOperation.addOutput(destOutput);