You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by am...@apache.org on 2007/07/01 15:06:34 UTC

svn commit: r552302 - /webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java

Author: amilas
Date: Sun Jul  1 06:06:33 2007
New Revision: 552302

URL: http://svn.apache.org/viewvc?view=rev&rev=552302
Log:
fixed a bug in calendar object handling and improve the performance

Modified:
    webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java

Modified: webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java?view=diff&rev=552302&r1=552301&r2=552302
==============================================================================
--- webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java (original)
+++ webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/ConverterUtil.java Sun Jul  1 06:06:33 2007
@@ -681,71 +681,102 @@
      */
     public static Object convertToArray(Class baseArrayClass, List objectList) {
         int listSize = objectList.size();
-        Object returnArray = Array.newInstance(baseArrayClass, listSize);
+        Object returnArray = null;
         if (int.class.equals(baseArrayClass)) {
+            int[] array = new int[listSize];
             for (int i = 0; i < listSize; i++) {
                 Object o = objectList.get(i);
                 if (o != null) {
-                    Array.setInt(returnArray, i, Integer.parseInt(o.toString()));
+                    array[i] = Integer.parseInt(o.toString());
+                } else {
+                    array[i] = Integer.MIN_VALUE;
                 }
             }
+            returnArray = array;
         } else if (float.class.equals(baseArrayClass)) {
+            float[] array = new float[listSize];
             for (int i = 0; i < listSize; i++) {
                 Object o = objectList.get(i);
                 if (o != null) {
-                    Array.setFloat(returnArray, i, Float.parseFloat(o.toString()));
+                    array[i] = Float.parseFloat(o.toString());
+                } else {
+                    array[i] = Float.NaN;
                 }
             }
+            returnArray = array;
         } else if (short.class.equals(baseArrayClass)) {
+            short[] array = new short[listSize];
             for (int i = 0; i < listSize; i++) {
                 Object o = objectList.get(i);
                 if (o != null) {
-                    Array.setShort(returnArray, i, Short.parseShort(o.toString()));
+                    array[i] = Short.parseShort(o.toString());
+                } else {
+                    array[i] = Short.MIN_VALUE;
                 }
             }
+            returnArray = array;
         } else if (byte.class.equals(baseArrayClass)) {
+            byte[] array = new byte[listSize];
             for (int i = 0; i < listSize; i++) {
                 Object o = objectList.get(i);
                 if (o != null) {
-                    Array.setByte(returnArray, i, Byte.parseByte(o.toString()));
+                    array[i] = Byte.parseByte(o.toString());
+                } else {
+                    array[i] = Byte.MIN_VALUE;
                 }
             }
+            returnArray = array;
         } else if (long.class.equals(baseArrayClass)) {
+            long[] array = new long[listSize];
             for (int i = 0; i < listSize; i++) {
                 Object o = objectList.get(i);
                 if (o != null) {
-                    Array.setLong(returnArray, i, Long.parseLong(o.toString()));
+                    array[i] = Long.parseLong(o.toString());
+                } else {
+                    array[i] = Long.MIN_VALUE;
                 }
             }
+            returnArray = array;
         } else if (boolean.class.equals(baseArrayClass)) {
+            boolean[] array = new boolean[listSize];
             for (int i = 0; i < listSize; i++) {
                 Object o = objectList.get(i);
                 if (o != null) {
-                    Array.setBoolean(returnArray, i, Boolean.getBoolean(o.toString()));
+                    array[i] = Boolean.getBoolean(o.toString());
                 }
             }
+            returnArray = array;
         } else if (char.class.equals(baseArrayClass)) {
+            char[] array = new char[listSize];
             for (int i = 0; i < listSize; i++) {
                 Object o = objectList.get(i);
                 if (o != null) {
-                    Array.setChar(returnArray, i, o.toString().toCharArray()[0]);
+                    array[i] = o.toString().toCharArray()[0];
                 }
             }
+            returnArray = array;
         } else if (double.class.equals(baseArrayClass)) {
+            double[] array = new double[listSize];
             for (int i = 0; i < listSize; i++) {
                 Object o = objectList.get(i);
                 if (o != null) {
-                    Array.setDouble(returnArray, i, Double.parseDouble(o.toString()));
+                    array[i] = Double.parseDouble(o.toString());
+                } else {
+                    array[i] = Double.NaN;
                 }
             }
+            returnArray = array;
         } else if (Calendar.class.equals(baseArrayClass)) {
+            Calendar[] array = new Calendar[listSize];
             for (int i = 0; i < listSize; i++) {
                 Object o = objectList.get(i);
                 if (o != null) {
-                    Array.set(returnArray, i, o);
+                    array[i] = ConverterUtil.convertToDateTime(o.toString());
                 }
             }
+            returnArray = array;
         } else {
+            returnArray = Array.newInstance(baseArrayClass, listSize);
             ConvertToArbitraryObjectArray(returnArray, baseArrayClass, objectList);
         }
         return returnArray;



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org