1 package org
.argeo
.cms
.acr
.xml
;
3 import java
.util
.Iterator
;
4 import java
.util
.NoSuchElementException
;
6 import org
.argeo
.api
.acr
.Content
;
7 import org
.argeo
.api
.acr
.spi
.ProvidedSession
;
8 import org
.w3c
.dom
.Element
;
9 import org
.w3c
.dom
.Node
;
10 import org
.w3c
.dom
.NodeList
;
12 class ElementIterator
implements Iterator
<Content
> {
13 private final ProvidedSession session
;
14 private final DomContentProvider provider
;
15 private final NodeList nodeList
;
17 private int currentIndex
;
18 private final int length
;
19 private Element nextElement
= null;
21 public ElementIterator(ProvidedSession session
, DomContentProvider provider
, NodeList nodeList
) {
22 this.session
= session
;
23 this.provider
= provider
;
24 this.nodeList
= nodeList
;
26 this.length
= nodeList
.getLength();
27 this.currentIndex
= 0;
28 this.nextElement
= findNext();
31 private Element
findNext() {
32 while (currentIndex
< length
) {
33 Node node
= nodeList
.item(currentIndex
);
34 if (node
instanceof Element
) {
35 return (Element
) node
;
43 public boolean hasNext() {
44 return nextElement
!= null;
48 public Content
next() {
49 if (nextElement
== null)
50 throw new NoSuchElementException();
51 DomContent result
= new DomContent(session
, provider
, nextElement
);
53 nextElement
= findNext();