Work on CMS file system implementation
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / file / provider / CmsPath.java
index 504e69bff99c2e86e5438faa9bb1401f07e0d0d4..ce5e4b9e549c7dd78f3efefa99c1d14ac72b350b 100644 (file)
@@ -1,8 +1,27 @@
 package org.argeo.cms.file.provider;
 
+import org.argeo.api.acr.Content;
 import org.argeo.api.acr.fs.AbstractFsPath;
+import org.argeo.api.acr.spi.ProvidedContent;
+import org.argeo.api.acr.spi.ProvidedSession;
 
 public class CmsPath extends AbstractFsPath<CmsFileSystem, CmsFileStore> {
+       final static String SEPARATOR = "/";
+
+       // lazy loaded
+       private ProvidedContent content;
+
+       ProvidedContent getContent() {
+               if (content == null) {
+                       content = getFileSystem().getContent(toString());
+               }
+               return content;
+       }
+
+       CmsPath(CmsFileSystem fileSystem, Content content) {
+               this(fileSystem, content.getPath());
+               this.content = (ProvidedContent) content;
+       }
 
        public CmsPath(CmsFileSystem filesSystem, CmsFileStore fileStore, String[] segments, boolean absolute) {
                super(filesSystem, fileStore, segments, absolute);
@@ -22,4 +41,8 @@ public class CmsPath extends AbstractFsPath<CmsFileSystem, CmsFileStore> {
                return new CmsPath(getFileSystem(), getFileStore(), segments, absolute);
        }
 
+       ProvidedSession getContentSession() {
+               return getFileSystem().getContentSession();
+       }
+
 }