]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.api/src/org/argeo/api/gcr/Content.java
e35f42f27ab7519d1122790b009ac3b65121d6ff
1 package org
.argeo
.api
.gcr
;
5 import javax
.xml
.XMLConstants
;
6 import javax
.xml
.namespace
.QName
;
9 * A semi-structured content, with attributes, within a hierarchical structure.
11 public interface Content
extends Iterable
<Content
>, Map
<QName
, Object
> {
20 * ATTRIBUTES OPERATIONS
23 <A
> A
get(QName key
, Class
<A
> clss
) throws IllegalArgumentException
;
25 default Object
get(String key
) {
26 if (key
.indexOf(':') >= 0)
27 throw new IllegalArgumentException("Name " + key
+ " has a prefix");
28 return get(new QName(XMLConstants
.NULL_NS_URI
, key
, XMLConstants
.DEFAULT_NS_PREFIX
));
31 default Object
put(String key
, Object value
) {
32 if (key
.indexOf(':') >= 0)
33 throw new IllegalArgumentException("Name " + key
+ " has a prefix");
34 return put(new QName(XMLConstants
.NULL_NS_URI
, key
, XMLConstants
.DEFAULT_NS_PREFIX
), value
);
37 default Object
remove(String key
) {
38 if (key
.indexOf(':') >= 0)
39 throw new IllegalArgumentException("Name " + key
+ " has a prefix");
40 return remove(new QName(XMLConstants
.NULL_NS_URI
, key
, XMLConstants
.DEFAULT_NS_PREFIX
));
46 Content
add(QName name
, QName
... classes
);
48 default Content
add(String name
, QName
... classes
) {
49 if (name
.indexOf(':') >= 0)
50 throw new IllegalArgumentException("Name " + name
+ " has a prefix");
51 return add(new QName(XMLConstants
.NULL_NS_URI
, name
, XMLConstants
.DEFAULT_NS_PREFIX
), classes
);
59 default <A
> A
adapt(Class
<A
> clss
) throws IllegalArgumentException
{
60 throw new IllegalArgumentException("Cannot adapt content " + this + " to " + clss
.getName());
63 default <C
extends AutoCloseable
> C
open(Class
<C
> clss
) throws Exception
, IllegalArgumentException
{
64 throw new IllegalArgumentException("Cannot open content " + this + " as " + clss
.getName());
70 // default String attr(String key) {
71 // return get(key, String.class);
74 // default String attr(Object key) {
75 // return key != null ? attr(key.toString()) : attr(null);
78 // default <A> A get(Object key, Class<A> clss) {
79 // return key != null ? get(key.toString(), clss) : get(null, clss);
83 * EXPERIMENTAL UNSUPPORTED
85 default boolean hasText() {
89 default String
getText() {
90 throw new UnsupportedOperationException();