}
GpelAssign assign = (GpelAssign)last;
XmlNamespace ns = assign.xml().getNamespace();
XmlElement container = XmlConstants.BUILDER.parseFragmentFromString("<dummyelement></dummyelement>");
String portTypeattr = next.xml().attributeValue(PORT_TYPE_STR);
String operation = next.xml().attributeValue(OPERATION_STR);
if(null == portTypeattr || "".equals(portTypeattr)){
throw new XBayaRuntimeException("No Porttype found for Invoke:"+next);
}
String portTypeName = portTypeattr.substring(portTypeattr.indexOf(':')+1);
String messagePartName = null;
if(isInvoke(next)){
Iterator<String> keys = wsdls.keySet().iterator();
while(keys.hasNext()){
String key = keys.next();
WsdlDefinitions wsdl = wsdls.get(key);
WsdlPortType portType = wsdl.getPortType(portTypeName);
if( null != portType){
WsdlPortTypeOperation wsdlOperation = portType.getOperation(operation);
WsdlMessagePart part = wsdl.getMessage(wsdlOperation.getInput().getMessage().getLocalPart()).parts().iterator().next();
XmlElement childElement = container.addElement(part.getElement().getLocalPart());
Iterator<GpelAssignCopy> copyItr = assign.copyOperations().iterator();
while(copyItr.hasNext()){
GpelAssignCopy copyItm = copyItr.next();
childElement.addElement(getElementName(copyItm.getTo().getQuery()));
if(messagePartName == null){
messagePartName = copyItm.getTo().xml().attributeValue(PART_STR);
}
}
break;
}
}
}else {
//reply
WsdlPortType portType = workflowWSDL.getPortType(portTypeName);
if( null != portType){
WsdlPortTypeOperation wsdlOperation = portType.getOperation(operation);
WsdlMessagePart part = workflowWSDL.getMessage(wsdlOperation.getOutput().getMessage().getLocalPart()).parts().iterator().next();
XmlElement childElement = container.addElement(part.getElement().getLocalPart());
Iterator<GpelAssignCopy> copyItr = assign.copyOperations().iterator();
while(copyItr.hasNext()){
GpelAssignCopy copyItm = copyItr.next();
childElement.addElement(getElementName(copyItm.getTo().getQuery()));
if(messagePartName == null){
messagePartName = copyItm.getTo().xml().attributeValue(PART_STR);
}
}
}