]> source.dussan.org Git - vaadin-framework.git/commitdiff
Extract duplicated code for decoding collections
authorLeif Åstrand <leif@vaadin.com>
Wed, 30 May 2012 14:57:48 +0000 (17:57 +0300)
committerLeif Åstrand <leif@vaadin.com>
Wed, 6 Jun 2012 10:33:41 +0000 (13:33 +0300)
src/com/vaadin/terminal/gwt/client/communication/JsonDecoder.java

index 9ed20b6c79969375af4e1b5da29b50c73be473ae..8df92a141eee0776f2b595ca340120d1afb4291a 100644 (file)
@@ -5,6 +5,7 @@
 package com.vaadin.terminal.gwt.client.communication;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -144,22 +145,24 @@ public class JsonDecoder {
     private static List<Object> decodeList(JSONArray jsonArray,
             ConnectorMap idMapper, ApplicationConnection connection) {
         List<Object> tokens = new ArrayList<Object>();
-        for (int i = 0; i < jsonArray.size(); ++i) {
-            // each entry always has two elements: type and value
-            JSONArray entryArray = (JSONArray) jsonArray.get(i);
-            tokens.add(decodeValue(entryArray, null, idMapper, connection));
-        }
+        decodeIntoCollection(jsonArray, idMapper, connection, tokens);
         return tokens;
     }
 
     private static Set<Object> decodeSet(JSONArray jsonArray,
             ConnectorMap idMapper, ApplicationConnection connection) {
         Set<Object> tokens = new HashSet<Object>();
+        decodeIntoCollection(jsonArray, idMapper, connection, tokens);
+        return tokens;
+    }
+
+    private static void decodeIntoCollection(JSONArray jsonArray,
+            ConnectorMap idMapper, ApplicationConnection connection,
+            Collection<Object> tokens) {
         for (int i = 0; i < jsonArray.size(); ++i) {
             // each entry always has two elements: type and value
             JSONArray entryArray = (JSONArray) jsonArray.get(i);
             tokens.add(decodeValue(entryArray, null, idMapper, connection));
         }
-        return tokens;
     }
 }