X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=org.argeo.cms%2Fsrc%2Forg%2Fargeo%2Fcms%2Facr%2Ffs%2FFsContent.java;h=e71acdabd2bb973770fccfd5cd0bb5d54e5ce64b;hb=fdf44255df56ae179b904e4ab326bf595674800e;hp=078cb50a8d38f28280385b7bf9e90f48c2c5aada;hpb=eb4cc3db3bf141c229f0f7ff929daff108bee6d2;p=lgpl%2Fargeo-commons.git
diff --git a/org.argeo.cms/src/org/argeo/cms/acr/fs/FsContent.java b/org.argeo.cms/src/org/argeo/cms/acr/fs/FsContent.java
index 078cb50a8..e71acdabd 100644
--- a/org.argeo.cms/src/org/argeo/cms/acr/fs/FsContent.java
+++ b/org.argeo.cms/src/org/argeo/cms/acr/fs/FsContent.java
@@ -33,6 +33,7 @@ import org.argeo.cms.acr.AbstractContent;
import org.argeo.cms.acr.ContentUtils;
import org.argeo.util.FsUtils;
+/** Content persisted as a filesystem {@link Path}. */
public class FsContent extends AbstractContent implements ProvidedContent {
final static String USER_ = "user:";
@@ -61,7 +62,7 @@ public class FsContent extends AbstractContent implements ProvidedContent {
this.session = session;
this.provider = contentProvider;
this.path = path;
- this.isRoot = contentProvider.isRoot(path);
+ this.isRoot = contentProvider.isMountRoot(path);
// TODO check file names with ':' ?
if (isRoot) {
String mountPath = provider.getMountPath();
@@ -72,7 +73,12 @@ public class FsContent extends AbstractContent implements ProvidedContent {
this.name = CrName.ROOT.get();
}
} else {
- QName providerName = NamespaceUtils.parsePrefixedName(provider, path.getFileName().toString());
+
+ // TODO should we support prefixed name for known types?
+ // QName providerName = NamespaceUtils.parsePrefixedName(provider,
+ // path.getFileName().toString());
+ QName providerName = new QName(path.getFileName().toString());
+ // TODO remove extension if mounted?
this.name = new ContentName(providerName, session);
}
}
@@ -94,6 +100,7 @@ public class FsContent extends AbstractContent implements ProvidedContent {
* ATTRIBUTES
*/
+ @SuppressWarnings("unchecked")
@Override
public Optional get(QName key, Class clss) {
Object value;
@@ -178,7 +185,7 @@ public class FsContent extends AbstractContent implements ProvidedContent {
UserDefinedFileAttributeView udfav = Files.getFileAttributeView(path, UserDefinedFileAttributeView.class);
ByteBuffer bb = ByteBuffer.wrap(value.toString().getBytes(StandardCharsets.UTF_8));
try {
- int size = udfav.write(NamespaceUtils.toPrefixedName(provider, key), bb);
+ udfav.write(NamespaceUtils.toPrefixedName(provider, key), bb);
} catch (IOException e) {
throw new ContentResourceException("Cannot delete attribute " + key + " for " + path, e);
}
@@ -266,6 +273,7 @@ public class FsContent extends AbstractContent implements ProvidedContent {
return new FsContent(this, path.getParent());
}
+ @SuppressWarnings("unchecked")
@Override
public C open(Class clss) throws IOException, IllegalArgumentException {
if (InputStream.class.isAssignableFrom(clss)) {