allow the scope to be passed in, so we can support narwhal more easily
[rhinodom.git] / com / metaweb / util / javascript / DOM / JSNamedNodeMap.java
blobd20135d4fd6fe884e2d01b1c1abc3e28a0830b2b
1 package com.metaweb.util.javascript.DOM;
3 import org.mozilla.javascript.Context;
4 import org.mozilla.javascript.Function;
5 import org.mozilla.javascript.JavaScriptException;
6 import org.mozilla.javascript.Scriptable;
7 import org.mozilla.javascript.ScriptableObject;
8 import org.w3c.dom.DOMException;
9 import org.w3c.dom.NamedNodeMap;
11 import com.metaweb.util.javascript.JSObject;
13 public class JSNamedNodeMap extends JSObject {
15 private static final long serialVersionUID = -9027644357738185448L;
17 private Object _wrapped;
19 public JSNamedNodeMap() { }
21 public JSNamedNodeMap(NamedNodeMap nodemap, Scriptable scope) {
22 _wrapped = nodemap;
23 _scope = scope;
26 public static Scriptable jsConstructor(Context cx, Object[] args, Function ctorObj, boolean inNewExpr) {
27 Scriptable scope = ScriptableObject.getTopLevelScope(ctorObj);
28 NamedNodeMap nodemap = ((JSNamedNodeMap)args[1]).getWrapped();
29 return new JSNamedNodeMap(nodemap, (Scriptable)args[0]);
32 public String getClassName() {
33 return "NamedNodeMap";
36 public int jsGet_length() {
37 return ((NamedNodeMap)_wrapped).getLength();
40 public Scriptable jsFunction_getNamedItem(String name) {
41 return JSNode.makeByNodeType(((NamedNodeMap)_wrapped).getNamedItem(name), _scope);
44 public Scriptable jsFunction_setNamedItem(JSNode arg) {
45 try {
46 return JSNode.makeByNodeType(((NamedNodeMap)_wrapped).setNamedItem(arg.getWrapped()), _scope);
47 } catch (DOMException e) {
48 JSDOMException jse = new JSDOMException(e.code, _scope);
49 throw new JavaScriptException(jse.makeJSInstance(), "", 0);
53 public Scriptable jsFunction_removeNamedItem(String name) {
54 try {
55 return JSNode.makeByNodeType(((NamedNodeMap)_wrapped).removeNamedItem(name), _scope);
56 } catch (DOMException e) {
57 JSDOMException jse = new JSDOMException(e.code, _scope);
58 throw new JavaScriptException(jse.makeJSInstance(), "", 0);
62 public Scriptable jsFunction_item(int index) {
63 return JSNode.makeByNodeType(((NamedNodeMap)_wrapped).item(index), _scope);
66 public Scriptable jsFunction_getNamedItemNS(String namespaceURI, String localName) {
67 return JSNode.makeByNodeType(((NamedNodeMap)_wrapped).getNamedItemNS(namespaceURI, localName), _scope);
70 public Scriptable jsFunction_setNamedItemNS(JSNode arg) {
71 try {
72 return JSNode.makeByNodeType(((NamedNodeMap)_wrapped).setNamedItemNS(arg.getWrapped()), _scope);
73 } catch (DOMException e) {
74 JSDOMException jse = new JSDOMException(e.code, _scope);
75 throw new JavaScriptException(jse.makeJSInstance(), "", 0);
79 public Scriptable jsFunction_removeNamedItemNS(String namespaceURI, String localName) {
80 try {
81 return JSNode.makeByNodeType(((NamedNodeMap)_wrapped).removeNamedItemNS(namespaceURI, localName), _scope);
82 } catch (DOMException e) {
83 JSDOMException jse = new JSDOMException(e.code, _scope);
84 throw new JavaScriptException(jse.makeJSInstance(), "", 0);
88 public Object get(int index, Scriptable start) {
89 return jsFunction_item(index);
92 public NamedNodeMap getWrapped() {
93 return ((NamedNodeMap)_wrapped);