You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by sa...@apache.org on 2011/08/09 18:34:32 UTC

svn commit: r1155425 - /axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/BeanUtil.java

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(),