X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Facr%2Fxml%2FElementIterator.java;h=3f747622195943cb617d1391b344c7b69275eedb;hb=54df376a9c2dd458a82eaa09bfbb718fe699dd0d;hp=3b07081e4a7f3477e92a6137709eb95ad8f90bb4;hpb=7d2a002f5dcfe8a8c7b29803b70d4b1aff265ed1;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/acr/xml/ElementIterator.java b/org.argeo.cms/src/org/argeo/cms/acr/xml/ElementIterator.java index 3b07081e4..3f7476221 100644 --- a/org.argeo.cms/src/org/argeo/cms/acr/xml/ElementIterator.java +++ b/org.argeo.cms/src/org/argeo/cms/acr/xml/ElementIterator.java @@ -3,13 +3,16 @@ package org.argeo.cms.acr.xml; 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 { + private DomContent parent; private final ProvidedSession session; private final DomContentProvider provider; private final NodeList nodeList; @@ -18,7 +21,8 @@ class ElementIterator implements Iterator { 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; @@ -48,7 +52,15 @@ class ElementIterator implements Iterator { 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;