KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > google > gwt > xml > client > impl > XMLParserImpl


1 /*
2  * Copyright 2006 Google Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5  * use this file except in compliance with the License. You may obtain a copy of
6  * the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13  * License for the specific language governing permissions and limitations under
14  * the License.
15  */

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 /**
24  * Native implementation associated with
25  * {@link com.google.gwt.xml.client.XMLParser}.
26  */

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) /*-{
37     var out = jsObject.appendChild(newChildJs);
38     return (out == null) ? null : out;
39   }-*/
;
40
41   static native void appendData(JavaScriptObject jsObject, String JavaDoc arg) /*-{
42     jsObject.appendData(arg);
43   }-*/
;
44
45   static native JavaScriptObject cloneNode(JavaScriptObject jsObject,
46       boolean deep) /*-{
47     var out = jsObject.cloneNode(deep);
48     return (out == null) ? null : out;
49   }-*/
;
50
51   static native JavaScriptObject createCDATASection(JavaScriptObject jsObject,
52       String JavaDoc data) /*-{
53     var out = jsObject.createCDATASection(data);
54     return (out == null) ? null : out;
55   }-*/
;
56
57   static native JavaScriptObject createComment(JavaScriptObject jsObject,
58       String JavaDoc data) /*-{
59     var out = jsObject.createComment(data);
60     return (out == null) ? null : out;
61   }-*/
;
62
63   static native JavaScriptObject createDocumentFragment(
64       JavaScriptObject jsObject) /*-{
65     var out = jsObject.createDocumentFragment();
66     return (out == null) ? null : out;
67   }-*/
;
68
69   static native JavaScriptObject createElement(JavaScriptObject jsObject,
70       String JavaDoc tagName) /*-{
71     var out = jsObject.createElement(tagName);
72     return (out == null) ? null : out;
73   }-*/
;
74
75   static native JavaScriptObject createProcessingInstruction(
76       JavaScriptObject jsObject, String JavaDoc target, String JavaDoc data) /*-{
77     var out = jsObject.createProcessingInstruction(target, data);
78     return (out == null) ? null : out;
79   }-*/
;
80
81   static native JavaScriptObject createTextNode(JavaScriptObject jsObject,
82       String JavaDoc data) /*-{
83     var out = jsObject.createTextNode(data);
84     return (out == null) ? null : out;
85   }-*/
;
86
87   static native void deleteData(JavaScriptObject jsObject, int offset, int count) /*-{
88     jsObject.deleteData(offset, count);
89   }-*/
;
90
91   static native String JavaDoc getAttribute(JavaScriptObject o, String JavaDoc name) /*-{
92     return o.getAttribute(name);
93   }-*/
;
94
95   static native JavaScriptObject getAttributeNode(JavaScriptObject o,
96       String JavaDoc name) /*-{
97     var out = o.getAttributeNode(name);
98     return (out == null) ? null : out;
99   }-*/
;
100
101   static native JavaScriptObject getAttributes(JavaScriptObject t) /*-{
102     return t.attributes;
103   }-*/
;
104
105   static native JavaScriptObject getChildNodes(JavaScriptObject t) /*-{
106     var out = t.childNodes;
107     return (out == null) ? null : out;
108   }-*/
;
109
110   static native String JavaDoc getData(JavaScriptObject o) /*-{
111     return o.data;
112   }-*/
;
113
114   static native JavaScriptObject getDocumentElement(JavaScriptObject o) /*-{
115     return o.documentElement;
116   }-*/
;
117
118   static JavaScriptObject getElementById(JavaScriptObject document, String JavaDoc id) {
119      return impl.getElementByIdImpl(document, id);
120    }
121
122   static JavaScriptObject getElementsByTagName(JavaScriptObject o,
123       String JavaDoc tagName) {
124     return impl.getElementsByTagNameImpl(o, tagName);
125   }
126
127   static native int getLength(JavaScriptObject o) /*-{
128     return o.length;
129   }-*/
;
130
131   static native String JavaDoc getName(JavaScriptObject o) /*-{
132     return o.name;
133   }-*/
;
134
135   static native JavaScriptObject getNamedItem(JavaScriptObject t, String JavaDoc name) /*-{
136     var out = t.getNamedItem(name);
137     return (out == null) ? null : out;
138   }-*/
;
139
140   static native String JavaDoc getNamespaceURI(JavaScriptObject jsObject) /*-{
141     var out = jsObject.namespaceURI;
142     return (out == null) ? null : out;
143   }-*/
;
144
145   static native JavaScriptObject getNextSibling(JavaScriptObject o) /*-{
146     var out = o.nextSibling;
147     return (out == null) ? null : out;
148   }-*/
;
149
150   static native String JavaDoc getNodeName(JavaScriptObject o) /*-{
151     var out = o.nodeName;
152     return (out == null) ? null : out;
153   }-*/
;
154
155   static native short getNodeType(JavaScriptObject jsObject) /*-{
156     var out = jsObject.nodeType;
157     return (out == null) ? -1 : out;
158   }-*/
;
159
160   static native String JavaDoc getNodeValue(JavaScriptObject o) /*-{
161     return o.nodeValue;
162   }-*/
;
163
164   static native JavaScriptObject getOwnerDocument(JavaScriptObject o) /*-{
165     return o.ownerDocument;
166   }-*/
;
167
168   static native JavaScriptObject getParentNode(JavaScriptObject o) /*-{
169     var out = o.parentNode;
170     return (out == null) ? null : out;
171   }-*/
;
172
173   static String JavaDoc getPrefix(JavaScriptObject jsObject) {
174     return impl.getPrefixImpl(jsObject);
175   }
176
177   static native JavaScriptObject getPreviousSibling(JavaScriptObject o) /*-{
178     return o.previousSibling;
179   }-*/
;
180
181   static native boolean getSpecified(JavaScriptObject o) /*-{
182     return o.specified;
183   }-*/
;
184
185   static native String JavaDoc getTagName(JavaScriptObject o) /*-{
186     return o.tagName;
187   }-*/
;
188
189   static native String JavaDoc getTarget(JavaScriptObject o) /*-{
190     return o.target;
191   }-*/
;
192
193   static native String JavaDoc getValue(JavaScriptObject o) /*-{
194     return o.value;
195   }-*/
;
196
197   static native boolean hasAttributes(JavaScriptObject jsObject) /*-{
198     return jsObject.attributes.length != 0;
199   }-*/
;
200
201   static native boolean hasChildNodes(JavaScriptObject jsObject) /*-{
202     return jsObject.hasChildNodes();
203   }-*/
;
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) /*-{
212     var out = jsObject.insertBefore(newChildJs, refChildJs);
213     return (out == null) ? null : out;
214   }-*/
;
215
216   static native void insertData(JavaScriptObject jsObject, int offset,
217       String JavaDoc arg) /*-{
218     jsObject.insertData(offset, arg);
219   }-*/
;
220
221   static native JavaScriptObject item(JavaScriptObject t, int index) /*-{
222     if (index >= t.length) {
223       return null;
224     }
225     var out = t.item(index);
226     return (out == null) ? null : out;
227   }-*/
;
228
229   static native void normalize(JavaScriptObject jsObject) /*-{
230     jsObject.normalize();
231   }-*/
;
232
233   static native void removeAttribute(JavaScriptObject jsObject, String JavaDoc name) /*-{
234     jsObject.removeAttribute(name);
235   }-*/
;
236
237   static native JavaScriptObject removeChild(JavaScriptObject jsObject,
238       JavaScriptObject oldChildJs) /*-{
239     var out = jsObject.removeChild(oldChildJs);
240     return (out == null) ? null : out;
241   }-*/
;
242
243   static native JavaScriptObject removeNamedItem(JavaScriptObject jsObject,
244       String JavaDoc name) /*-{
245     var out = jsObject.removeNamedItem(name);
246     return (out == null) ? null : out;
247   }-*/
;
248
249   static native JavaScriptObject replaceChild(JavaScriptObject jsObject,
250       JavaScriptObject newChildJs, JavaScriptObject oldChildJs) /*-{
251     var out = jsObject.replaceChild(newChildJs, oldChildJs);
252     return (out == null) ? null : out;
253   }-*/
;
254
255   static native void replaceData(JavaScriptObject jsObject, int offset,
256       int count, String JavaDoc arg) /*-{
257     jsObject.replaceData(offset, count, arg);
258   }-*/
;
259
260   static native void setAttribute(JavaScriptObject jsObject, String JavaDoc name,
261       String JavaDoc value) /*-{
262     jsObject.setAttribute(name, value);
263   }-*/
;
264
265   static native void setData(JavaScriptObject jsObject, String JavaDoc data) /*-{
266     jsObject.data = data;
267   }-*/
;
268
269   static native JavaScriptObject setNamedItem(JavaScriptObject jsObject,
270       JavaScriptObject arg) /*-{
271     var out = jsObject.setNamedItem(arg);
272     return (out == null) ? null : out;
273   }-*/
;
274
275   static native void setNodeValue(JavaScriptObject jsObject, String JavaDoc nodeValue) /*-{
276     jsObject.nodeValue = nodeValue;
277   }-*/
;
278
279   static native JavaScriptObject splitText(JavaScriptObject jsObject, int offset) /*-{
280     var out = jsObject.splitText(offset);
281     return (out == null) ? null : out;
282   }-*/
;
283
284   static native String JavaDoc substringData(JavaScriptObject o, int offset, int count) /*-{
285     return o.substringData(offset, count);
286   }-*/
;
287
288   /**
289    * Not globally instantable.
290    */

291   XMLParserImpl() {
292   }
293
294   public final Document createDocument() {
295     return (Document) NodeImpl.build(createDocumentImpl());
296   }
297
298   public final Document parse(String JavaDoc 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 JavaDoc id);
314
315   protected abstract JavaScriptObject getElementsByTagNameImpl(
316       JavaScriptObject o, String JavaDoc tagName);
317
318   protected abstract String JavaDoc getPrefixImpl(JavaScriptObject jsObject);
319
320   protected abstract JavaScriptObject importNodeImpl(JavaScriptObject jsObject,
321       JavaScriptObject importedNode, boolean deep);
322
323   protected abstract JavaScriptObject parseImpl(String JavaDoc contents);
324
325 }
326
Popular Tags