Author: sagara
Date: Tue Aug  9 16:34:32 2011
New Revision: 1155425

URL: http://svn.apache.org/viewvc?rev=1155425&view=rev
Log:
Improved List, Map and DOM Document support for POJODeployer.

Modified:
    
axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java

Modified: 
axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java?rev=1155425&r1=1155424&r2=1155425&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java
 Tue Aug  9 16:34:32 2011
@@ -273,9 +273,14 @@ public class BeanUtil {
                                                         * Copied from 
ADBXMLStreamReaderImpl. 
                                                         * For inner Arrary 
Complex types we use the special local name array - "array"
                                                         */
-                                                       QName itemName = new 
QName(elemntNameSpace.getNamespaceURI(),
-                                                                       
Constants.INNER_ARRAY_COMPLEX_TYPE_NAME,
-                                                                       
elemntNameSpace.getPrefix());                                                   
        
+                                                                   QName 
itemName;
+                                                                   if 
(qualified) {
+                                                                       
itemName = new QName(elemntNameSpace.getNamespaceURI(),
+                                                   
Constants.INNER_ARRAY_COMPLEX_TYPE_NAME,
+                                                   
elemntNameSpace.getPrefix());                                                   
                    
+                                                                   } else {
+                                                                       
itemName = new QName(Constants.INNER_ARRAY_COMPLEX_TYPE_NAME);                  
                                                
+                                                                   }           
                                                                                
                        
                                                                
propertyQnameValueList.add(getOMElement(propertyQName , (Object[]) o,
                                                                        
itemName, qualified, typeTable));                                       
                                 } else {
@@ -1457,11 +1462,15 @@ public class BeanUtil {
                        Map results, TypeTable typeTable, boolean 
elementFormDefault) {
                Iterator<Object> keyItr = results.keySet().iterator();
                List<OMElement> list = new ArrayList<OMElement>();
-               OMNamespace ns = fac.createOMNamespace(
-                               
org.apache.axis2.Constants.AXIS2_MAP_NAMESPACE_URI,
-                               
org.apache.axis2.Constants.AXIS2_MAP_NAMESPACE_PREFIX);
+        OMNamespace ns = null;
                Type keyType = Object.class;
-               Type valueType = Object.class;
+        Type valueType = Object.class;
+        if (elementFormDefault) {
+            ns = fac.createOMNamespace(
+                    org.apache.axis2.Constants.AXIS2_MAP_NAMESPACE_URI,
+                    org.apache.axis2.Constants.AXIS2_MAP_NAMESPACE_PREFIX);
+        }      
+               
                if (type instanceof ParameterizedType) {
                        ParameterizedType aType = (ParameterizedType) type;
                        Type[] parameterArgTypes = 
aType.getActualTypeArguments();
@@ -1476,12 +1485,21 @@ public class BeanUtil {
                        if (key != null) {
                                value = results.get(key);
                                List<Object> properties = new 
ArrayList<Object>();
-                               QName keyName = new QName(ns.getNamespaceURI(),
-                                               
org.apache.axis2.Constants.MAP_KEY_ELEMENT_NAME, ns
-                                                               .getPrefix());
-                               QName valueName = new 
QName(ns.getNamespaceURI(),
-                                               
org.apache.axis2.Constants.MAP_VALUE_ELEMENT_NAME, ns
-                                                               .getPrefix());  
                        
+                QName keyName;
+                QName valueName;
+                if (elementFormDefault) {
+                    keyName = new QName(ns.getNamespaceURI(),
+                            org.apache.axis2.Constants.MAP_KEY_ELEMENT_NAME,
+                            ns.getPrefix());
+                    valueName = new QName(ns.getNamespaceURI(),
+                            org.apache.axis2.Constants.MAP_VALUE_ELEMENT_NAME,
+                            ns.getPrefix());
+                } else {
+                    keyName = new QName(
+                            org.apache.axis2.Constants.MAP_KEY_ELEMENT_NAME);
+                    valueName = new QName(
+                            org.apache.axis2.Constants.MAP_VALUE_ELEMENT_NAME);
+                }
 
                                Object kValue = getMapParameterElement(fac,
                                                
org.apache.axis2.Constants.MAP_KEY_ELEMENT_NAME, key,
@@ -1514,12 +1532,18 @@ public class BeanUtil {
                                        properties.add(vValue);
                                }
                                
+                QName entryQName;
+                if (elementFormDefault) {
+                    entryQName = new QName(ns.getNamespaceURI(),
+                            org.apache.axis2.Constants.MAP_ENTRY_ELEMENT_NAME,
+                            ns.getPrefix());
+                } else {
+                    entryQName = new QName(
+                            org.apache.axis2.Constants.MAP_ENTRY_ELEMENT_NAME);
 
+                }
                                XMLStreamReader pullParser = new 
ADBXMLStreamReaderImpl(
-                                               new QName(
-                                                               
ns.getNamespaceURI(),
-                                                               
org.apache.axis2.Constants.MAP_ENTRY_ELEMENT_NAME,
-                                                               
ns.getPrefix()), properties.toArray(), null,
+                                       entryQName, properties.toArray(), null,
                                                typeTable, elementFormDefault);
 
                                StAXOMBuilder stAXOMBuilder = new StAXOMBuilder(
@@ -1632,16 +1656,29 @@ public class BeanUtil {
                if (SimpleTypeMapper.isMap(value.getClass())) {
                        List<OMElement> childList = getMapElement(fac, 
valueType,
                                        (Map) value, typeTable, 
elementFormDefault);
-                       OMElement omValue = fac.createOMElement(elementName,
-                                       ns.getNamespaceURI(), ns.getPrefix());
+                       OMElement omValue;
+                       if(elementFormDefault) {
+                           omValue = fac.createOMElement(elementName,
+                           ns.getNamespaceURI(), ns.getPrefix());              
            
+                       } else {
+                           omValue = fac.createOMElement(elementName, null);
+                           
+                       }
                        for (OMElement child : childList) {
                                omValue.addChild(child);
                        }
                        return omValue;
                        
-               } else if (SimpleTypeMapper.isCollection(value.getClass())) {   
                
-                       QName elementQName = new QName(ns.getNamespaceURI(), 
elementName,
-                                       ns.getPrefix());
+               } else if (SimpleTypeMapper.isCollection(value.getClass())) {   
+                   QName elementQName;
+                   if(elementFormDefault) {
+                      elementQName = new QName(ns.getNamespaceURI(), 
elementName,
+                           ns.getPrefix());                    
+                   } else {
+                      elementQName = new QName(elementName);
+                       
+                   }
+                       
                        return getCollectionElement(fac, valueType, 
(Collection) value,
                                        elementName, null, elementQName, 
typeTable,
                                        elementFormDefault).getChildren();
@@ -1653,8 +1690,13 @@ public class BeanUtil {
                                
omValue.addChild(fac.createOMText(SimpleTypeMapper
                                                .getStringValue(value)));
                        } else {
-                               QName name = new QName(ns.getNamespaceURI(), 
elementName,
-                                               ns.getPrefix());
+                           QName name;
+                           if(elementFormDefault) {
+                               name = new QName(ns.getNamespaceURI(), 
elementName,
+                               ns.getPrefix());                                
+                           } else {
+                               name = new QName(elementName);                  
        
+                           }
                                XMLStreamReader xr = 
BeanUtil.getPullParser(value, name,
                                                typeTable, true, false);
                                OMXMLParserWrapper stAXOMBuilder = 
OMXMLBuilderFactory
@@ -1783,15 +1825,25 @@ public class BeanUtil {
                if (value != null) {
                    value = getCollectionItemElement(fac, elementName, value,
                            valueType, typeTable, ns, elementFormDefault);
-                   properties.add(new QName(ns.getNamespaceURI(), elementName, 
ns
-                           .getPrefix()));
+                QName valueQName;
+                if (elementFormDefault) {
+                    valueQName = new QName(ns.getNamespaceURI(), elementName,
+                            ns.getPrefix());
+                } else {
+                    valueQName = new QName(elementName);
+                }
+                   properties.add(valueQName);
                    properties.add(value);
                }
            }
-
-           XMLStreamReader pullParser = new ADBXMLStreamReaderImpl(new QName(
-                   ns.getNamespaceURI(), elementQName.getLocalPart(),
-                   ns.getPrefix()), properties.toArray(), null, typeTable,
+        QName eleQName;
+        if (elementFormDefault) {
+            eleQName = new QName(ns.getNamespaceURI(),
+                    elementQName.getLocalPart(), ns.getPrefix());
+        } else {
+            eleQName = new QName(elementQName.getLocalPart());
+        }
+           XMLStreamReader pullParser = new ADBXMLStreamReaderImpl(eleQName, 
properties.toArray(), null, typeTable,
                    elementFormDefault);
 
            StAXOMBuilder stAXOMBuilder = new StAXOMBuilder(
@@ -1840,9 +1892,14 @@ public class BeanUtil {
                    omValue.addChild(fac.createOMText(SimpleTypeMapper
                            .getStringValue(value)));
                } else {
-                   QName name = new QName(ns.getNamespaceURI(), elementName,
-                           ns.getPrefix());
-                   XMLStreamReader xr = BeanUtil.getPullParser(value, name,
+                QName name;
+                if (elementFormDefault) {
+                    name = new QName(ns.getNamespaceURI(), elementName,
+                            ns.getPrefix());
+                } else {
+                    name = new QName(elementName);
+                }
+                XMLStreamReader xr = BeanUtil.getPullParser(value, name,
                            typeTable, true, false);
                    OMXMLParserWrapper stAXOMBuilder = OMXMLBuilderFactory
                    .createStAXOMBuilder(OMAbstractFactory.getOMFactory(),


Reply via email to