X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Facr%2Fxml%2FDomContent.java;h=d2b5188f5fd5f88f93599f4876c72b251f7a0423;hb=333f1fbd809a57b74e9376d074825d14722d7f9d;hp=ac863403deed8138a298cb25a0efd5ce098c7d0a;hpb=dcdbf77c4ec46f1dcad5d3fa011fe072e921f187;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms/src/org/argeo/cms/acr/xml/DomContent.java b/org.argeo.cms/src/org/argeo/cms/acr/xml/DomContent.java index ac863403d..d2b5188f5 100644 --- a/org.argeo.cms/src/org/argeo/cms/acr/xml/DomContent.java +++ b/org.argeo.cms/src/org/argeo/cms/acr/xml/DomContent.java @@ -1,8 +1,11 @@ package org.argeo.cms.acr.xml; import java.nio.CharBuffer; +import java.nio.file.Files; +import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; +import java.util.List; import java.util.Optional; import java.util.Set; import java.util.concurrent.CompletableFuture; @@ -13,6 +16,7 @@ import javax.xml.namespace.QName; import org.argeo.api.acr.Content; import org.argeo.api.acr.ContentName; +import org.argeo.api.acr.CrName; import org.argeo.api.acr.spi.ProvidedContent; import org.argeo.api.acr.spi.ProvidedSession; import org.argeo.cms.acr.AbstractContent; @@ -28,7 +32,6 @@ import org.w3c.dom.Text; /** Content persisted as a DOM element. */ public class DomContent extends AbstractContent implements ProvidedContent { - private final ProvidedSession session; private final DomContentProvider provider; private final Element element; @@ -36,7 +39,7 @@ public class DomContent extends AbstractContent implements ProvidedContent { private Boolean hasText = null; public DomContent(ProvidedSession session, DomContentProvider contentProvider, Element element) { - this.session = session; + super(session); this.provider = contentProvider; this.element = element; } @@ -50,7 +53,7 @@ public class DomContent extends AbstractContent implements ProvidedContent { if (element.getParentNode() == null) {// root String mountPath = provider.getMountPath(); if (mountPath != null) { - Content mountPoint = session.getMountPoint(mountPath); + Content mountPoint = getSession().getMountPoint(mountPath); return mountPoint.getName(); } } @@ -198,7 +201,7 @@ public class DomContent extends AbstractContent implements ProvidedContent { @Override public Iterator iterator() { NodeList nodeList = element.getChildNodes(); - return new ElementIterator(this, session, provider, nodeList); + return new ElementIterator(this, getSession(), provider, nodeList); } @Override @@ -209,7 +212,7 @@ public class DomContent extends AbstractContent implements ProvidedContent { if (mountPath == null) return null; String[] parent = ContentUtils.getParentPath(mountPath); - return session.get(parent[0]); + return getSession().get(parent[0]); } if (parentNode instanceof Document) return null; @@ -263,7 +266,7 @@ public class DomContent extends AbstractContent implements ProvidedContent { if (String.class.isAssignableFrom(clss)) { CompletableFuture res = new CompletableFuture<>(); res.thenAccept((s) -> { - session.notifyModification(this); + getSession().notifyModification(this); element.setTextContent(s); }); return (CompletableFuture) res; @@ -271,6 +274,16 @@ public class DomContent extends AbstractContent implements ProvidedContent { return super.write(clss); } + /* + * TYPING + */ + @Override + public List getContentClasses() { + List res = new ArrayList<>(); + res.add(getName()); + return res; + } + /* * MOUNT MANAGEMENT */ @@ -282,10 +295,7 @@ public class DomContent extends AbstractContent implements ProvidedContent { return new DomContent(this, childElement); } - public ProvidedSession getSession() { - return session; - } - + @Override public DomContentProvider getProvider() { return provider; }