package org.argeo.cms.acr.xml;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.Closeable;
import java.io.IOException;
import java.io.InputStream;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMResult;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
List<QName> res = new ArrayList<>();
if (isLocalRoot()) {
String mountPath = provider.getMountPath();
- if (mountPath != null) {
+ if (ContentUtils.SLASH_STRING.equals(mountPath)) {// repository root
+ res.add(CrName.root.qName());
+ } else {
Content mountPoint = getSession().getMountPoint(mountPath);
res.addAll(mountPoint.getContentClasses());
}
public void addContentClasses(QName... contentClass) {
if (isLocalRoot()) {
String mountPath = provider.getMountPath();
- if (mountPath != null) {
+ if (ContentUtils.SLASH_STRING.equals(mountPath)) {// repository root
+ throw new IllegalArgumentException("Cannot add content classes to repository root");
+ } else {
Content mountPoint = getSession().getMountPoint(mountPath);
mountPoint.addContentClasses(contentClass);
}
import org.argeo.api.acr.spi.ProvidedContent;
import org.argeo.api.acr.spi.ProvidedSession;
import org.argeo.cms.acr.CmsContentRepository;
+import org.argeo.cms.acr.ContentUtils;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
};
}
-// @Override
-// public Content get() {
-// return new DomContent(this, document.getDocumentElement());
-// }
-
-// public Element createElement(String name) {
-// return document.createElementNS(null, name);
-//
-// }
-
@Override
public ProvidedContent get(ProvidedSession session, String relativePath) {
if ("".equals(relativePath))
if (relativePath.startsWith("/"))
throw new IllegalArgumentException("Relative path cannot start with /");
String xPathExpression = '/' + relativePath;
- if ("/".equals(mountPath))
+ if (ContentUtils.SLASH_STRING.equals(mountPath)) // repository root
xPathExpression = "/" + CrName.root.qName() + xPathExpression;
try {
NodeList nodes = (NodeList) xPath.get().evaluate(xPathExpression, document, XPathConstants.NODESET);