void remove();
+ /*
+ * TYPING
+ */
+ List<QName> getContentClasses();
+
+ /** AND */
+ default boolean isContentClass(QName... contentClass) {
+ List<QName> contentClasses = getContentClasses();
+ for (QName cClass : contentClass) {
+ if (!contentClasses.contains(cClass))
+ return false;
+ }
+ return true;
+ }
+
+ /** OR */
+ default boolean hasContentClass(QName... contentClass) {
+ List<QName> contentClasses = getContentClasses();
+ for (QName cClass : contentClass) {
+ if (contentClasses.contains(cClass))
+ return true;
+ }
+ return false;
+ }
+
/*
* DEFAULT METHODS
*/
- default <A> A adapt(Class<A> clss) throws IllegalArgumentException {
+ default <A> A adapt(Class<A> clss) {
throw new UnsupportedOperationException("Cannot adapt content " + this + " to " + clss.getName());
}
/*
* CONVENIENCE METHODS
*/
-// default String attr(String key) {
-// return get(key, String.class);
-// }
+ default String attr(String key) {
+ Object obj = get(key);
+ if (obj == null)
+ return null;
+ return obj.toString();
+
+ }
+
+ default String attr(QName key) {
+ Object obj = get(key);
+ if (obj == null)
+ return null;
+ return obj.toString();
+
+ }
//
// default String attr(Object key) {
// return key != null ? attr(key.toString()) : attr(null);