Author: lindner
Date: Thu Jun 25 00:09:16 2009
New Revision: 788219

URL: http://svn.apache.org/viewvc?rev=788219&view=rev
Log:
less HashSet!

Modified:
    
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanJsonConverter.java
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Preload.java

Modified: 
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanJsonConverter.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanJsonConverter.java?rev=788219&r1=788218&r2=788219&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanJsonConverter.java
 (original)
+++ 
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/protocol/conversion/BeanJsonConverter.java
 Thu Jun 25 00:09:16 2009
@@ -17,7 +17,10 @@
  */
 package org.apache.shindig.protocol.conversion;
 
+import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.MapMaker;
+import com.google.common.collect.Lists;
+
 import com.google.inject.Inject;
 import com.google.inject.Injector;
 
@@ -137,7 +140,7 @@
       if (value instanceof JSONObject) {
         return convertToMap((JSONObject) value, null);
       } else if (value instanceof JSONArray) {
-        return convertToCollection((JSONArray) value, new ArrayList<Object>(), 
null);
+        return convertToList((JSONArray) value, null);
       }
       return value;
     } else if (type instanceof ParameterizedType) {
@@ -161,9 +164,9 @@
     } else if (type.equals(Map.class)) {
       return convertToMap((JSONObject) value, null);
     } else if (type.equals(List.class) || type.equals(Collection.class)) {
-      return convertToCollection((JSONArray) value, new ArrayList<Object>(), 
null);
+      return convertToList((JSONArray) value, null);
     } else if (type.equals(Set.class)) {
-      return convertToCollection((JSONArray) value, new HashSet<Object>(), 
null);
+      return convertToSet((JSONArray) value, null);
     }
 
     Class<?> clazz = (Class<?>) type;
@@ -180,9 +183,9 @@
     Class<?> clazz = (Class<?>) type.getRawType();
 
     if (Set.class.isAssignableFrom(clazz)) {
-      return convertToCollection((JSONArray) value, new HashSet<Object>(), 
typeArgs[0]);
+      return convertToSet((JSONArray) value, typeArgs[0]);
     } else if (Collection.class.isAssignableFrom(clazz)) {
-      return convertToCollection((JSONArray) value, new ArrayList<Object>(), 
typeArgs[0]);
+      return convertToList((JSONArray) value, typeArgs[0]);
     } else if (Map.class.isAssignableFrom(clazz)) {
       return convertToMap((JSONObject) value, typeArgs[1]);
     } else if 
(org.apache.shindig.protocol.model.Enum.class.isAssignableFrom(clazz)) {
@@ -241,13 +244,19 @@
     return out;
   }
 
-  private Collection<Object> convertToCollection(JSONArray in, 
Collection<Object> out, Type type) {
+  private List<Object> convertToList(JSONArray in, Type type) {
+    ArrayList<Object> out = Lists.newArrayListWithExpectedSize(in.length());
+
     for (int i = 0, j = in.length(); i < j; ++i) {
       out.add(convertToObject(in.opt(i), type));
     }
     return out;
   }
 
+  private Set<Object> convertToSet(JSONArray in, Type type) {
+    return ImmutableSet.copyOf(convertToList(in, type));
+  }
+
   private Object convertToClass(JSONObject in, Class<?> type) {
     Object out = injector.getInstance(type);
     for (Map.Entry<String, Method> entry : 
getSetters(out.getClass()).entrySet()) {

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Preload.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Preload.java?rev=788219&r1=788218&r2=788219&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Preload.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/Preload.java
 Thu Jun 25 00:09:16 2009
@@ -59,15 +59,12 @@
     }
 
     // Record all the associated views
-    String viewNames = XmlUtil.getAttribute(preload, "views", "");
-    Set<String> views = Sets.newHashSet();
-    for (String s : viewNames.split(",")) {
-      s = s.trim();
-      if (s.length() > 0) {
-        views.add(s.trim());
-      }
+    String viewNames = XmlUtil.getAttribute(preload, "views", "").trim();
+    if (viewNames.length() == 0) {
+      this.views = ImmutableSet.of();
+    } else {
+      this.views = ImmutableSet.of(viewNames.trim().split("\\s*,+\\s*"));
     }
-    this.views = Collections.unmodifiableSet(views);
 
     auth = AuthType.parse(XmlUtil.getAttribute(preload, "authz"));
     signOwner = XmlUtil.getBoolAttribute(preload, "sign_owner", true);


Reply via email to