You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2013/12/20 16:42:19 UTC
[2/4] git commit: ISIS-640: extending ViewModelSupport API
ISIS-640: extending ViewModelSupport API
Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/9eae01f5
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/9eae01f5
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/9eae01f5
Branch: refs/heads/master
Commit: 9eae01f59eec16e74cee1ba32b9a09434315db78
Parents: 64a4e37
Author: Dan Haywood <da...@apache.org>
Authored: Fri Dec 20 15:12:05 2013 +0000
Committer: Dan Haywood <da...@apache.org>
Committed: Fri Dec 20 15:12:05 2013 +0000
----------------------------------------------------------------------
.../viewmodelsupport/ViewModelSupport.java | 4 ++++
.../ViewModelSupportDefault.java | 20 ++++++++++++++++++++
2 files changed, 24 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/isis/blob/9eae01f5/core/applib/src/main/java/org/apache/isis/applib/services/viewmodelsupport/ViewModelSupport.java
----------------------------------------------------------------------
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/viewmodelsupport/ViewModelSupport.java b/core/applib/src/main/java/org/apache/isis/applib/services/viewmodelsupport/ViewModelSupport.java
index d53a8be..2c46e93 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/viewmodelsupport/ViewModelSupport.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/viewmodelsupport/ViewModelSupport.java
@@ -16,6 +16,8 @@
*/
package org.apache.isis.applib.services.viewmodelsupport;
+import java.util.Set;
+
import org.apache.isis.applib.annotation.Programmatic;
public interface ViewModelSupport {
@@ -30,6 +32,8 @@ public interface ViewModelSupport {
@Programmatic
public String asString();
+
+ public Set<String> keySet();
}
/**
http://git-wip-us.apache.org/repos/asf/isis/blob/9eae01f5/core/runtime/src/main/java/org/apache/isis/core/runtime/services/viewmodelsupport/ViewModelSupportDefault.java
----------------------------------------------------------------------
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/viewmodelsupport/ViewModelSupportDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/viewmodelsupport/ViewModelSupportDefault.java
index 722ed84..646cccd 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/services/viewmodelsupport/ViewModelSupportDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/services/viewmodelsupport/ViewModelSupportDefault.java
@@ -17,7 +17,13 @@
package org.apache.isis.core.runtime.services.viewmodelsupport;
import java.nio.charset.Charset;
+import java.util.List;
+import java.util.Set;
+import com.google.common.base.Function;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
import com.google.common.io.BaseEncoding;
import org.dom4j.Document;
@@ -59,6 +65,20 @@ public class ViewModelSupportDefault implements ViewModelSupport {
final String xmlStr = Dom4jUtil.asString(doc);
return BaseEncoding.base64Url().encode(xmlStr.getBytes(Charset.forName("UTF-8")));
}
+
+ private static final Function<Element, String> ELEMENT_NAME = new Function<Element, String>(){
+ @Override
+ public String apply(final Element input) {
+ return input.getName();
+ }
+ };
+
+ @Override
+ public Set<String> keySet() {
+ Element element = doc.getRootElement();
+ List<Element> elements = element.elements();
+ return Sets.newLinkedHashSet(Iterables.transform(elements, ELEMENT_NAME));
+ }
}
@Override