/* */ }
/* */ }
/* */
/* */ private int processDocElement(OperationMetaData operation, WSDLInterfaceOperation wsdlOperation, WSDLBindingOperation bindingOperation, ServiceEndpointMethodMapping seiMethodMapping, TypeMappingImpl typeMapping, List<WrappedParameter> wrappedParameters, List<WrappedParameter> wrappedResponseParameters)
/* */ {
/* 613 */ WSDLInterfaceOperationInput input = wsdlOperation.getInputs()[0];
/* 614 */ WSDLBindingOperationInput bindingInput = bindingOperation.getInputs()[0];
/* */
/* 617 */ QName xmlName = input.getElement();
/* 618 */ QName xmlType = input.getXMLType();
/* 619 */ String javaTypeName = typeMapping.getJavaTypeName(xmlType);
/* */
/* 621 */ TypesMetaData typesMetaData = operation.getEndpointMetaData().getServiceMetaData().getTypesMetaData();
/* 622 */ TypeMappingMetaData typeMetaData = typesMetaData.getTypeMappingByXMLType(xmlType);
/* 623 */ if (typeMetaData != null) {
/* 624 */ javaTypeName = typeMetaData.getJavaTypeName();
/* */ }
/* 626 */ if (javaTypeName == null) {
/* 627 */ throw new WSException("Cannot obtain java type mapping for: " + xmlType);
/* */ }
/* */
/* 630 */ boolean isWrapped = isWrapped(seiMethodMapping, javaTypeName);
/* 631 */ operation.getEndpointMetaData().setParameterStyle(isWrapped ? SOAPBinding.ParameterStyle.WRAPPED : SOAPBinding.ParameterStyle.BARE);
/* */
/* 633 */ ParameterMetaData inMetaData = new ParameterMetaData(operation, xmlName, xmlType, javaTypeName);
/* 634 */ operation.addParameter(inMetaData);
/* */ int wsdlPosition;
/* */ int wsdlPosition;
/* 637 */ if (inMetaData.getOperationMetaData().isDocumentWrapped())
/* */ {
/* 639 */ if (seiMethodMapping == null) {
/* 640 */ throw new IllegalArgumentException("Cannot wrap parameters without SEI method mapping");
/* */ }
/* 642 */ ServiceEndpointInterfaceMapping seiMapping = seiMethodMapping.getServiceEndpointInterfaceMapping();
/* 643 */ JavaXmlTypeMapping javaXmlTypeMapping = seiMapping.getJavaWsdlMapping().getTypeMappingForQName(xmlType);
/* 644 */ if (javaXmlTypeMapping == null) {
/* 645 */ throw new WSException("Cannot obtain java/xml type mapping for: " + xmlType);
/* */ }
/* 647 */ Map variableMap = createVariableMappingMap(javaXmlTypeMapping.getVariableMappings());
/* 648 */ for (MethodParamPartsMapping partMapping : seiMethodMapping.getMethodParamPartsMappings())
/* */ {
/* 650 */ WsdlMessageMapping wsdlMessageMapping = partMapping.getWsdlMessageMapping();
/* 651 */ if (wsdlMessageMapping.isSoapHeader()) {
/* */ continue;
/* */ }
/* 654 */ if (wsdlMessageMapping == null) {
/* 655 */ throw new IllegalArgumentException("wsdl-message-message mapping required for document/literal wrapped");
/* */ }
/* 657 */ String elementName = wsdlMessageMapping.getWsdlMessagePartName();
/* */
/* 660 */ if (bindingInput.getMimePart(elementName) != null) {
/* */ continue;
/* */ }
/* 663 */ String variable = (String)variableMap.get(elementName);
/* 664 */ if (variable == null) {
/* 665 */ throw new IllegalArgumentException("Could not determine variable name for element: " + elementName);
/* */ }
/* 667 */ WrappedParameter wrapped = new WrappedParameter(new QName(elementName), partMapping.getParamType(), variable, partMapping.getParamPosition());
/* */
/* 669 */ String parameterMode = wsdlMessageMapping.getParameterMode();
/* 670 */ if ((parameterMode == null) || (parameterMode.length() < 2)) {
/* 671 */ throw new IllegalArgumentException("Invalid parameter mode for element: " + elementName);
/* */ }
/* 673 */ if (!"OUT".equals(parameterMode))
/* 674 */ wrappedParameters.add(wrapped);
/* 675 */ if ("IN".equals(parameterMode))
/* */ continue;
/* 677 */ wrapped.setHolder(true);
/* */
/* 679 */ if ("INOUT".equals(parameterMode))
/* 680 */ wrapped = new WrappedParameter(wrapped);
/* 681 */ wrappedResponseParameters.add(wrapped);
/* */ }
/* */
/* 684 */ inMetaData.setWrappedParameters(wrappedParameters);
/* 685 */ wsdlPosition = wrappedParameters.size();
/* */ }
/* */ else
/* */ {
/* 689 */ if (seiMethodMapping != null)
/* */ {
/* 691 */ MethodParamPartsMapping part = seiMethodMapping.getMethodParamPartsMappingByPartName(input.getPartName());
/* 692 */ if (part != null)
/* */ {
/* 694 */ inMetaData.setJavaTypeName(part.getParamType());
/* 695 */ inMetaData.setIndex(part.getParamPosition());
/* */ }