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