Author: mvdb
Date: Fri Jun 29 15:23:25 2007
New Revision: 552049

URL: http://svn.apache.org/viewvc?view=rev&rev=552049
Log:
Fix Gump build failure and also made sure the fix runs on BeanUtils 1.7. The 
only solution I could find is to copy the ConvertUtils.convert( object ) code 
and call an internal method from Betwixt itself.
If people want to use beanutils in the new way, it's up to them to create a new 
defaultconverter.
Sanity check by Robert would be highly appreciated..

Modified:
    
jakarta/commons/proper/betwixt/trunk/src/java/org/apache/commons/betwixt/strategy/ConvertUtilsObjectStringConverter.java

Modified: 
jakarta/commons/proper/betwixt/trunk/src/java/org/apache/commons/betwixt/strategy/ConvertUtilsObjectStringConverter.java
URL: 
http://svn.apache.org/viewvc/jakarta/commons/proper/betwixt/trunk/src/java/org/apache/commons/betwixt/strategy/ConvertUtilsObjectStringConverter.java?view=diff&rev=552049&r1=552048&r2=552049
==============================================================================
--- 
jakarta/commons/proper/betwixt/trunk/src/java/org/apache/commons/betwixt/strategy/ConvertUtilsObjectStringConverter.java
 (original)
+++ 
jakarta/commons/proper/betwixt/trunk/src/java/org/apache/commons/betwixt/strategy/ConvertUtilsObjectStringConverter.java
 Fri Jun 29 15:23:25 2007
@@ -16,7 +16,10 @@
  */ 
 package org.apache.commons.betwixt.strategy;
 
+import java.lang.reflect.Array;
+
 import org.apache.commons.beanutils.ConvertUtils;
+import org.apache.commons.beanutils.Converter;
 import org.apache.commons.betwixt.expression.Context;
 
 /** 
@@ -39,12 +42,42 @@
       */
     public String objectToString(Object object, Class type, String flavour, 
Context context) {
         if ( object != null ) {
-            String text = ConvertUtils.convert( object );
+            String text = convertInternal( object );
             if ( text != null ) {
                 return text;
             }
         }
         return "";
+    }
+    
+    /**
+     * Contains the code from the beanutils 1.7.0 ConvertUtils.convert( Object 
)
+     * This is to prevent backward compatibility issues, which cannot be solved
+     * in beanutils because of evolving functionality.<br/>
+     * Since the advise here is the override the objectToString methods anyway
+     * people can choose themselves to adhere to the new beanutils 
functionality.
+     * 
+     * @param value the value to convert to a String
+     * @return the String representation or null.
+     */
+    private String convertInternal( Object value ) {
+        if (value == null) {
+            return ((String) null);
+        } else if (value.getClass().isArray()) {
+            if (Array.getLength(value) < 1) {
+                return (null);
+            }
+            value = Array.get(value, 0);
+            if (value == null) {
+                return ((String) null);
+            } else {
+                Converter converter = ConvertUtils.lookup(String.class);
+                return ((String) converter.convert(String.class, value));
+            }
+        } else {
+            Converter converter = ConvertUtils.lookup(String.class);
+            return ((String) converter.convert(String.class, value));
+        }
     }
     
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to