}
else
{
if (seiMethodMapping != null)
{
MethodParamPartsMapping part = seiMethodMapping.getMethodParamPartsMappingByPartName(opOutput.getPartName());
String mode = null;
if (part != null)
{
WsdlMessageMapping wsdlMessageMapping = part.getWsdlMessageMapping();
mode = wsdlMessageMapping.getParameterMode();
}
if ("INOUT".equals(mode))
{
ParameterMetaData inMetaData = opMetaData.getParameter(xmlName);
if (inMetaData != null)
{
inMetaData.setMode(ParameterMode.INOUT);
return wsdlPosition;
}
throw new WSException("Could not update IN parameter to be INOUT, as indicated in the mapping: " + opOutput.getPartName());
}
// It's potentialy possible that an input parameter could exist with the same part name
else if ("OUT".equals(mode))
{
hasReturnMapping = false;
javaTypeName = part.getParamType();
outMetaData.setIndex(part.getParamPosition());
outMetaData.setJavaTypeName(javaTypeName);
}
else
{
WsdlReturnValueMapping returnValueMapping = seiMethodMapping.getWsdlReturnValueMapping();