You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by lr...@apache.org on 2008/07/01 21:00:52 UTC

svn commit: r673174 - /incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/util/BeanJsonConverter.java

Author: lryan
Date: Tue Jul  1 12:00:52 2008
New Revision: 673174

URL: http://svn.apache.org/viewvc?rev=673174&view=rev
Log:
Minor fix to BeanJSONConverter to handle unary references to injectable types. E.g Person.Name

Modified:
    incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/util/BeanJsonConverter.java

Modified: incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/util/BeanJsonConverter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/util/BeanJsonConverter.java?rev=673174&r1=673173&r2=673174&view=diff
==============================================================================
--- incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/util/BeanJsonConverter.java (original)
+++ incubator/shindig/trunk/java/social-api/src/main/java/org/apache/shindig/social/opensocial/util/BeanJsonConverter.java Tue Jul  1 12:00:52 2008
@@ -19,8 +19,9 @@
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
-import com.google.inject.Injector;
 import com.google.inject.Inject;
+import com.google.inject.Injector;
+
 import org.json.JSONArray;
 import org.json.JSONException;
 import org.json.JSONObject;
@@ -271,7 +272,7 @@
 
       value = map;
 
-    } else if (expectedType.getSuperclass().equals(Enum.class)) {
+    } else if (Enum.class.isAssignableFrom(expectedType)) {
       String enumString = jsonObject.getString(fieldName);
       value = Enum.valueOf((Class<? extends Enum>) expectedType, enumString);
 
@@ -288,6 +289,9 @@
     } else if (expectedType.equals(Float.class)) {
       String stringFloat = jsonObject.getString(fieldName);
       value = new Float(stringFloat);
+    } else {
+      // Assume its an injected type
+      value = convertToObject(jsonObject.getJSONObject(fieldName).toString(), expectedType);
     }
 
     if (value != null) {