// // Jala Project [http://opensvn.csie.org/traccgi/jala] // // Copyright 2004 ORF Online und Teletext GmbH // // Licensed under the Apache License, Version 2.0 (the ``License''); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an ``AS IS'' BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // // $Revision$ // $LastChangedBy$ // $LastChangedDate$ // $HeadURL$ // /** * Wrapper for making XmlRpc calls to remote servers. * @class Instances of this class can make calls to remote * XmlRpc servers, plus function as macro handlers for displaying * results, errors etc. * @param {String} url The url of the entry-point * @param {String} methodName The name of the method to call (eg. "xmlrpcclient.echo") * @param {Array} args An array containing arguments to pass to the remote function * @returns A newly created XmlRpcCall instance * @type XmlRpcCall */ var XmlRpcCall = function(url, methodName) { this.request = new jala.XmlRpcRequest(url, methodName); this.result = null; return this; }; /** * Executes the XmlRpc call */ XmlRpcCall.prototype.execute = function() { this.args = arguments; this.response = jala.XmlRpcRequest.prototype.execute.apply(this.request, arguments); return; }; /** @ignore */ XmlRpcCall.prototype.toString = function() { return "[XmlRpcCall]"; }; /** * Returns the Url of this XmlRpcCall instance. * @returns The url of this call * @type String */ XmlRpcCall.prototype.url_macro = function() { return this.url; }; /** * Returns the method name of this XmlRpcCall instance. * @returns The method name of this call * @type String */ XmlRpcCall.prototype.method_macro = function() { return this.methodName; }; /** * Displays the arguments of this XmlRpcCall instance. */ XmlRpcCall.prototype.arguments_macro = function() { var arg; for (var i=0;i'); res.write('
' + i + " "); if (isArray(arg)) { res.write("(Array)"); } else if (isDate(arg)) { res.write("(Date)"); } else if (isString(arg)) { res.write("(String)"); } else if (isNumber(arg)) { res.write("(Integer)"); } else if (isBoolean(arg)) { res.write("(Boolean)"); } else if (isNull(arg)) { res.write("(null)"); } else if (isUndefined(arg)) { res.write("(undefined)"); } else if (isObject(arg)) { res.write("(Object)"); } else { res.write("(unknown type)"); } res.write('
\n
');
      res.write(prettyPrint(arg));
      res.write("
"); } return; }; /** * Returns the result of this XmlRpcCall instance. * @returns The result as human readable string * @type String */ XmlRpcCall.prototype.result_macro = function() { if (this.response.result != null) { return prettyPrint(this.response.result); } return; }; /** * Returns the error of this XmlRpcCall instance, if any. * @returns The error string * @type String */ XmlRpcCall.prototype.error_macro = function() { if (this.response.error != null) { return this.response.error; } return; }; /** * Displays the xml source of either request or response * @param {Object} param A parameter object containing the * macro attributes */ XmlRpcCall.prototype.xml_macro = function(param) { var xml = this.response[param.of + "Xml"]; if (xml != null) { res.write("
");
      res.write(prettyPrintXml(xml));
      res.write("
"); } return; };