internal void AddParam(URTParam newParam) { Util.Log("URTMethod.AddParam "+newParam.Name); for (int i=0;i<_params.Count;i++) { URTParam extParam = (URTParam) _params[i]; if (WsdlParser.MatchingStrings(extParam.Name, newParam.Name)) { if (extParam.ParamType == URTParamType.IN && newParam.ParamType == URTParamType.OUT && WsdlParser.MatchingStrings(extParam.TypeName, newParam.TypeName) && WsdlParser.MatchingStrings(extParam.TypeNS, newParam.TypeNS)) { extParam.ParamType = URTParamType.REF; return; } throw new SUDSParserException(CoreChannel.GetResourceString("Remoting_Suds_DuplicateParameter")); } } // Find parameter position int paramPosition = -1; if (_paramNamesOrder != null) { // Parameter order find the parameter position or determine if the parameter is a return value for (int i=0; i<_paramNamesOrder.Length; i++) { if (_paramNamesOrder[i] == newParam.Name) { paramPosition = i; break; } } if (paramPosition == -1) { // return value _methodType = newParam; } else { // Parameter, add the correct position //_params[paramPosition] = newParam; // _params array list is the size of the parameters. _params.Add(newParam); _paramPosition.Add(paramPosition); } } else { // no parameterOrder in wsdl, do the best we can to determine if there is a return value if ((_methodType == null) && (newParam.ParamType == URTParamType.OUT)) { // return value _methodType = newParam; } else { // parameter put as the next parameter _params.Add(newParam); } } }
internal void AddParam(URTParam newParam) { Util.Log("URTMethod.AddParam "+newParam.Name); for(int i=0;i<_params.Count;i++) { URTParam extParam = (URTParam) _params[i]; if(SdlParser.MatchingStrings(extParam.Name, newParam.Name)) { if(extParam.ParamType == URTParamType.IN && newParam.ParamType == URTParamType.OUT && SdlParser.MatchingStrings(extParam.TypeName, newParam.TypeName) && SdlParser.MatchingStrings(extParam.TypeNS, newParam.TypeNS)) { extParam.ParamType = URTParamType.REF; return; } throw new SUDSParserException(CoreChannel.GetResourceString("Remoting_Suds_DuplicateParameter")); } } if((_methodType == null) && (newParam.ParamType == URTParamType.OUT)) { _methodType = newParam; return; } _params.Add(newParam); return; }