import java.util.Iterator;
import java.util.NoSuchElementException;
+import org.argeo.api.acr.ArgeoNamespace;
import org.argeo.api.acr.Content;
+import org.argeo.api.acr.CrName;
import org.argeo.api.acr.spi.ProvidedSession;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
class ElementIterator implements Iterator<Content> {
+ private DomContent parent;
private final ProvidedSession session;
private final DomContentProvider provider;
private final NodeList nodeList;
private final int length;
private Element nextElement = null;
- public ElementIterator(ProvidedSession session, DomContentProvider provider, NodeList nodeList) {
+ public ElementIterator(DomContent parent, ProvidedSession session, DomContentProvider provider, NodeList nodeList) {
+ this.parent = parent;
this.session = session;
this.provider = provider;
this.nodeList = nodeList;
public Content next() {
if (nextElement == null)
throw new NoSuchElementException();
- DomContent result = new DomContent(session, provider, nextElement);
+ Content result;
+ String isMount = nextElement.getAttributeNS(ArgeoNamespace.CR_NAMESPACE_URI, CrName.mount.qName().getLocalPart());
+ if (isMount.equals("true")) {
+ result = session.get(parent.getPath() + '/' + nextElement.getTagName());
+ }
+
+ else {
+ result = new DomContent(session, provider, nextElement);
+ }
currentIndex++;
nextElement = findNext();
return result;