105 * Equivalent to {@code removeNamedItem(localName)}.
106 */
107 public Node removeNamedItemNS(String namespaceURI, String localName) {
108 return removeNamedItem(localName);
109 }
110 }
111
112 class IIONodeList implements NodeList {
113
114 List<? extends Node> nodes;
115
116 public IIONodeList(List<? extends Node> nodes) {
117 this.nodes = nodes;
118 }
119
120 public int getLength() {
121 return nodes.size();
122 }
123
124 public Node item(int index) {
125 if (index < 0 || index > nodes.size()) {
126 return null;
127 }
128 return nodes.get(index);
129 }
130 }
131
132 class IIOAttr extends IIOMetadataNode implements Attr {
133
134 Element owner;
135 String name;
136 String value;
137
138 public IIOAttr(Element owner, String name, String value) {
139 this.owner = owner;
140 this.name = name;
141 this.value = value;
142 }
143
144 public String getName() {
145 return name;
865 * Equivalent to {@code setAttributeNode(newAttr)}.
866 *
867 * @see #getAttributeNodeNS
868 */
869 public Attr setAttributeNodeNS(Attr newAttr) {
870 return setAttributeNode(newAttr);
871 }
872
873 public Attr removeAttributeNode(Attr oldAttr) {
874 removeAttribute(oldAttr.getName());
875 return oldAttr;
876 }
877
878 public NodeList getElementsByTagName(String name) {
879 List<Node> l = new ArrayList<>();
880 getElementsByTagName(name, l);
881 return new IIONodeList(l);
882 }
883
884 private void getElementsByTagName(String name, List<Node> l) {
885 if (nodeName.equals(name)) {
886 l.add(this);
887 }
888
889 Node child = getFirstChild();
890 while (child != null) {
891 ((IIOMetadataNode)child).getElementsByTagName(name, l);
892 child = child.getNextSibling();
893 }
894 }
895
896 /**
897 * Equivalent to {@code getElementsByTagName(localName)}.
898 */
899 public NodeList getElementsByTagNameNS(String namespaceURI,
900 String localName) {
901 return getElementsByTagName(localName);
902 }
903
904 public boolean hasAttributes() {
905 return attributes.size() > 0;
|
105 * Equivalent to {@code removeNamedItem(localName)}.
106 */
107 public Node removeNamedItemNS(String namespaceURI, String localName) {
108 return removeNamedItem(localName);
109 }
110 }
111
112 class IIONodeList implements NodeList {
113
114 List<? extends Node> nodes;
115
116 public IIONodeList(List<? extends Node> nodes) {
117 this.nodes = nodes;
118 }
119
120 public int getLength() {
121 return nodes.size();
122 }
123
124 public Node item(int index) {
125 if (index < 0 || index >= nodes.size()) {
126 return null;
127 }
128 return nodes.get(index);
129 }
130 }
131
132 class IIOAttr extends IIOMetadataNode implements Attr {
133
134 Element owner;
135 String name;
136 String value;
137
138 public IIOAttr(Element owner, String name, String value) {
139 this.owner = owner;
140 this.name = name;
141 this.value = value;
142 }
143
144 public String getName() {
145 return name;
865 * Equivalent to {@code setAttributeNode(newAttr)}.
866 *
867 * @see #getAttributeNodeNS
868 */
869 public Attr setAttributeNodeNS(Attr newAttr) {
870 return setAttributeNode(newAttr);
871 }
872
873 public Attr removeAttributeNode(Attr oldAttr) {
874 removeAttribute(oldAttr.getName());
875 return oldAttr;
876 }
877
878 public NodeList getElementsByTagName(String name) {
879 List<Node> l = new ArrayList<>();
880 getElementsByTagName(name, l);
881 return new IIONodeList(l);
882 }
883
884 private void getElementsByTagName(String name, List<Node> l) {
885 if (nodeName.equals(name) || "*".equals(name)) {
886 l.add(this);
887 }
888
889 Node child = getFirstChild();
890 while (child != null) {
891 ((IIOMetadataNode)child).getElementsByTagName(name, l);
892 child = child.getNextSibling();
893 }
894 }
895
896 /**
897 * Equivalent to {@code getElementsByTagName(localName)}.
898 */
899 public NodeList getElementsByTagNameNS(String namespaceURI,
900 String localName) {
901 return getElementsByTagName(localName);
902 }
903
904 public boolean hasAttributes() {
905 return attributes.size() > 0;
|