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