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