| /* |
| Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved. |
| Available via Academic Free License >= 2.1 OR the modified BSD license. |
| see: http://dojotoolkit.org/license for details |
| */ |
| |
| |
| if(!dojo._hasResource["dojox.atom.io.model"]){ |
| dojo._hasResource["dojox.atom.io.model"]=true; |
| dojo.provide("dojox.atom.io.model"); |
| dojo.require("dojox.xml.parser"); |
| dojo.require("dojo.string"); |
| dojo.require("dojo.date.stamp"); |
| dojox.atom.io.model._Constants={"ATOM_URI":"http://www.w3.org/2005/Atom","ATOM_NS":"http://www.w3.org/2005/Atom","PURL_NS":"http://purl.org/atom/app#","APP_NS":"http://www.w3.org/2007/app"}; |
| dojox.atom.io.model._actions={"link":function(_1,_2){ |
| if(_1.links===null){ |
| _1.links=[]; |
| } |
| var _3=new dojox.atom.io.model.Link(); |
| _3.buildFromDom(_2); |
| _1.links.push(_3); |
| },"author":function(_4,_5){ |
| if(_4.authors===null){ |
| _4.authors=[]; |
| } |
| var _6=new dojox.atom.io.model.Person("author"); |
| _6.buildFromDom(_5); |
| _4.authors.push(_6); |
| },"contributor":function(_7,_8){ |
| if(_7.contributors===null){ |
| _7.contributors=[]; |
| } |
| var _9=new dojox.atom.io.model.Person("contributor"); |
| _9.buildFromDom(_8); |
| _7.contributors.push(_9); |
| },"category":function(_a,_b){ |
| if(_a.categories===null){ |
| _a.categories=[]; |
| } |
| var _c=new dojox.atom.io.model.Category(); |
| _c.buildFromDom(_b); |
| _a.categories.push(_c); |
| },"icon":function(_d,_e){ |
| _d.icon=dojox.xml.parser.textContent(_e); |
| },"id":function(_f,_10){ |
| _f.id=dojox.xml.parser.textContent(_10); |
| },"rights":function(obj,_11){ |
| obj.rights=dojox.xml.parser.textContent(_11); |
| },"subtitle":function(obj,_12){ |
| var cnt=new dojox.atom.io.model.Content("subtitle"); |
| cnt.buildFromDom(_12); |
| obj.subtitle=cnt; |
| },"title":function(obj,_13){ |
| var cnt=new dojox.atom.io.model.Content("title"); |
| cnt.buildFromDom(_13); |
| obj.title=cnt; |
| },"updated":function(obj,_14){ |
| obj.updated=dojox.atom.io.model.util.createDate(_14); |
| },"issued":function(obj,_15){ |
| obj.issued=dojox.atom.io.model.util.createDate(_15); |
| },"modified":function(obj,_16){ |
| obj.modified=dojox.atom.io.model.util.createDate(_16); |
| },"published":function(obj,_17){ |
| obj.published=dojox.atom.io.model.util.createDate(_17); |
| },"entry":function(obj,_18){ |
| if(obj.entries===null){ |
| obj.entries=[]; |
| } |
| var _19=obj.createEntry?obj.createEntry():new dojox.atom.io.model.Entry(); |
| _19.buildFromDom(_18); |
| obj.entries.push(_19); |
| },"content":function(obj,_1a){ |
| var cnt=new dojox.atom.io.model.Content("content"); |
| cnt.buildFromDom(_1a); |
| obj.content=cnt; |
| },"summary":function(obj,_1b){ |
| var _1c=new dojox.atom.io.model.Content("summary"); |
| _1c.buildFromDom(_1b); |
| obj.summary=_1c; |
| },"name":function(obj,_1d){ |
| obj.name=dojox.xml.parser.textContent(_1d); |
| },"email":function(obj,_1e){ |
| obj.email=dojox.xml.parser.textContent(_1e); |
| },"uri":function(obj,_1f){ |
| obj.uri=dojox.xml.parser.textContent(_1f); |
| },"generator":function(obj,_20){ |
| obj.generator=new dojox.atom.io.model.Generator(); |
| obj.generator.buildFromDom(_20); |
| }}; |
| dojox.atom.io.model.util={createDate:function(_21){ |
| var _22=dojox.xml.parser.textContent(_21); |
| if(_22){ |
| return dojo.date.stamp.fromISOString(dojo.trim(_22)); |
| } |
| return null; |
| },escapeHtml:function(str){ |
| return str.replace(/&/gm,"&").replace(/</gm,"<").replace(/>/gm,">").replace(/"/gm,""").replace(/'/gm,"'"); |
| },unEscapeHtml:function(str){ |
| return str.replace(/</gm,"<").replace(/>/gm,">").replace(/"/gm,"\"").replace(/'/gm,"'").replace(/&/gm,"&"); |
| },getNodename:function(_23){ |
| var _24=null; |
| if(_23!==null){ |
| _24=_23.localName?_23.localName:_23.nodeName; |
| if(_24!==null){ |
| var _25=_24.indexOf(":"); |
| if(_25!==-1){ |
| _24=_24.substring((_25+1),_24.length); |
| } |
| } |
| } |
| return _24; |
| }}; |
| dojo.declare("dojox.atom.io.model.Node",null,{constructor:function(_26,_27,_28,_29,_2a){ |
| this.name_space=_26; |
| this.name=_27; |
| this.attributes=[]; |
| if(_28){ |
| this.attributes=_28; |
| } |
| this.content=[]; |
| this.rawNodes=[]; |
| this.textContent=null; |
| if(_29){ |
| this.content.push(_29); |
| } |
| this.shortNs=_2a; |
| this._objName="Node"; |
| },buildFromDom:function(_2b){ |
| this._saveAttributes(_2b); |
| this.name_space=_2b.namespaceURI; |
| this.shortNs=_2b.prefix; |
| this.name=dojox.atom.io.model.util.getNodename(_2b); |
| for(var x=0;x<_2b.childNodes.length;x++){ |
| var c=_2b.childNodes[x]; |
| if(dojox.atom.io.model.util.getNodename(c)!="#text"){ |
| this.rawNodes.push(c); |
| var n=new dojox.atom.io.model.Node(); |
| n.buildFromDom(c,true); |
| this.content.push(n); |
| }else{ |
| this.content.push(c.nodeValue); |
| } |
| } |
| this.textContent=dojox.xml.parser.textContent(_2b); |
| },_saveAttributes:function(_2c){ |
| if(!this.attributes){ |
| this.attributes=[]; |
| } |
| var _2d=function(_2e){ |
| var _2f=_2e.attributes; |
| if(_2f===null){ |
| return false; |
| } |
| return (_2f.length!==0); |
| }; |
| if(_2d(_2c)&&this._getAttributeNames){ |
| var _30=this._getAttributeNames(_2c); |
| if(_30&&_30.length>0){ |
| for(var x in _30){ |
| var _31=_2c.getAttribute(_30[x]); |
| if(_31){ |
| this.attributes[_30[x]]=_31; |
| } |
| } |
| } |
| } |
| },addAttribute:function(_32,_33){ |
| this.attributes[_32]=_33; |
| },getAttribute:function(_34){ |
| return this.attributes[_34]; |
| },_getAttributeNames:function(_35){ |
| var _36=[]; |
| for(var i=0;i<_35.attributes.length;i++){ |
| _36.push(_35.attributes[i].nodeName); |
| } |
| return _36; |
| },toString:function(){ |
| var xml=[]; |
| var x; |
| var _37=(this.shortNs?this.shortNs+":":"")+this.name; |
| var _38=(this.name=="#cdata-section"); |
| if(_38){ |
| xml.push("<![CDATA["); |
| xml.push(this.textContent); |
| xml.push("]]>"); |
| }else{ |
| xml.push("<"); |
| xml.push(_37); |
| if(this.name_space){ |
| xml.push(" xmlns='"+this.name_space+"'"); |
| } |
| if(this.attributes){ |
| for(x in this.attributes){ |
| xml.push(" "+x+"='"+this.attributes[x]+"'"); |
| } |
| } |
| if(this.content){ |
| xml.push(">"); |
| for(x in this.content){ |
| xml.push(this.content[x]); |
| } |
| xml.push("</"+_37+">\n"); |
| }else{ |
| xml.push("/>\n"); |
| } |
| } |
| return xml.join(""); |
| },addContent:function(_39){ |
| this.content.push(_39); |
| }}); |
| dojo.declare("dojox.atom.io.model.AtomItem",dojox.atom.io.model.Node,{constructor:function(_3a){ |
| this.ATOM_URI=dojox.atom.io.model._Constants.ATOM_URI; |
| this.links=null; |
| this.authors=null; |
| this.categories=null; |
| this.contributors=null; |
| this.icon=this.id=this.logo=this.xmlBase=this.rights=null; |
| this.subtitle=this.title=null; |
| this.updated=this.published=null; |
| this.issued=this.modified=null; |
| this.content=null; |
| this.extensions=null; |
| this.entries=null; |
| this.name_spaces={}; |
| this._objName="AtomItem"; |
| },_getAttributeNames:function(){ |
| return null; |
| },_accepts:{},accept:function(tag){ |
| return Boolean(this._accepts[tag]); |
| },_postBuild:function(){ |
| },buildFromDom:function(_3b){ |
| var i,c,n; |
| for(i=0;i<_3b.attributes.length;i++){ |
| c=_3b.attributes.item(i); |
| n=dojox.atom.io.model.util.getNodename(c); |
| if(c.prefix=="xmlns"&&c.prefix!=n){ |
| this.addNamespace(c.nodeValue,n); |
| } |
| } |
| c=_3b.childNodes; |
| for(i=0;i<c.length;i++){ |
| if(c[i].nodeType==1){ |
| var _3c=dojox.atom.io.model.util.getNodename(c[i]); |
| if(!_3c){ |
| continue; |
| } |
| if(c[i].namespaceURI!=dojox.atom.io.model._Constants.ATOM_NS&&_3c!="#text"){ |
| if(!this.extensions){ |
| this.extensions=[]; |
| } |
| var _3d=new dojox.atom.io.model.Node(); |
| _3d.buildFromDom(c[i]); |
| this.extensions.push(_3d); |
| } |
| if(!this.accept(_3c.toLowerCase())){ |
| continue; |
| } |
| var fn=dojox.atom.io.model._actions[_3c]; |
| if(fn){ |
| fn(this,c[i]); |
| } |
| } |
| } |
| this._saveAttributes(_3b); |
| if(this._postBuild){ |
| this._postBuild(); |
| } |
| },addNamespace:function(_3e,_3f){ |
| if(_3e&&_3f){ |
| this.name_spaces[_3f]=_3e; |
| } |
| },addAuthor:function(_40,_41,uri){ |
| if(!this.authors){ |
| this.authors=[]; |
| } |
| this.authors.push(new dojox.atom.io.model.Person("author",_40,_41,uri)); |
| },addContributor:function(_42,_43,uri){ |
| if(!this.contributors){ |
| this.contributors=[]; |
| } |
| this.contributors.push(new dojox.atom.io.model.Person("contributor",_42,_43,uri)); |
| },addLink:function(_44,rel,_45,_46,_47){ |
| if(!this.links){ |
| this.links=[]; |
| } |
| this.links.push(new dojox.atom.io.model.Link(_44,rel,_45,_46,_47)); |
| },removeLink:function(_48,rel){ |
| if(!this.links||!dojo.isArray(this.links)){ |
| return; |
| } |
| var _49=0; |
| for(var i=0;i<this.links.length;i++){ |
| if((!_48||this.links[i].href===_48)&&(!rel||this.links[i].rel===rel)){ |
| this.links.splice(i,1); |
| _49++; |
| } |
| } |
| return _49; |
| },removeBasicLinks:function(){ |
| if(!this.links){ |
| return; |
| } |
| var _4a=0; |
| for(var i=0;i<this.links.length;i++){ |
| if(!this.links[i].rel){ |
| this.links.splice(i,1); |
| _4a++; |
| i--; |
| } |
| } |
| return _4a; |
| },addCategory:function(_4b,_4c,_4d){ |
| if(!this.categories){ |
| this.categories=[]; |
| } |
| this.categories.push(new dojox.atom.io.model.Category(_4b,_4c,_4d)); |
| },getCategories:function(_4e){ |
| if(!_4e){ |
| return this.categories; |
| } |
| var arr=[]; |
| for(var x in this.categories){ |
| if(this.categories[x].scheme===_4e){ |
| arr.push(this.categories[x]); |
| } |
| } |
| return arr; |
| },removeCategories:function(_4f,_50){ |
| if(!this.categories){ |
| return; |
| } |
| var _51=0; |
| for(var i=0;i<this.categories.length;i++){ |
| if((!_4f||this.categories[i].scheme===_4f)&&(!_50||this.categories[i].term===_50)){ |
| this.categories.splice(i,1); |
| _51++; |
| i--; |
| } |
| } |
| return _51; |
| },setTitle:function(str,_52){ |
| if(!str){ |
| return; |
| } |
| this.title=new dojox.atom.io.model.Content("title"); |
| this.title.value=str; |
| if(_52){ |
| this.title.type=_52; |
| } |
| },addExtension:function(_53,_54,_55,_56,_57){ |
| if(!this.extensions){ |
| this.extensions=[]; |
| } |
| this.extensions.push(new dojox.atom.io.model.Node(_53,_54,_55,_56,_57||"ns"+this.extensions.length)); |
| },getExtensions:function(_58,_59){ |
| var arr=[]; |
| if(!this.extensions){ |
| return arr; |
| } |
| for(var x in this.extensions){ |
| if((this.extensions[x].name_space===_58||this.extensions[x].shortNs===_58)&&(!_59||this.extensions[x].name===_59)){ |
| arr.push(this.extensions[x]); |
| } |
| } |
| return arr; |
| },removeExtensions:function(_5a,_5b){ |
| if(!this.extensions){ |
| return; |
| } |
| for(var i=0;i<this.extensions.length;i++){ |
| if((this.extensions[i].name_space==_5a||this.extensions[i].shortNs===_5a)&&this.extensions[i].name===_5b){ |
| this.extensions.splice(i,1); |
| i--; |
| } |
| } |
| },destroy:function(){ |
| this.links=null; |
| this.authors=null; |
| this.categories=null; |
| this.contributors=null; |
| this.icon=this.id=this.logo=this.xmlBase=this.rights=null; |
| this.subtitle=this.title=null; |
| this.updated=this.published=null; |
| this.issued=this.modified=null; |
| this.content=null; |
| this.extensions=null; |
| this.entries=null; |
| }}); |
| dojo.declare("dojox.atom.io.model.Category",dojox.atom.io.model.Node,{constructor:function(_5c,_5d,_5e){ |
| this.scheme=_5c; |
| this.term=_5d; |
| this.label=_5e; |
| this._objName="Category"; |
| },_postBuild:function(){ |
| },_getAttributeNames:function(){ |
| return ["label","scheme","term"]; |
| },toString:function(){ |
| var s=[]; |
| s.push("<category "); |
| if(this.label){ |
| s.push(" label=\""+this.label+"\" "); |
| } |
| if(this.scheme){ |
| s.push(" scheme=\""+this.scheme+"\" "); |
| } |
| if(this.term){ |
| s.push(" term=\""+this.term+"\" "); |
| } |
| s.push("/>\n"); |
| return s.join(""); |
| },buildFromDom:function(_5f){ |
| this._saveAttributes(_5f); |
| this.label=this.attributes.label; |
| this.scheme=this.attributes.scheme; |
| this.term=this.attributes.term; |
| if(this._postBuild){ |
| this._postBuild(); |
| } |
| }}); |
| dojo.declare("dojox.atom.io.model.Content",dojox.atom.io.model.Node,{constructor:function(_60,_61,src,_62,_63){ |
| this.tagName=_60; |
| this.value=_61; |
| this.src=src; |
| this.type=_62; |
| this.xmlLang=_63; |
| this.HTML="html"; |
| this.TEXT="text"; |
| this.XHTML="xhtml"; |
| this.XML="xml"; |
| this._useTextContent="true"; |
| },_getAttributeNames:function(){ |
| return ["type","src"]; |
| },_postBuild:function(){ |
| },buildFromDom:function(_64){ |
| var _65=_64.getAttribute("type"); |
| if(_65){ |
| _65=_65.toLowerCase(); |
| if(_65=="xml"||"text/xml"){ |
| _65=this.XML; |
| } |
| }else{ |
| _65="text"; |
| } |
| if(_65===this.XML){ |
| if(_64.firstChild){ |
| var i; |
| this.value=""; |
| for(i=0;i<_64.childNodes.length;i++){ |
| var c=_64.childNodes[i]; |
| if(c){ |
| this.value+=dojox.xml.parser.innerXML(c); |
| } |
| } |
| } |
| }else{ |
| if(_64.innerHTML){ |
| this.value=_64.innerHTML; |
| }else{ |
| this.value=dojox.xml.parser.textContent(_64); |
| } |
| } |
| this._saveAttributes(_64); |
| if(this.attributes){ |
| this.type=this.attributes.type; |
| this.scheme=this.attributes.scheme; |
| this.term=this.attributes.term; |
| } |
| if(!this.type){ |
| this.type="text"; |
| } |
| var _66=this.type.toLowerCase(); |
| if(_66==="html"||_66==="text/html"||_66==="xhtml"||_66==="text/xhtml"){ |
| this.value=dojox.atom.io.model.util.unEscapeHtml(this.value); |
| } |
| if(this._postBuild){ |
| this._postBuild(); |
| } |
| },toString:function(){ |
| var s=[]; |
| s.push("<"+this.tagName+" "); |
| if(!this.type){ |
| this.type="text"; |
| } |
| if(this.type){ |
| s.push(" type=\""+this.type+"\" "); |
| } |
| if(this.xmlLang){ |
| s.push(" xml:lang=\""+this.xmlLang+"\" "); |
| } |
| if(this.xmlBase){ |
| s.push(" xml:base=\""+this.xmlBase+"\" "); |
| } |
| if(this.type.toLowerCase()==this.HTML){ |
| s.push(">"+dojox.atom.io.model.util.escapeHtml(this.value)+"</"+this.tagName+">\n"); |
| }else{ |
| s.push(">"+this.value+"</"+this.tagName+">\n"); |
| } |
| var ret=s.join(""); |
| return ret; |
| }}); |
| dojo.declare("dojox.atom.io.model.Link",dojox.atom.io.model.Node,{constructor:function(_67,rel,_68,_69,_6a){ |
| this.href=_67; |
| this.hrefLang=_68; |
| this.rel=rel; |
| this.title=_69; |
| this.type=_6a; |
| },_getAttributeNames:function(){ |
| return ["href","jrefLang","rel","title","type"]; |
| },_postBuild:function(){ |
| },buildFromDom:function(_6b){ |
| this._saveAttributes(_6b); |
| this.href=this.attributes.href; |
| this.hrefLang=this.attributes.hreflang; |
| this.rel=this.attributes.rel; |
| this.title=this.attributes.title; |
| this.type=this.attributes.type; |
| if(this._postBuild){ |
| this._postBuild(); |
| } |
| },toString:function(){ |
| var s=[]; |
| s.push("<link "); |
| if(this.href){ |
| s.push(" href=\""+this.href+"\" "); |
| } |
| if(this.hrefLang){ |
| s.push(" hrefLang=\""+this.hrefLang+"\" "); |
| } |
| if(this.rel){ |
| s.push(" rel=\""+this.rel+"\" "); |
| } |
| if(this.title){ |
| s.push(" title=\""+this.title+"\" "); |
| } |
| if(this.type){ |
| s.push(" type = \""+this.type+"\" "); |
| } |
| s.push("/>\n"); |
| return s.join(""); |
| }}); |
| dojo.declare("dojox.atom.io.model.Person",dojox.atom.io.model.Node,{constructor:function(_6c,_6d,_6e,uri){ |
| this.author="author"; |
| this.contributor="contributor"; |
| if(!_6c){ |
| _6c=this.author; |
| } |
| this.personType=_6c; |
| this.name=_6d||""; |
| this.email=_6e||""; |
| this.uri=uri||""; |
| this._objName="Person"; |
| },_getAttributeNames:function(){ |
| return null; |
| },_postBuild:function(){ |
| },accept:function(tag){ |
| return Boolean(this._accepts[tag]); |
| },buildFromDom:function(_6f){ |
| var c=_6f.childNodes; |
| for(var i=0;i<c.length;i++){ |
| var _70=dojox.atom.io.model.util.getNodename(c[i]); |
| if(!_70){ |
| continue; |
| } |
| if(c[i].namespaceURI!=dojox.atom.io.model._Constants.ATOM_NS&&_70!="#text"){ |
| if(!this.extensions){ |
| this.extensions=[]; |
| } |
| var _71=new dojox.atom.io.model.Node(); |
| _71.buildFromDom(c[i]); |
| this.extensions.push(_71); |
| } |
| if(!this.accept(_70.toLowerCase())){ |
| continue; |
| } |
| var fn=dojox.atom.io.model._actions[_70]; |
| if(fn){ |
| fn(this,c[i]); |
| } |
| } |
| this._saveAttributes(_6f); |
| if(this._postBuild){ |
| this._postBuild(); |
| } |
| },_accepts:{"name":true,"uri":true,"email":true},toString:function(){ |
| var s=[]; |
| s.push("<"+this.personType+">\n"); |
| if(this.name){ |
| s.push("\t<name>"+this.name+"</name>\n"); |
| } |
| if(this.email){ |
| s.push("\t<email>"+this.email+"</email>\n"); |
| } |
| if(this.uri){ |
| s.push("\t<uri>"+this.uri+"</uri>\n"); |
| } |
| s.push("</"+this.personType+">\n"); |
| return s.join(""); |
| }}); |
| dojo.declare("dojox.atom.io.model.Generator",dojox.atom.io.model.Node,{constructor:function(uri,_72,_73){ |
| this.uri=uri; |
| this.version=_72; |
| this.value=_73; |
| },_postBuild:function(){ |
| },buildFromDom:function(_74){ |
| this.value=dojox.xml.parser.textContent(_74); |
| this._saveAttributes(_74); |
| this.uri=this.attributes.uri; |
| this.version=this.attributes.version; |
| if(this._postBuild){ |
| this._postBuild(); |
| } |
| },toString:function(){ |
| var s=[]; |
| s.push("<generator "); |
| if(this.uri){ |
| s.push(" uri=\""+this.uri+"\" "); |
| } |
| if(this.version){ |
| s.push(" version=\""+this.version+"\" "); |
| } |
| s.push(">"+this.value+"</generator>\n"); |
| var ret=s.join(""); |
| return ret; |
| }}); |
| dojo.declare("dojox.atom.io.model.Entry",dojox.atom.io.model.AtomItem,{constructor:function(id){ |
| this.id=id; |
| this._objName="Entry"; |
| this.feedUrl=null; |
| },_getAttributeNames:function(){ |
| return null; |
| },_accepts:{"author":true,"content":true,"category":true,"contributor":true,"created":true,"id":true,"link":true,"published":true,"rights":true,"summary":true,"title":true,"updated":true,"xmlbase":true,"issued":true,"modified":true},toString:function(_75){ |
| var s=[]; |
| var i; |
| if(_75){ |
| s.push("<?xml version='1.0' encoding='UTF-8'?>"); |
| s.push("<entry xmlns='"+dojox.atom.io.model._Constants.ATOM_URI+"'"); |
| }else{ |
| s.push("<entry"); |
| } |
| if(this.xmlBase){ |
| s.push(" xml:base=\""+this.xmlBase+"\" "); |
| } |
| for(i in this.name_spaces){ |
| s.push(" xmlns:"+i+"=\""+this.name_spaces[i]+"\""); |
| } |
| s.push(">\n"); |
| s.push("<id>"+(this.id?this.id:"")+"</id>\n"); |
| if(this.issued&&!this.published){ |
| this.published=this.issued; |
| } |
| if(this.published){ |
| s.push("<published>"+dojo.date.stamp.toISOString(this.published)+"</published>\n"); |
| } |
| if(this.created){ |
| s.push("<created>"+dojo.date.stamp.toISOString(this.created)+"</created>\n"); |
| } |
| if(this.issued){ |
| s.push("<issued>"+dojo.date.stamp.toISOString(this.issued)+"</issued>\n"); |
| } |
| if(this.modified){ |
| s.push("<modified>"+dojo.date.stamp.toISOString(this.modified)+"</modified>\n"); |
| } |
| if(this.modified&&!this.updated){ |
| this.updated=this.modified; |
| } |
| if(this.updated){ |
| s.push("<updated>"+dojo.date.stamp.toISOString(this.updated)+"</updated>\n"); |
| } |
| if(this.rights){ |
| s.push("<rights>"+this.rights+"</rights>\n"); |
| } |
| if(this.title){ |
| s.push(this.title.toString()); |
| } |
| if(this.summary){ |
| s.push(this.summary.toString()); |
| } |
| var _76=[this.authors,this.categories,this.links,this.contributors,this.extensions]; |
| for(var x in _76){ |
| if(_76[x]){ |
| for(var y in _76[x]){ |
| s.push(_76[x][y]); |
| } |
| } |
| } |
| if(this.content){ |
| s.push(this.content.toString()); |
| } |
| s.push("</entry>\n"); |
| return s.join(""); |
| },getEditHref:function(){ |
| if(this.links===null||this.links.length===0){ |
| return null; |
| } |
| for(var x in this.links){ |
| if(this.links[x].rel&&this.links[x].rel=="edit"){ |
| return this.links[x].href; |
| } |
| } |
| return null; |
| },setEditHref:function(url){ |
| if(this.links===null){ |
| this.links=[]; |
| } |
| for(var x in this.links){ |
| if(this.links[x].rel&&this.links[x].rel=="edit"){ |
| this.links[x].href=url; |
| return; |
| } |
| } |
| this.addLink(url,"edit"); |
| }}); |
| dojo.declare("dojox.atom.io.model.Feed",dojox.atom.io.model.AtomItem,{_accepts:{"author":true,"content":true,"category":true,"contributor":true,"created":true,"id":true,"link":true,"published":true,"rights":true,"summary":true,"title":true,"updated":true,"xmlbase":true,"entry":true,"logo":true,"issued":true,"modified":true,"icon":true,"subtitle":true},addEntry:function(_77){ |
| if(!_77.id){ |
| throw new Error("The entry object must be assigned an ID attribute."); |
| } |
| if(!this.entries){ |
| this.entries=[]; |
| } |
| _77.feedUrl=this.getSelfHref(); |
| this.entries.push(_77); |
| },getFirstEntry:function(){ |
| if(!this.entries||this.entries.length===0){ |
| return null; |
| } |
| return this.entries[0]; |
| },getEntry:function(_78){ |
| if(!this.entries){ |
| return null; |
| } |
| for(var x in this.entries){ |
| if(this.entries[x].id==_78){ |
| return this.entries[x]; |
| } |
| } |
| return null; |
| },removeEntry:function(_79){ |
| if(!this.entries){ |
| return; |
| } |
| var _7a=0; |
| for(var i=0;i<this.entries.length;i++){ |
| if(this.entries[i]===_79){ |
| this.entries.splice(i,1); |
| _7a++; |
| } |
| } |
| return _7a; |
| },setEntries:function(_7b){ |
| for(var x in _7b){ |
| this.addEntry(_7b[x]); |
| } |
| },toString:function(){ |
| var s=[]; |
| var i; |
| s.push("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"); |
| s.push("<feed xmlns=\""+dojox.atom.io.model._Constants.ATOM_URI+"\""); |
| if(this.xmlBase){ |
| s.push(" xml:base=\""+this.xmlBase+"\""); |
| } |
| for(i in this.name_spaces){ |
| s.push(" xmlns:"+i+"=\""+this.name_spaces[i]+"\""); |
| } |
| s.push(">\n"); |
| s.push("<id>"+(this.id?this.id:"")+"</id>\n"); |
| if(this.title){ |
| s.push(this.title); |
| } |
| if(this.copyright&&!this.rights){ |
| this.rights=this.copyright; |
| } |
| if(this.rights){ |
| s.push("<rights>"+this.rights+"</rights>\n"); |
| } |
| if(this.issued){ |
| s.push("<issued>"+dojo.date.stamp.toISOString(this.issued)+"</issued>\n"); |
| } |
| if(this.modified){ |
| s.push("<modified>"+dojo.date.stamp.toISOString(this.modified)+"</modified>\n"); |
| } |
| if(this.modified&&!this.updated){ |
| this.updated=this.modified; |
| } |
| if(this.updated){ |
| s.push("<updated>"+dojo.date.stamp.toISOString(this.updated)+"</updated>\n"); |
| } |
| if(this.published){ |
| s.push("<published>"+dojo.date.stamp.toISOString(this.published)+"</published>\n"); |
| } |
| if(this.icon){ |
| s.push("<icon>"+this.icon+"</icon>\n"); |
| } |
| if(this.language){ |
| s.push("<language>"+this.language+"</language>\n"); |
| } |
| if(this.logo){ |
| s.push("<logo>"+this.logo+"</logo>\n"); |
| } |
| if(this.subtitle){ |
| s.push(this.subtitle.toString()); |
| } |
| if(this.tagline){ |
| s.push(this.tagline.toString()); |
| } |
| var _7c=[this.alternateLinks,this.authors,this.categories,this.contributors,this.otherLinks,this.extensions,this.entries]; |
| for(i in _7c){ |
| if(_7c[i]){ |
| for(var x in _7c[i]){ |
| s.push(_7c[i][x]); |
| } |
| } |
| } |
| s.push("</feed>"); |
| return s.join(""); |
| },createEntry:function(){ |
| var _7d=new dojox.atom.io.model.Entry(); |
| _7d.feedUrl=this.getSelfHref(); |
| return _7d; |
| },getSelfHref:function(){ |
| if(this.links===null||this.links.length===0){ |
| return null; |
| } |
| for(var x in this.links){ |
| if(this.links[x].rel&&this.links[x].rel=="self"){ |
| return this.links[x].href; |
| } |
| } |
| return null; |
| }}); |
| dojo.declare("dojox.atom.io.model.Service",dojox.atom.io.model.AtomItem,{constructor:function(_7e){ |
| this.href=_7e; |
| },buildFromDom:function(_7f){ |
| var i; |
| this.workspaces=[]; |
| if(_7f.tagName!="service"){ |
| return; |
| } |
| if(_7f.namespaceURI!=dojox.atom.io.model._Constants.PURL_NS&&_7f.namespaceURI!=dojox.atom.io.model._Constants.APP_NS){ |
| return; |
| } |
| var ns=_7f.namespaceURI; |
| this.name_space=_7f.namespaceURI; |
| var _80; |
| if(typeof (_7f.getElementsByTagNameNS)!="undefined"){ |
| _80=_7f.getElementsByTagNameNS(ns,"workspace"); |
| }else{ |
| _80=[]; |
| var _81=_7f.getElementsByTagName("workspace"); |
| for(i=0;i<_81.length;i++){ |
| if(_81[i].namespaceURI==ns){ |
| _80.push(_81[i]); |
| } |
| } |
| } |
| if(_80&&_80.length>0){ |
| var _82=0; |
| var _83; |
| for(i=0;i<_80.length;i++){ |
| _83=(typeof (_80.item)==="undefined"?_80[i]:_80.item(i)); |
| var _84=new dojox.atom.io.model.Workspace(); |
| _84.buildFromDom(_83); |
| this.workspaces[_82++]=_84; |
| } |
| } |
| },getCollection:function(url){ |
| for(var i=0;i<this.workspaces.length;i++){ |
| var _85=this.workspaces[i].collections; |
| for(var j=0;j<_85.length;j++){ |
| if(_85[j].href==url){ |
| return _85; |
| } |
| } |
| } |
| return null; |
| }}); |
| dojo.declare("dojox.atom.io.model.Workspace",dojox.atom.io.model.AtomItem,{constructor:function(_86){ |
| this.title=_86; |
| this.collections=[]; |
| },buildFromDom:function(_87){ |
| var _88=dojox.atom.io.model.util.getNodename(_87); |
| if(_88!="workspace"){ |
| return; |
| } |
| var c=_87.childNodes; |
| var len=0; |
| for(var i=0;i<c.length;i++){ |
| var _89=c[i]; |
| if(_89.nodeType===1){ |
| _88=dojox.atom.io.model.util.getNodename(_89); |
| if(_89.namespaceURI==dojox.atom.io.model._Constants.PURL_NS||_89.namespaceURI==dojox.atom.io.model._Constants.APP_NS){ |
| if(_88==="collection"){ |
| var _8a=new dojox.atom.io.model.Collection(); |
| _8a.buildFromDom(_89); |
| this.collections[len++]=_8a; |
| } |
| }else{ |
| if(_89.namespaceURI===dojox.atom.io.model._Constants.ATOM_NS){ |
| if(_88==="title"){ |
| this.title=dojox.xml.parser.textContent(_89); |
| } |
| } |
| } |
| } |
| } |
| }}); |
| dojo.declare("dojox.atom.io.model.Collection",dojox.atom.io.model.AtomItem,{constructor:function(_8b,_8c){ |
| this.href=_8b; |
| this.title=_8c; |
| this.attributes=[]; |
| this.features=[]; |
| this.children=[]; |
| this.memberType=null; |
| this.id=null; |
| },buildFromDom:function(_8d){ |
| this.href=_8d.getAttribute("href"); |
| var c=_8d.childNodes; |
| for(var i=0;i<c.length;i++){ |
| var _8e=c[i]; |
| if(_8e.nodeType===1){ |
| var _8f=dojox.atom.io.model.util.getNodename(_8e); |
| if(_8e.namespaceURI==dojox.atom.io.model._Constants.PURL_NS||_8e.namespaceURI==dojox.atom.io.model._Constants.APP_NS){ |
| if(_8f==="member-type"){ |
| this.memberType=dojox.xml.parser.textContent(_8e); |
| }else{ |
| if(_8f=="feature"){ |
| if(_8e.getAttribute("id")){ |
| this.features.push(_8e.getAttribute("id")); |
| } |
| }else{ |
| var _90=new dojox.atom.io.model.Node(); |
| _90.buildFromDom(_8e); |
| this.children.push(_90); |
| } |
| } |
| }else{ |
| if(_8e.namespaceURI===dojox.atom.io.model._Constants.ATOM_NS){ |
| if(_8f==="id"){ |
| this.id=dojox.xml.parser.textContent(_8e); |
| }else{ |
| if(_8f==="title"){ |
| this.title=dojox.xml.parser.textContent(_8e); |
| } |
| } |
| } |
| } |
| } |
| } |
| }}); |
| } |