blob: ecfa9bb4872ae8e5744f52f5a8b9af3010a318b3 [file] [log] [blame]
/*
* Copyright 2008 Google Inc.
*
* 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.
*/
package com.google.gwt.xml.client.impl;
import com.google.gwt.core.client.JavaScriptException;
import com.google.gwt.core.client.JavaScriptObject;
import com.google.gwt.xml.client.CDATASection;
import com.google.gwt.xml.client.Comment;
import com.google.gwt.xml.client.DOMException;
import com.google.gwt.xml.client.Document;
import com.google.gwt.xml.client.DocumentFragment;
import com.google.gwt.xml.client.Element;
import com.google.gwt.xml.client.Node;
import com.google.gwt.xml.client.NodeList;
import com.google.gwt.xml.client.ProcessingInstruction;
import com.google.gwt.xml.client.Text;
/**
* This class wraps the native Document object.
*/
class DocumentImpl extends NodeImpl implements Document {
protected DocumentImpl(JavaScriptObject o) {
super(o);
}
/**
* This function delegates to the native method
* <code>createCDATASection</code> in XMLParserImpl.
*/
public CDATASection createCDATASection(String data) {
try {
return (CDATASection) NodeImpl.build(XMLParserImpl.createCDATASection(
this.getJsObject(), data));
} catch (JavaScriptException e) {
throw new DOMNodeException(DOMException.INVALID_CHARACTER_ERR, e, this);
}
}
/**
* This function delegates to the native method <code>createComment</code>
* in XMLParserImpl.
*/
public Comment createComment(String data) {
try {
return (Comment) NodeImpl.build(XMLParserImpl.createComment(
this.getJsObject(), data));
} catch (JavaScriptException e) {
throw new DOMNodeException(DOMException.INVALID_CHARACTER_ERR, e, this);
}
}
/**
* This function delegates to the native method
* <code>createDocumentFragment</code> in XMLParserImpl.
*/
public DocumentFragment createDocumentFragment() {
try {
return (DocumentFragment) NodeImpl.build(XMLParserImpl.createDocumentFragment(this.getJsObject()));
} catch (JavaScriptException e) {
throw new DOMNodeException(DOMException.INVALID_CHARACTER_ERR, e, this);
}
}
/**
* This function delegates to the native method <code>createElement</code>
* in XMLParserImpl.
*/
public Element createElement(String tagName) {
try {
return (Element) NodeImpl.build(XMLParserImpl.createElement(
this.getJsObject(), tagName));
} catch (JavaScriptException e) {
throw new DOMNodeException(DOMException.INVALID_CHARACTER_ERR, e, this);
}
}
/**
* This function delegates to the native method
* <code>createProcessingInstruction</code> in XMLParserImpl.
*/
public ProcessingInstruction createProcessingInstruction(String target,
String data) {
try {
return (ProcessingInstruction) NodeImpl.build(XMLParserImpl.createProcessingInstruction(
this.getJsObject(), target, data));
} catch (JavaScriptException e) {
throw new DOMNodeException(DOMException.INVALID_CHARACTER_ERR, e, this);
}
}
/**
* This function delegates to the native method <code>createTextNode</code>
* in XMLParserImpl.
*/
public Text createTextNode(String data) {
try {
return (Text) NodeImpl.build(XMLParserImpl.createTextNode(
this.getJsObject(), data));
} catch (JavaScriptException e) {
throw new DOMNodeException(DOMException.INVALID_CHARACTER_ERR, e, this);
}
}
/**
* This function delegates to the native method
* <code>getDocumentElement</code> in XMLParserImpl.
*/
public Element getDocumentElement() {
return (Element) NodeImpl.build(XMLParserImpl.getDocumentElement(this.getJsObject()));
}
/**
* This function delegates to the native method <code>getElementById</code>
* in XMLParserImpl.
*/
public Element getElementById(String elementId) {
return (Element) NodeImpl.build(XMLParserImpl.getElementById(
this.getJsObject(), elementId));
}
/**
* This function delegates to the native method
* <code>getElementsByTagName</code> in XMLParserImpl.
*/
public NodeList getElementsByTagName(String tagName) {
return new NodeListImpl(XMLParserImpl.getElementsByTagName(
this.getJsObject(), tagName));
}
/**
* This function delegates to the native method <code>importNode</code> in
* XMLParserImpl.
*/
public Node importNode(Node importedNode, boolean deep) {
try {
return NodeImpl.build(XMLParserImpl.importNode(this.getJsObject(),
((DOMItem) importedNode).getJsObject(), deep));
} catch (JavaScriptException e) {
throw new DOMNodeException(DOMException.INVALID_STATE_ERR, e, this);
}
}
}