1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.htmlunit.javascript.host.dom;
16
17 import org.htmlunit.html.DomAttr;
18 import org.htmlunit.html.DomElement;
19 import org.htmlunit.javascript.HtmlUnitScriptable;
20 import org.htmlunit.javascript.configuration.JsxClass;
21 import org.htmlunit.javascript.configuration.JsxConstructor;
22 import org.htmlunit.javascript.configuration.JsxGetter;
23 import org.htmlunit.javascript.configuration.JsxSetter;
24
25
26
27
28
29
30
31
32
33
34
35
36
37 @JsxClass(domClass = DomAttr.class)
38 public class Attr extends Node {
39
40
41
42
43 @Override
44 @JsxConstructor
45 public void jsConstructor() {
46 super.jsConstructor();
47 }
48
49
50
51
52 public void detachFromParent() {
53 final DomAttr domNode = getDomNodeOrDie();
54 final DomElement parent = (DomElement) domNode.getParentNode();
55 if (parent != null) {
56 domNode.setValue(parent.getAttribute(getName()));
57 }
58 domNode.remove();
59 }
60
61
62
63
64
65 @JsxGetter
66 public String getName() {
67 return getDomNodeOrDie().getName();
68 }
69
70
71
72
73
74 @Override
75 public String getNodeValue() {
76 return getValue();
77 }
78
79
80
81
82
83 @JsxGetter
84 public HtmlUnitScriptable getOwnerElement() {
85 final DomElement parent = getDomNodeOrDie().getOwnerElement();
86 if (parent != null) {
87 return parent.getScriptableObject();
88 }
89 return null;
90 }
91
92
93
94
95
96 @Override
97 public Node getParentNode() {
98 return null;
99 }
100
101
102
103
104
105 @JsxGetter
106 public boolean isSpecified() {
107 return getDomNodeOrDie().getSpecified();
108 }
109
110
111
112
113
114 @JsxGetter
115 public String getValue() {
116 return getDomNodeOrDie().getValue();
117 }
118
119
120
121
122
123 @JsxSetter
124 public void setValue(final String value) {
125 getDomNodeOrDie().setValue(value);
126 }
127
128
129
130
131 @Override
132 public Node getFirstChild() {
133 return getLastChild();
134 }
135
136
137
138
139 @Override
140 public Node getLastChild() {
141 return null;
142 }
143
144
145
146
147 @Override
148 public DomAttr getDomNodeOrDie() {
149 return (DomAttr) super.getDomNodeOrDie();
150 }
151
152
153
154
155 @Override
156 @JsxGetter
157 public String getPrefix() {
158 return super.getPrefix();
159 }
160
161
162
163
164 @Override
165 @JsxGetter
166 public String getLocalName() {
167 return super.getLocalName();
168 }
169
170
171
172
173 @Override
174 @JsxGetter
175 public String getNamespaceURI() {
176 return super.getNamespaceURI();
177 }
178
179
180
181
182
183 @Override
184 public Node getRootNode() {
185 return this;
186 }
187 }