projects
/
lgpl
/
argeo-commons.git
/ blobdiff
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Work on typing
[lgpl/argeo-commons.git]
/
org.argeo.cms
/
src
/
org
/
argeo
/
cms
/
gcr
/
fs
/
FsContent.java
diff --git
a/org.argeo.cms/src/org/argeo/cms/gcr/fs/FsContent.java
b/org.argeo.cms/src/org/argeo/cms/gcr/fs/FsContent.java
index 5efa65959b50a86affbf5e0b3e0b5bcc246c339d..0ba24093ffbe9a838b63a0583ecfc79d9de4f69e 100644
(file)
--- a/
org.argeo.cms/src/org/argeo/cms/gcr/fs/FsContent.java
+++ b/
org.argeo.cms/src/org/argeo/cms/gcr/fs/FsContent.java
@@
-13,6
+13,7
@@
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
+import java.util.Optional;
import java.util.Set;
import javax.xml.namespace.QName;
import java.util.Set;
import javax.xml.namespace.QName;
@@
-80,7
+81,7
@@
public class FsContent extends AbstractContent implements ProvidedContent {
*/
@Override
*/
@Override
- public <A>
A
get(QName key, Class<A> clss) {
+ public <A>
Optional<A>
get(QName key, Class<A> clss) {
Object value;
try {
// We need to add user: when accessing via Files#getAttribute
Object value;
try {
// We need to add user: when accessing via Files#getAttribute
@@
-88,19
+89,26
@@
public class FsContent extends AbstractContent implements ProvidedContent {
} catch (IOException e) {
throw new ContentResourceException("Cannot retrieve attribute " + key + " for " + path, e);
}
} catch (IOException e) {
throw new ContentResourceException("Cannot retrieve attribute " + key + " for " + path, e);
}
+ A res = null;
if (value instanceof FileTime) {
if (clss.isAssignableFrom(FileTime.class))
if (value instanceof FileTime) {
if (clss.isAssignableFrom(FileTime.class))
- re
turn
(A) value;
+ re
s =
(A) value;
Instant instant = ((FileTime) value).toInstant();
if (Object.class.isAssignableFrom(clss)) {// plain object requested
Instant instant = ((FileTime) value).toInstant();
if (Object.class.isAssignableFrom(clss)) {// plain object requested
- re
turn
(A) instant;
+ re
s =
(A) instant;
}
// TODO perform trivial file conversion to other formats
}
if (value instanceof byte[]) {
}
// TODO perform trivial file conversion to other formats
}
if (value instanceof byte[]) {
- re
turn
(A) new String((byte[]) value, StandardCharsets.UTF_8);
+ re
s =
(A) new String((byte[]) value, StandardCharsets.UTF_8);
}
}
- return (A) value;
+ if (res == null)
+ try {
+ res = (A) value;
+ } catch (ClassCastException e) {
+ return Optional.empty();
+ }
+ return Optional.of(res);
}
@Override
}
@Override