You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ja...@apache.org on 2007/04/17 20:08:26 UTC

svn commit: r529696 - in /ofbiz/trunk/framework: base/src/base/org/ofbiz/base/util/ObjectType.java webapp/src/org/ofbiz/webapp/event/XmlRpcEventHandler.java

Author: jaz
Date: Tue Apr 17 11:08:25 2007
New Revision: 529696

URL: http://svn.apache.org/viewvc?view=rev&rev=529696
Log:
added Array to List conversion

Modified:
    ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/ObjectType.java
    ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/XmlRpcEventHandler.java

Modified: ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/ObjectType.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/ObjectType.java?view=diff&rev=529696&r1=529695&r2=529696
==============================================================================
--- ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/ObjectType.java (original)
+++ ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/ObjectType.java Tue Apr 17 11:08:25 2007
@@ -20,17 +20,13 @@
 
 import java.lang.reflect.Constructor;
 import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Array;
 import java.math.BigDecimal;
 import java.text.DateFormat;
 import java.text.NumberFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.Collection;
-import java.util.Date;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 import javolution.util.FastList;
 import javolution.util.FastMap;
@@ -445,6 +441,16 @@
     public static Object simpleTypeConvert(Object obj, String type, String format, Locale locale, boolean noTypeFail) throws GeneralException {
         if (obj == null) {
             return null;
+        }
+
+        // do simple array to list conversion first (so that other checks can run against the updated object)
+        if (obj.getClass().isArray()) {
+            List newObj = FastList.newInstance();
+            int len = Array.getLength(obj);
+            for (int i = 0; i < len; i++) {
+                newObj.add(Array.get(obj, i));
+            }
+            obj = newObj;
         }
 
         if (obj.getClass().getName().equals(type)) {

Modified: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/XmlRpcEventHandler.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/XmlRpcEventHandler.java?view=diff&rev=529696&r1=529695&r2=529696
==============================================================================
--- ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/XmlRpcEventHandler.java (original)
+++ ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/XmlRpcEventHandler.java Tue Apr 17 11:08:25 2007
@@ -266,6 +266,9 @@
                         }
                     }
                 }
+
+                // do map value conversions
+                context = model.makeValid(context, ModelService.IN_PARAM);
             }
 
             return context;



Re: svn commit: r529696 - in /ofbiz/trunk/framework: base/src/base/org/ofbiz/base/util/ObjectType.java webapp/src/org/ofbiz/webapp/event/XmlRpcEventHandler.java

Posted by "David E. Jones" <jo...@undersunconsulting.com>.
Should we qualify this a little bit more, ie more than just:

if (obj.getClass().isArray())

I'm thinking maybe we should also see if the type is "List" or  
"java.util.List" or the like. What if they pass in "String" for the  
type?

-David


On Apr 17, 2007, at 12:08 PM, jaz@apache.org wrote:

> Author: jaz
> Date: Tue Apr 17 11:08:25 2007
> New Revision: 529696
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=529696
> Log:
> added Array to List conversion
>
> Modified:
>     ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/ 
> ObjectType.java
>     ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/ 
> XmlRpcEventHandler.java
>
> Modified: ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/ 
> ObjectType.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/ 
> base/org/ofbiz/base/util/ObjectType.java? 
> view=diff&rev=529696&r1=529695&r2=529696
> ====================================================================== 
> ========
> --- ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/ 
> ObjectType.java (original)
> +++ ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/ 
> ObjectType.java Tue Apr 17 11:08:25 2007
> @@ -20,17 +20,13 @@
>
>  import java.lang.reflect.Constructor;
>  import java.lang.reflect.InvocationTargetException;
> +import java.lang.reflect.Array;
>  import java.math.BigDecimal;
>  import java.text.DateFormat;
>  import java.text.NumberFormat;
>  import java.text.ParseException;
>  import java.text.SimpleDateFormat;
> -import java.util.Collection;
> -import java.util.Date;
> -import java.util.List;
> -import java.util.Locale;
> -import java.util.Map;
> -import java.util.Set;
> +import java.util.*;
>
>  import javolution.util.FastList;
>  import javolution.util.FastMap;
> @@ -445,6 +441,16 @@
>      public static Object simpleTypeConvert(Object obj, String  
> type, String format, Locale locale, boolean noTypeFail) throws  
> GeneralException {
>          if (obj == null) {
>              return null;
> +        }
> +
> +        // do simple array to list conversion first (so that other  
> checks can run against the updated object)
> +        if (obj.getClass().isArray()) {
> +            List newObj = FastList.newInstance();
> +            int len = Array.getLength(obj);
> +            for (int i = 0; i < len; i++) {
> +                newObj.add(Array.get(obj, i));
> +            }
> +            obj = newObj;
>          }
>
>          if (obj.getClass().getName().equals(type)) {
>
> Modified: ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/ 
> XmlRpcEventHandler.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/ 
> org/ofbiz/webapp/event/XmlRpcEventHandler.java? 
> view=diff&rev=529696&r1=529695&r2=529696
> ====================================================================== 
> ========
> --- ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/ 
> XmlRpcEventHandler.java (original)
> +++ ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/event/ 
> XmlRpcEventHandler.java Tue Apr 17 11:08:25 2007
> @@ -266,6 +266,9 @@
>                          }
>                      }
>                  }
> +
> +                // do map value conversions
> +                context = model.makeValid(context,  
> ModelService.IN_PARAM);
>              }
>
>              return context;
>
>