Refactor to use ACR instead of JCR.
[lgpl/argeo-commons.git] / jcr / org.argeo.cms.jcr / src / org / argeo / cms / jcr / acr / JcrContent.java
index b32ae302085a059bf67c67ddfcca25c173bc9f4a..63bf8dfffae04110938d08fc56ef418cbc6382ca 100644 (file)
@@ -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> A adapt(Class<A> 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 extends Closeable> C open(Class<C> 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
         */