a:39:{s:9:"#provides";s:21:"dojox.wire.ml.Service";s:9:"#resource";s:18:"wire/ml/Service.js";s:9:"#requires";a:4:{i:0;a:3:{i:0;s:6:"common";i:1;s:13:"dijit._Widget";i:2;s:5:"dijit";}i:1;a:2:{i:0;s:6:"common";i:1;s:16:"dojox.xml.parser";}i:2;a:2:{i:0;s:6:"common";i:1;s:16:"dojox.wire._base";}i:3;a:2:{i:0;s:6:"common";i:1;s:18:"dojox.wire.ml.util";}}s:21:"dojox.wire.ml.Service";a:5:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:13:"dijit._Widget";}s:4:"call";a:1:{i:0;s:13:"dijit._Widget";}}s:7:"summary";s:22:"A widget for a service";s:11:"description";s:189:"This widget represents a service defined by a service description specified with 'url' attribute. If 'serviceType' and 'serviceUrl' attributes are specified, 'url' attribute can be omitted.";s:9:"classlike";b:1;}s:25:"dojox.wire.ml.Service.url";a:3:{s:9:"prototype";s:21:"dojox.wire.ml.Service";s:4:"type";s:1:"A";s:7:"summary";s:28:"URL to a service description";}s:32:"dojox.wire.ml.Service.serviceUrl";a:4:{s:9:"prototype";s:21:"dojox.wire.ml.Service";s:8:"instance";s:21:"dojox.wire.ml.Service";s:4:"type";s:1:"A";s:7:"summary";s:16:"URL to a service";}s:33:"dojox.wire.ml.Service.serviceType";a:3:{s:9:"prototype";s:21:"dojox.wire.ml.Service";s:4:"type";s:1:"A";s:7:"summary";s:12:"service type";}s:34:"dojox.wire.ml.Service.handlerClass";a:3:{s:9:"prototype";s:21:"dojox.wire.ml.Service";s:4:"type";s:1:"A";s:7:"summary";s:26:"service handler class name";}s:34:"dojox.wire.ml.Service.preventCache";a:2:{s:9:"prototype";s:21:"dojox.wire.ml.Service";s:7:"summary";s:0:"";}s:32:"dojox.wire.ml.Service.postCreate";a:5:{s:9:"prototype";s:21:"dojox.wire.ml.Service";s:4:"type";s:8:"Function";s:6:"source";s:39:" this.handler = this._createHandler();";s:7:"summary";s:21:"Call _createHandler()";s:11:"description";s:21:"See _createHandler().";}s:37:"dojox.wire.ml.Service._handlerClasses";a:4:{s:9:"prototype";s:21:"dojox.wire.ml.Service";s:4:"type";s:6:"Object";s:7:"private";b:1;s:7:"summary";s:0:"";}s:36:"dojox.wire.ml.Service._createHandler";a:7:{s:9:"prototype";s:21:"dojox.wire.ml.Service";s:4:"type";s:8:"Function";s:6:"source";s:1050:" if(this.url){ var self = this; var d = dojo.xhrGet({ url: this.url, handleAs: "json", sync: true }); d.addCallback(function(result){ self.smd = result; }); if(this.smd && !this.serviceUrl){ this.serviceUrl = (this.smd.serviceUrl || this.smd.serviceURL); } } var handlerClass = undefined; if(this.handlerClass){ handlerClass = dojox.wire._getClass(this.handlerClass); }else if(this.serviceType){ handlerClass = this._handlerClasses[this.serviceType]; if(handlerClass && dojo.isString(handlerClass)){ handlerClass = dojox.wire._getClass(handlerClass); this._handlerClasses[this.serviceType] = handlerClass; } }else if(this.smd && this.smd.serviceType){ handlerClass = this._handlerClasses[this.smd.serviceType]; if(handlerClass && dojo.isString(handlerClass)){ handlerClass = dojox.wire._getClass(handlerClass); this._handlerClasses[this.smd.serviceType] = handlerClass; } } if(!handlerClass){ return null; //null } return new handlerClass(); //Object";s:7:"summary";s:184:"Create a service handler desription: A service handler class is determined by: 1. 'handlerClass' attribute 2. 'serviceType' attribute 3. 'serviceType' property in a service description";s:14:"return_summary";s:17:"A service handler";s:7:"returns";s:11:"null|Object";s:7:"private";b:1;}s:32:"dojox.wire.ml.Service.callMethod";a:5:{s:9:"prototype";s:21:"dojox.wire.ml.Service";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:6:"method";a:2:{s:4:"type";s:1:"A";s:7:"summary";s:11:"method name";}s:10:"parameters";a:2:{s:4:"type";s:2:"An";s:7:"summary";s:16:"array parameters";}}s:6:"source";s:124:" var deferred = new dojo.Deferred(); this.handler.bind(method, parameters, deferred, this.serviceUrl); return deferred;";s:7:"summary";s:37:"Call a service method with parameters";}s:29:"dojox.wire.ml.Service.handler";a:2:{s:8:"instance";s:21:"dojox.wire.ml.Service";s:7:"summary";s:0:"";}s:42:"dojox.wire.ml.Service._handlerClasses.TEXT";a:2:{s:14:"private_parent";b:1;s:7:"summary";s:0:"";}s:41:"dojox.wire.ml.Service._handlerClasses.XML";a:2:{s:14:"private_parent";b:1;s:7:"summary";s:0:"";}s:42:"dojox.wire.ml.Service._handlerClasses.JSON";a:2:{s:14:"private_parent";b:1;s:7:"summary";s:0:"";}s:46:"dojox.wire.ml.Service._handlerClasses.JSON-RPC";a:2:{s:14:"private_parent";b:1;s:7:"summary";s:0:"";}s:25:"dojox.wire.ml.RestHandler";a:4:{s:4:"type";s:8:"Function";s:7:"summary";s:22:"A REST service handler";s:11:"description";s:131:"This class serves as a base REST service. Sub-classes may override _getContent() and _getResult() to handle specific content types.";s:9:"classlike";b:1;}s:37:"dojox.wire.ml.RestHandler.contentType";a:2:{s:9:"prototype";s:25:"dojox.wire.ml.RestHandler";s:7:"summary";s:0:"";}s:34:"dojox.wire.ml.RestHandler.handleAs";a:2:{s:9:"prototype";s:25:"dojox.wire.ml.RestHandler";s:7:"summary";s:0:"";}s:30:"dojox.wire.ml.RestHandler.bind";a:6:{s:9:"prototype";s:25:"dojox.wire.ml.RestHandler";s:4:"type";s:8:"Function";s:10:"parameters";a:4:{s:6:"method";a:2:{s:4:"type";s:1:"A";s:7:"summary";s:11:"method name";}s:10:"parameters";a:2:{s:4:"type";s:2:"An";s:7:"summary";s:19:"array of parameters";}s:8:"deferred";a:2:{s:4:"type";s:8:"Deferred";s:7:"summary";s:0:"";}s:3:"url";a:2:{s:4:"type";s:1:"A";s:7:"summary";s:18:"URL for the method";}}s:6:"source";s:729:" method = method.toUpperCase(); var self = this; var args = { url: this._getUrl(method, parameters, url), contentType: this.contentType, handleAs: this.handleAs, headers: this.headers, preventCache: this.preventCache }; var d = null; if(method == "POST"){ args.postData = this._getContent(method, parameters); d = dojo.rawXhrPost(args); }else if(method == "PUT"){ args.putData = this._getContent(method, parameters); d = dojo.rawXhrPut(args); }else if(method == "DELETE"){ d = dojo.xhrDelete(args); }else{ // "GET" d = dojo.xhrGet(args); } d.addCallbacks(function(result){ deferred.callback(self._getResult(result)); }, function(error){ deferred.errback(error); });";s:7:"summary";s:38:"Call a service method with parameters.";s:11:"description";s:245:"A service is called with a URL generated by _getUrl() and an HTTP method specified with 'method'. For "POST" and "PUT", a content is generated by _getContent(). When data is loaded, _getResult() is used to pass the result to Deferred.callback().";}s:33:"dojox.wire.ml.RestHandler._getUrl";a:9:{s:9:"prototype";s:25:"dojox.wire.ml.RestHandler";s:4:"type";s:8:"Function";s:10:"parameters";a:3:{s:6:"method";a:2:{s:4:"type";s:6:"String";s:7:"summary";s:13:"A method name";}s:10:"parameters";a:2:{s:4:"type";s:5:"Array";s:7:"summary";s:22:"An array of parameters";}s:3:"url";a:2:{s:4:"type";s:6:"String";s:7:"summary";s:10:"A base URL";}}s:6:"source";s:804:" var query; if(method == "GET" || method == "DELETE"){ if(parameters.length > 0){ query = parameters[0]; } }else{ // "POST" || "PUT" if(parameters.length > 1){ query = parameters[1]; } } if(query){ var queryString = ""; for(var name in query){ var value = query[name]; if(value){ value = encodeURIComponent(value); var variable = "{" + name + "}"; var index = url.indexOf(variable); if(index >= 0){ // encode in path url = url.substring(0, index) + value + url.substring(index + variable.length); }else{ // encode as query string if(queryString){ queryString += "&"; } queryString += (name + "=" + value); } } } if(queryString){ url += "?" + queryString; } } return url; //String";s:7:"summary";s:14:"Generate a URL";s:11:"description";s:276:"If 'method' is "GET" or "DELETE", a query string is generated from a query object specified to the first parameter in 'parameters' and appended to 'url'. If 'url' contains variable seguments ("{parameter_name}"), they are replaced with corresponding parameter values, instead.";s:14:"return_summary";s:5:"A URL";s:7:"returns";s:6:"String";s:7:"private";b:1;}s:37:"dojox.wire.ml.RestHandler._getContent";a:9:{s:9:"prototype";s:25:"dojox.wire.ml.RestHandler";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:6:"method";a:2:{s:4:"type";s:6:"String";s:7:"summary";s:13:"A method name";}s:10:"parameters";a:2:{s:4:"type";s:5:"Array";s:7:"summary";s:22:"An array of parameters";}}s:6:"source";s:136:" if(method == "POST" || method == "PUT"){ return (parameters ? parameters[0] : null); //anything }else{ return null; //null }";s:7:"summary";s:26:"Generate a request content";s:11:"description";s:80:"If 'method' is "POST" or "PUT", the first parameter in 'parameters' is returned.";s:14:"return_summary";s:17:"A request content";s:7:"returns";s:13:"anything|null";s:7:"private";b:1;}s:36:"dojox.wire.ml.RestHandler._getResult";a:9:{s:9:"prototype";s:25:"dojox.wire.ml.RestHandler";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:4:"data";a:2:{s:4:"type";s:8:"anything";s:7:"summary";s:37:"A response data returned by a service";}}s:6:"source";s:25:" return data; //anything";s:7:"summary";s:16:"Extract a result";s:11:"description";s:34:"A response data is returned as is.";s:14:"return_summary";s:15:"A result object";s:7:"returns";s:8:"anything";s:7:"private";b:1;}s:24:"dojox.wire.ml.XmlHandler";a:5:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:25:"dojox.wire.ml.RestHandler";}s:4:"call";a:1:{i:0;s:25:"dojox.wire.ml.RestHandler";}}s:7:"summary";s:30:"A REST service handler for XML";s:11:"description";s:52:"This class provides XML handling for a REST service.";s:9:"classlike";b:1;}s:36:"dojox.wire.ml.XmlHandler.contentType";a:2:{s:9:"prototype";s:24:"dojox.wire.ml.XmlHandler";s:7:"summary";s:0:"";}s:33:"dojox.wire.ml.XmlHandler.handleAs";a:2:{s:9:"prototype";s:24:"dojox.wire.ml.XmlHandler";s:7:"summary";s:0:"";}s:36:"dojox.wire.ml.XmlHandler._getContent";a:8:{s:9:"prototype";s:24:"dojox.wire.ml.XmlHandler";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:6:"method";a:2:{s:4:"type";s:6:"String";s:7:"summary";s:13:"A method name";}s:10:"parameters";a:2:{s:4:"type";s:5:"Array";s:7:"summary";s:22:"An array of parameters";}}s:6:"source";s:538:" var content = null; if(method == "POST" || method == "PUT"){ var p = parameters[0]; if(p){ if(dojo.isString(p)){ content = p; }else{ var element = p; if(element instanceof dojox.wire.ml.XmlElement){ element = element.element; }else if(element.nodeType === 9 /* DOCUMENT_NODE */){ element = element.documentElement; } var declaration = ""; // TODO: encoding? content = declaration + dojox.xml.parser.innerXML(element); } } } return content;";s:11:"description";s:103:"If 'method' is "POST" or "PUT", the first parameter in 'parameters' is used to generate an XML content.";s:14:"return_summary";s:17:"A request content";s:7:"private";b:1;s:7:"summary";s:0:"";}s:35:"dojox.wire.ml.XmlHandler._getResult";a:8:{s:9:"prototype";s:24:"dojox.wire.ml.XmlHandler";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:4:"data";a:2:{s:4:"type";s:8:"Document";s:7:"summary";s:37:"A response data returned by a service";}}s:6:"source";s:76:" if(data){ data = new dojox.wire.ml.XmlElement(data); } return data;";s:7:"summary";s:16:"Extract a result";s:11:"description";s:67:"A response data (XML Document) is returned wrapped with XmlElement.";s:14:"return_summary";s:15:"A result object";s:7:"private";b:1;}s:25:"dojox.wire.ml.JsonHandler";a:5:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:25:"dojox.wire.ml.RestHandler";}s:4:"call";a:1:{i:0;s:25:"dojox.wire.ml.RestHandler";}}s:7:"summary";s:31:"A REST service handler for JSON";s:11:"description";s:53:"This class provides JSON handling for a REST service.";s:9:"classlike";b:1;}s:37:"dojox.wire.ml.JsonHandler.contentType";a:2:{s:9:"prototype";s:25:"dojox.wire.ml.JsonHandler";s:7:"summary";s:0:"";}s:34:"dojox.wire.ml.JsonHandler.handleAs";a:2:{s:9:"prototype";s:25:"dojox.wire.ml.JsonHandler";s:7:"summary";s:0:"";}s:33:"dojox.wire.ml.JsonHandler.headers";a:3:{s:9:"prototype";s:25:"dojox.wire.ml.JsonHandler";s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}s:37:"dojox.wire.ml.JsonHandler._getContent";a:9:{s:9:"prototype";s:25:"dojox.wire.ml.JsonHandler";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:6:"method";a:2:{s:4:"type";s:6:"String";s:7:"summary";s:13:"A method name";}s:10:"parameters";a:2:{s:4:"type";s:5:"Array";s:7:"summary";s:22:"An array of parameters";}}s:6:"source";s:255:" var content = null; if(method == "POST" || method == "PUT"){ var p = (parameters ? parameters[0] : undefined); if(p){ if(dojo.isString(p)){ content = p; }else{ content = dojo.toJson(p); } } } return content; //String";s:7:"summary";s:26:"Generate a request content";s:11:"description";s:102:"If 'method' is "POST" or "PUT", the first parameter in 'parameter' is used to generate a JSON content.";s:14:"return_summary";s:17:"A request content";s:7:"returns";s:6:"String";s:7:"private";b:1;}s:40:"dojox.wire.ml.JsonHandler.headers.Accept";a:1:{s:7:"summary";s:0:"";}s:13:"dojox.wire.ml";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}s:10:"dojox.wire";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}s:5:"dojox";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}}