X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=jcr%2Forg.argeo.cms.jcr%2Fsrc%2Forg%2Fargeo%2Fcms%2Fjcr%2Facr%2FJcrContent.java;h=63bf8dfffae04110938d08fc56ef418cbc6382ca;hb=fdf44255df56ae179b904e4ab326bf595674800e;hp=5dd37f15be00eb9b922f93b2b4781917dab816f0;hpb=cc1dd97ebcc32e1bd754073ad23def182f460452;p=lgpl%2Fargeo-commons.git diff --git a/jcr/org.argeo.cms.jcr/src/org/argeo/cms/jcr/acr/JcrContent.java b/jcr/org.argeo.cms.jcr/src/org/argeo/cms/jcr/acr/JcrContent.java index 5dd37f15b..63bf8dfff 100644 --- a/jcr/org.argeo.cms.jcr/src/org/argeo/cms/jcr/acr/JcrContent.java +++ b/jcr/org.argeo.cms.jcr/src/org/argeo/cms/jcr/acr/JcrContent.java @@ -28,10 +28,10 @@ import javax.xml.transform.stream.StreamSource; import org.argeo.api.acr.Content; import org.argeo.api.acr.NamespaceUtils; -import org.argeo.api.acr.spi.AbstractContent; import org.argeo.api.acr.spi.ContentProvider; import org.argeo.api.acr.spi.ProvidedSession; import org.argeo.api.cms.CmsConstants; +import org.argeo.cms.acr.AbstractContent; import org.argeo.cms.acr.ContentUtils; import org.argeo.jcr.Jcr; import org.argeo.jcr.JcrException; @@ -180,6 +180,8 @@ public class JcrContent extends AbstractContent { @Override public Content getParent() { + if (Jcr.isRoot(getJcrNode())) // root + return null; return new JcrContent(session, provider, jcrWorkspace, Jcr.getParentPath(getJcrNode())); } @@ -223,6 +225,7 @@ public class JcrContent extends AbstractContent { /* * ADAPTERS */ + @SuppressWarnings("unchecked") public A adapt(Class clss) { if (Source.class.isAssignableFrom(clss)) { // try { @@ -246,6 +249,7 @@ public class JcrContent extends AbstractContent { return super.adapt(clss); } + @SuppressWarnings("unchecked") @Override public C open(Class clss) throws IOException, IllegalArgumentException { if (InputStream.class.isAssignableFrom(clss)) { @@ -271,6 +275,15 @@ public class JcrContent extends AbstractContent { return provider; } + @Override + public String getSessionLocalId() { + try { + return getJcrNode().getIdentifier(); + } catch (RepositoryException e) { + throw new JcrException("Cannot get identifier for " + getJcrNode(), e); + } + } + /* * STATIC UTLITIES */