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 de...@apache.org on 2006/05/10 17:55:08 UTC

svn commit: r405786 - in /webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding: typemapping/SimpleTypeMapper.java utils/BeanUtil.java

Author: deepal
Date: Wed May 10 08:55:05 2006
New Revision: 405786

URL: http://svn.apache.org/viewcvs?rev=405786&view=rev
Log:
RPC message receiver can serialize  hash map and hash table

Modified:
    webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/typemapping/SimpleTypeMapper.java
    webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java

Modified: webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/typemapping/SimpleTypeMapper.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/typemapping/SimpleTypeMapper.java?rev=405786&r1=405785&r2=405786&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/typemapping/SimpleTypeMapper.java (original)
+++ webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/typemapping/SimpleTypeMapper.java Wed May 10 08:55:05 2006
@@ -49,6 +49,8 @@
     private static final String W_FLOAT = "java.lang.Float";
     private static final String W_CALANDER = "java.util.Calendar";
     private static final String ARRAY_LIST = "java.util.ArrayList";
+    private static final String HASH_MAP = "java.util. HashMap";
+    private static final String HASH_TABLE = "java.util. Hashtable";
     private static final String INT = "int";
     private static final String BOOLEAN = "boolean";
     private static final String BYTE = "byte";
@@ -137,6 +139,15 @@
     public static boolean isArrayList(Class obj){
         String objClassName = obj.getName();
         return ARRAY_LIST.equals(objClassName);
+    }
+
+      public static boolean isHasMap(Class obj){
+        String objClassName = obj.getName();
+        return HASH_MAP.equals(objClassName);
+    }
+    public static boolean isHasTable(Class obj){
+        String objClassName = obj.getName();
+        return HASH_TABLE.equals(objClassName);
     }
 
     public static boolean isSimpleType(String objClassName) {

Modified: webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java?rev=405786&r1=405785&r2=405786&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java (original)
+++ webservices/axis2/trunk/java/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java Wed May 10 08:55:05 2006
@@ -126,6 +126,48 @@
                         }
 
                     }
+                } else if (SimpleTypeMapper.isHasMap(ptype)) {
+                    Object value = propDesc.getReadMethod().invoke(beanObject,
+                            null);
+                    HashMap hashmap = (HashMap) value;
+                    if (hashmap.values() != null && hashmap.values().size() > 0) {
+                        Object objList [] = hashmap.values().toArray();
+                        //this was given error , when the array.size = 0
+                        // and if the array contain simple type , then the ADBPullParser asked
+                        // PullParser from That simpel type
+                        for (int j = 0; j < objList.length; j++) {
+                            Object o = objList[j];
+                            if (SimpleTypeMapper.isSimpleType(o)) {
+                                object.add(propDesc.getName());
+                                object.add(o);
+                            } else {
+                                object.add(new QName(propDesc.getName()));
+                                object.add(o);
+                            }
+                        }
+
+                    }
+                } else if (SimpleTypeMapper.isHasTable(ptype)) {
+                    Object value = propDesc.getReadMethod().invoke(beanObject,
+                            null);
+                    Hashtable hashtable = (Hashtable) value;
+                    if (hashtable.values() != null && hashtable.values().size() > 0) {
+                        Object objList [] = hashtable.values().toArray();
+                        //this was given error , when the array.size = 0
+                        // and if the array contain simple type , then the ADBPullParser asked
+                        // PullParser from That simpel type
+                        for (int j = 0; j < objList.length; j++) {
+                            Object o = objList[j];
+                            if (SimpleTypeMapper.isSimpleType(o)) {
+                                object.add(propDesc.getName());
+                                object.add(o);
+                            } else {
+                                object.add(new QName(propDesc.getName()));
+                                object.add(o);
+                            }
+                        }
+
+                    }
                 } else {
                     object.add(new QName(propDesc.getName()));
                     Object value = propDesc.getReadMethod().invoke(beanObject,