X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.jcr%2Fsrc%2Forg%2Fargeo%2Fjcr%2Ffs%2FJcrBasicfileAttributes.java;h=7c9711bf06ee0739019fe43b53f53218e7f9ca93;hb=46cc2039ac20703c484aa994b830a2da113f2c97;hp=92d9152d9231c1f043d5d21bcdf71319b6b86e29;hpb=088c1b517a543e935d8ab65c3b2fd2d0269b551d;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.jcr/src/org/argeo/jcr/fs/JcrBasicfileAttributes.java b/org.argeo.jcr/src/org/argeo/jcr/fs/JcrBasicfileAttributes.java index 92d9152d9..7c9711bf0 100644 --- a/org.argeo.jcr/src/org/argeo/jcr/fs/JcrBasicfileAttributes.java +++ b/org.argeo.jcr/src/org/argeo/jcr/fs/JcrBasicfileAttributes.java @@ -1,5 +1,8 @@ package org.argeo.jcr.fs; +import static javax.jcr.Property.JCR_CREATED; +import static javax.jcr.Property.JCR_LAST_MODIFIED; + import java.nio.file.attribute.FileTime; import java.time.Instant; @@ -14,7 +17,7 @@ import org.argeo.jcr.JcrUtils; public class JcrBasicfileAttributes implements NodeFileAttributes { private final Node node; - private FileTime EPOCH = FileTime.fromMillis(0); + private final static FileTime EPOCH = FileTime.fromMillis(0); public JcrBasicfileAttributes(Node node) { if (node == null) @@ -25,10 +28,17 @@ public class JcrBasicfileAttributes implements NodeFileAttributes { @Override public FileTime lastModifiedTime() { try { - if (node.isNodeType(NodeType.MIX_LAST_MODIFIED)) { - Instant instant = node.getProperty(Property.JCR_LAST_MODIFIED).getDate().toInstant(); + if (node.hasProperty(JCR_LAST_MODIFIED)) { + Instant instant = node.getProperty(JCR_LAST_MODIFIED).getDate().toInstant(); + return FileTime.from(instant); + } else if (node.hasProperty(JCR_CREATED)) { + Instant instant = node.getProperty(JCR_CREATED).getDate().toInstant(); return FileTime.from(instant); } +// if (node.isNodeType(NodeType.MIX_LAST_MODIFIED)) { +// Instant instant = node.getProperty(Property.JCR_LAST_MODIFIED).getDate().toInstant(); +// return FileTime.from(instant); +// } return EPOCH; } catch (RepositoryException e) { throw new JcrFsException("Cannot get last modified time", e); @@ -43,10 +53,17 @@ public class JcrBasicfileAttributes implements NodeFileAttributes { @Override public FileTime creationTime() { try { - if (node.isNodeType(NodeType.MIX_CREATED)) { - Instant instant = node.getProperty(Property.JCR_CREATED).getDate().toInstant(); + if (node.hasProperty(JCR_CREATED)) { + Instant instant = node.getProperty(JCR_CREATED).getDate().toInstant(); + return FileTime.from(instant); + } else if (node.hasProperty(JCR_LAST_MODIFIED)) { + Instant instant = node.getProperty(JCR_LAST_MODIFIED).getDate().toInstant(); return FileTime.from(instant); } +// if (node.isNodeType(NodeType.MIX_CREATED)) { +// Instant instant = node.getProperty(JCR_CREATED).getDate().toInstant(); +// return FileTime.from(instant); +// } return EPOCH; } catch (RepositoryException e) { throw new JcrFsException("Cannot get creation time", e); @@ -106,7 +123,11 @@ public class JcrBasicfileAttributes implements NodeFileAttributes { @Override public Object fileKey() { - return null; + try { + return node.getIdentifier(); + } catch (RepositoryException e) { + throw new JcrFsException("Cannot get identifier", e); + } } @Override