1 16 package com.google.gwt.xml.client.impl; 17 18 import com.google.gwt.core.client.GWT; 19 import com.google.gwt.core.client.JavaScriptException; 20 import com.google.gwt.core.client.JavaScriptObject; 21 import com.google.gwt.xml.client.Document; 22 23 27 public abstract class XMLParserImpl { 28 29 private static XMLParserImpl impl = (XMLParserImpl) GWT.create(XMLParserImpl.class); 30 31 public static XMLParserImpl getInstance() { 32 return impl; 33 } 34 35 static native JavaScriptObject appendChild(JavaScriptObject jsObject, 36 JavaScriptObject newChildJs) ; 40 41 static native void appendData(JavaScriptObject jsObject, String arg) ; 44 45 static native JavaScriptObject cloneNode(JavaScriptObject jsObject, 46 boolean deep) ; 50 51 static native JavaScriptObject createCDATASection(JavaScriptObject jsObject, 52 String data) ; 56 57 static native JavaScriptObject createComment(JavaScriptObject jsObject, 58 String data) ; 62 63 static native JavaScriptObject createDocumentFragment( 64 JavaScriptObject jsObject) ; 68 69 static native JavaScriptObject createElement(JavaScriptObject jsObject, 70 String tagName) ; 74 75 static native JavaScriptObject createProcessingInstruction( 76 JavaScriptObject jsObject, String target, String data) ; 80 81 static native JavaScriptObject createTextNode(JavaScriptObject jsObject, 82 String data) ; 86 87 static native void deleteData(JavaScriptObject jsObject, int offset, int count) ; 90 91 static native String getAttribute(JavaScriptObject o, String name) ; 94 95 static native JavaScriptObject getAttributeNode(JavaScriptObject o, 96 String name) ; 100 101 static native JavaScriptObject getAttributes(JavaScriptObject t) ; 104 105 static native JavaScriptObject getChildNodes(JavaScriptObject t) ; 109 110 static native String getData(JavaScriptObject o) ; 113 114 static native JavaScriptObject getDocumentElement(JavaScriptObject o) ; 117 118 static JavaScriptObject getElementById(JavaScriptObject document, String id) { 119 return impl.getElementByIdImpl(document, id); 120 } 121 122 static JavaScriptObject getElementsByTagName(JavaScriptObject o, 123 String tagName) { 124 return impl.getElementsByTagNameImpl(o, tagName); 125 } 126 127 static native int getLength(JavaScriptObject o) ; 130 131 static native String getName(JavaScriptObject o) ; 134 135 static native JavaScriptObject getNamedItem(JavaScriptObject t, String name) ; 139 140 static native String getNamespaceURI(JavaScriptObject jsObject) ; 144 145 static native JavaScriptObject getNextSibling(JavaScriptObject o) ; 149 150 static native String getNodeName(JavaScriptObject o) ; 154 155 static native short getNodeType(JavaScriptObject jsObject) ; 159 160 static native String getNodeValue(JavaScriptObject o) ; 163 164 static native JavaScriptObject getOwnerDocument(JavaScriptObject o) ; 167 168 static native JavaScriptObject getParentNode(JavaScriptObject o) ; 172 173 static String getPrefix(JavaScriptObject jsObject) { 174 return impl.getPrefixImpl(jsObject); 175 } 176 177 static native JavaScriptObject getPreviousSibling(JavaScriptObject o) ; 180 181 static native boolean getSpecified(JavaScriptObject o) ; 184 185 static native String getTagName(JavaScriptObject o) ; 188 189 static native String getTarget(JavaScriptObject o) ; 192 193 static native String getValue(JavaScriptObject o) ; 196 197 static native boolean hasAttributes(JavaScriptObject jsObject) ; 200 201 static native boolean hasChildNodes(JavaScriptObject jsObject) ; 204 205 static JavaScriptObject importNode(JavaScriptObject jsObject, 206 JavaScriptObject importedNode, boolean deep) { 207 return impl.importNodeImpl(jsObject, importedNode, deep); 208 } 209 210 static native JavaScriptObject insertBefore(JavaScriptObject jsObject, 211 JavaScriptObject newChildJs, JavaScriptObject refChildJs) ; 215 216 static native void insertData(JavaScriptObject jsObject, int offset, 217 String arg) ; 220 221 static native JavaScriptObject item(JavaScriptObject t, int index) ; 228 229 static native void normalize(JavaScriptObject jsObject) ; 232 233 static native void removeAttribute(JavaScriptObject jsObject, String name) ; 236 237 static native JavaScriptObject removeChild(JavaScriptObject jsObject, 238 JavaScriptObject oldChildJs) ; 242 243 static native JavaScriptObject removeNamedItem(JavaScriptObject jsObject, 244 String name) ; 248 249 static native JavaScriptObject replaceChild(JavaScriptObject jsObject, 250 JavaScriptObject newChildJs, JavaScriptObject oldChildJs) ; 254 255 static native void replaceData(JavaScriptObject jsObject, int offset, 256 int count, String arg) ; 259 260 static native void setAttribute(JavaScriptObject jsObject, String name, 261 String value) ; 264 265 static native void setData(JavaScriptObject jsObject, String data) ; 268 269 static native JavaScriptObject setNamedItem(JavaScriptObject jsObject, 270 JavaScriptObject arg) ; 274 275 static native void setNodeValue(JavaScriptObject jsObject, String nodeValue) ; 278 279 static native JavaScriptObject splitText(JavaScriptObject jsObject, int offset) ; 283 284 static native String substringData(JavaScriptObject o, int offset, int count) ; 287 288 291 XMLParserImpl() { 292 } 293 294 public final Document createDocument() { 295 return (Document) NodeImpl.build(createDocumentImpl()); 296 } 297 298 public final Document parse(String contents) { 299 try { 300 return (Document) NodeImpl.build(parseImpl(contents)); 301 } catch (JavaScriptException e) { 302 throw new DOMParseException(contents, e); 303 } 304 } 305 306 public boolean supportsCDATASection() { 307 return true; 308 } 309 310 protected abstract JavaScriptObject createDocumentImpl(); 311 312 protected abstract JavaScriptObject getElementByIdImpl( 313 JavaScriptObject document, String id); 314 315 protected abstract JavaScriptObject getElementsByTagNameImpl( 316 JavaScriptObject o, String tagName); 317 318 protected abstract String getPrefixImpl(JavaScriptObject jsObject); 319 320 protected abstract JavaScriptObject importNodeImpl(JavaScriptObject jsObject, 321 JavaScriptObject importedNode, boolean deep); 322 323 protected abstract JavaScriptObject parseImpl(String contents); 324 325 } 326 | Popular Tags |