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=b32ae302085a059bf67c67ddfcca25c173bc9f4a;hpb=e168383bac50637131fef8c41e119db7eb2284a7;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 b32ae3020..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
@@ -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
*/