]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.api/src/org/argeo/api/gcr/Content.java
c5cee9f0e6676495acd7f791a98204bec9f6c8d8
[lgpl/argeo-commons.git] / org.argeo.api / src / org / argeo / api / gcr / Content.java
1 package org.argeo.api.gcr;
2
3 import java.util.Map;
4
5 public interface Content extends Iterable<Content>, Map<String, Object> {
6
7 String getName();
8
9 // Iterable<String> keys();
10
11 <A> A get(String key, Class<A> clss);
12
13 ContentSession getSession();
14
15 /*
16 * DEFAULT METHODS
17 */
18 default <A> A adapt(Class<A> clss) {
19 return null;
20 }
21
22 /*
23 * CONVENIENCE METHODS
24 */
25 default String attr(String key) {
26 return get(key, String.class);
27 }
28
29 default String attr(Enum<?> key) {
30 return attr(key.name());
31 }
32
33 default <A> A get(Enum<?> key, Class<A> clss) {
34 return get(key.name(), clss);
35 }
36
37 /*
38 * EXPERIMENTAL UNSUPPORTED
39 */
40 default boolean hasText() {
41 return false;
42 }
43
44 default String getText() {
45 throw new UnsupportedOperationException();
46 }
47
48 }