}
List<A> res = getMultiple(key, type);
return res;
-// if (res == null)
-// return null;
-// else {
-// if (res.isEmpty())
-// throw new IllegalStateException("Metadata " + key + " is not availabel as list of type " + type);
-// return res.get();
-// }
}
/*
* CONTENT OPERATIONS
*/
-// default CompletionStage<Content> edit(Consumer<Content> work) {
-// return CompletableFuture.supplyAsync(() -> {
-// work.accept(this);
-// return this;
-// }).minimalCompletionStage();
-// }
-
Content add(QName name, QName... classes);
default Content add(String name, QName... classes) {
return true;
}
+ /** AND */
+ default boolean isContentClass(QNamed... contentClass) {
+ List<QName> lst = new ArrayList<>();
+ for (QNamed qNamed : contentClass)
+ lst.add(qNamed.qName());
+ return isContentClass(lst.toArray(new QName[lst.size()]));
+ }
+
/** OR */
default boolean hasContentClass(QName... contentClass) {
List<QName> contentClasses = getContentClasses();
return false;
}
- default boolean hasContentClass(QNamed contentClass) {
- return hasContentClass(contentClass.qName());
+ /** OR */
+ default boolean hasContentClass(QNamed... contentClass) {
+ List<QName> lst = new ArrayList<>();
+ for (QNamed qNamed : contentClass)
+ lst.add(qNamed.qName());
+ return hasContentClass(lst.toArray(new QName[lst.size()]));
}
/*
/*
* ATTR AS STRING
*/
+ /**
+ * Convenience method returning an attribute as a {@link String}.
+ *
+ * @param key the attribute name
+ * @return the attribute value as a {@link String} or <code>null</code>.
+ *
+ * @see Object#toString()
+ */
default String attr(QName key) {
// TODO check String type?
Object obj = get(key);
return obj.toString();
}
+ /**
+ * Convenience method returning an attribute as a {@link String}.
+ *
+ * @param key the attribute name
+ * @return the attribute value as a {@link String} or <code>null</code>.
+ *
+ * @see Object#toString()
+ */
default String attr(QNamed key) {
return attr(key.qName());
}
+ /**
+ * Convenience method returning an attribute as a {@link String}.
+ *
+ * @param key the attribute name
+ * @return the attribute value as a {@link String} or <code>null</code>.
+ *
+ * @see Object#toString()
+ */
default String attr(String key) {
return attr(unqualified(key));
}
-//
-// default String attr(Object key) {
-// return key != null ? attr(key.toString()) : attr(null);
-// }
-//
-// default <A> A get(Object key, Class<A> clss) {
-// return key != null ? get(key.toString(), clss) : get(null, clss);
-// }
+
+ /*
+ * CONTEXT
+ */
+ /**
+ * A content within this repository
+ *
+ * @param path either an abolute path or a path relative to this content
+ */
+ Content getContent(String path);
/*
* EXPERIMENTAL UNSUPPORTED