Author: sagara
Date: Fri Dec 28 10:05:55 2012
New Revision: 1426447

URL: http://svn.apache.org/viewvc?rev=1426447&view=rev
Log:
Applied patch for AXIS2-5427.

Modified:
    
axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java
    
axis/axis2/java/core/trunk/modules/adb/test/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderTest.java

Modified: 
axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java?rev=1426447&r1=1426446&r2=1426447&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/adb/src/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderImpl.java
 Fri Dec 28 10:05:55 2012
@@ -939,6 +939,19 @@ public class ADBXMLStreamReaderImpl impl
                                                   (String)propertyValue);
             childReader.addNamespaceContext(this.namespaceContext);
             childReader.init();
+        } else if (propertyValue instanceof Integer
+                || propertyValue instanceof Long
+                || propertyValue instanceof Double
+                || propertyValue instanceof Float
+                || propertyValue instanceof Character
+                || propertyValue instanceof Short) {
+            //all primitive wrapped generic type instances are converted to 
Strings and  handled by the
+            // NameValuePairStreamReader
+            childReader =
+                    new NameValuePairStreamReader(propertyQName,
+                            String.valueOf(propertyValue));
+            childReader.addNamespaceContext(this.namespaceContext);
+            childReader.init();
         } else if (propertyValue.getClass().isArray()) {
             // this is an arrary object and we need to get the pull parser for 
that
             int length = Array.getLength(propertyValue);

Modified: 
axis/axis2/java/core/trunk/modules/adb/test/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderTest.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/adb/test/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderTest.java?rev=1426447&r1=1426446&r2=1426447&view=diff
==============================================================================
--- 
axis/axis2/java/core/trunk/modules/adb/test/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderTest.java
 (original)
+++ 
axis/axis2/java/core/trunk/modules/adb/test/org/apache/axis2/databinding/utils/reader/ADBXMLStreamReaderTest.java
 Fri Dec 28 10:05:55 2012
@@ -245,6 +245,202 @@ public class ADBXMLStreamReaderTest exte
         assertXMLEqual(actualDom, expectedDocument);
     }
 
+        /** test List<java.lang.Integer> list */
+    public void testGenericWrapperArrayList() throws Exception {
+        String exptectedXML = " <genericIntegerList>" +
+                                    "<genericInt>123</genericInt>" +
+                                    "<genericInt>1234</genericInt>" +
+                                    "<genericInt>12345</genericInt>" +
+                                "</genericIntegerList>";
+
+        List propertyList = new ArrayList();
+
+        propertyList.add("genericInt");
+        propertyList.add(new Integer(123));
+
+        propertyList.add("genericInt");
+        propertyList.add(new Integer(1234));
+
+        propertyList.add("genericInt");
+        propertyList.add(new Integer(12345));
+
+        QName projectQName = new QName("genericIntegerList");
+        XMLStreamReader pullParser =
+                new ADBXMLStreamReaderImpl(projectQName, 
propertyList.toArray(), null);
+
+        Document actualDom = newDocument(getStringXML(pullParser));
+        Document expectedDocument = newDocument(exptectedXML);
+        assertXMLEqual(actualDom, expectedDocument);
+    }
+
+    /** test List<java.lang.String> list */
+    public void testGenericWrapperArrayList2() throws Exception {
+        String exptectedXML = " <genericStringList>" +
+                                    "<genericString>test1</genericString>" +
+                                    "<genericString>test2</genericString>" +
+                                    "<genericString>test3</genericString>" +
+                                "</genericStringList>";
+
+        List propertyList = new ArrayList();
+
+        propertyList.add("genericString");
+        propertyList.add(new String("test1"));
+
+        propertyList.add("genericString");
+        propertyList.add(new String("test2"));
+
+        propertyList.add("genericString");
+        propertyList.add(new String("test3"));
+
+        QName projectQName = new QName("genericStringList");
+        XMLStreamReader pullParser =
+                new ADBXMLStreamReaderImpl(projectQName, 
propertyList.toArray(), null);
+
+        Document actualDom = newDocument(getStringXML(pullParser));
+        Document expectedDocument = newDocument(exptectedXML);
+        assertXMLEqual(actualDom, expectedDocument);
+    }
+
+    /** test List<java.lang.Long> list */
+    public void testGenericWrapperArrayList3() throws Exception {
+        String exptectedXML = " <genericLongList>" +
+                                    "<genericLong>12345678910</genericLong>" +
+                                    "<genericLong>-12345678910</genericLong>" +
+                                    "<genericLong>1234567891011</genericLong>" 
+
+                                "</genericLongList>";
+
+        List propertyList = new ArrayList();
+
+        propertyList.add("genericLong");
+        propertyList.add(new Long(12345678910L));
+
+        propertyList.add("genericLong");
+        propertyList.add(new Long(-12345678910L));
+
+        propertyList.add("genericLong");
+        propertyList.add(new Long(1234567891011L));
+
+        QName projectQName = new QName("genericLongList");
+        XMLStreamReader pullParser =
+                new ADBXMLStreamReaderImpl(projectQName, 
propertyList.toArray(), null);
+
+        Document actualDom = newDocument(getStringXML(pullParser));
+        Document expectedDocument = newDocument(exptectedXML);
+        assertXMLEqual(actualDom, expectedDocument);
+    }
+
+    /** test List<java.lang.Float> list */
+    public void testGenericWrapperArrayList4() throws Exception {
+        String exptectedXML = " <genericFloatList>" +
+                                    "<genericFloat>123.0</genericFloat>" +
+                                    "<genericFloat>-123.55</genericFloat>" +
+                                    "<genericFloat>12345.99</genericFloat>" +
+                                "</genericFloatList>";
+
+        List propertyList = new ArrayList();
+
+        propertyList.add("genericFloat");
+        propertyList.add(new Float(123.0f));
+
+        propertyList.add("genericFloat");
+        propertyList.add(new Float(-123.55f));
+
+        propertyList.add("genericFloat");
+        propertyList.add(new Float(12345.99f));
+
+        QName projectQName = new QName("genericFloatList");
+        XMLStreamReader pullParser =
+                new ADBXMLStreamReaderImpl(projectQName, 
propertyList.toArray(), null);
+
+        Document actualDom = newDocument(getStringXML(pullParser));
+        Document expectedDocument = newDocument(exptectedXML);
+        assertXMLEqual(actualDom, expectedDocument);
+    }
+
+    /** test List<java.lang.Double> list */
+    public void testGenericWrapperArrayList5() throws Exception {
+        String exptectedXML = " <genericDoubleList>" +
+                                    
"<genericDouble>3456.12345</genericDouble>" +
+                                    
"<genericDouble>-3456.12345</genericDouble>" +
+                                    
"<genericDouble>123456.12345</genericDouble>" +
+                                "</genericDoubleList>";
+
+        List propertyList = new ArrayList();
+
+        propertyList.add("genericDouble");
+        propertyList.add(new Double(3456.12345d));
+
+        propertyList.add("genericDouble");
+        propertyList.add(new Double(-3456.12345d));
+
+        propertyList.add("genericDouble");
+        propertyList.add(new Double(123456.12345d));
+
+        QName projectQName = new QName("genericDoubleList");
+        XMLStreamReader pullParser =
+                new ADBXMLStreamReaderImpl(projectQName, 
propertyList.toArray(), null);
+
+        Document actualDom = newDocument(getStringXML(pullParser));
+        Document expectedDocument = newDocument(exptectedXML);
+        assertXMLEqual(actualDom, expectedDocument);
+    }
+
+/** test List<java.lang.Character> list */
+    public void testGenericWrapperArrayList6() throws Exception {
+        String exptectedXML = " <genericCharacterList>" +
+                                    "<genericCharacter>A</genericCharacter>" +
+                                    "<genericCharacter>B</genericCharacter>" +
+                                    "<genericCharacter>C</genericCharacter>" +
+                                "</genericCharacterList>";
+
+        List propertyList = new ArrayList();
+
+        propertyList.add("genericCharacter");
+        propertyList.add(new Character('A'));
+
+        propertyList.add("genericCharacter");
+        propertyList.add(new Character('B'));
+
+        propertyList.add("genericCharacter");
+        propertyList.add(new Character('C'));
+
+        QName projectQName = new QName("genericCharacterList");
+        XMLStreamReader pullParser =
+                new ADBXMLStreamReaderImpl(projectQName, 
propertyList.toArray(), null);
+
+        Document actualDom = newDocument(getStringXML(pullParser));
+        Document expectedDocument = newDocument(exptectedXML);
+        assertXMLEqual(actualDom, expectedDocument);
+    }
+
+/** test List<java.lang.Short> list */
+    public void testGenericWrapperArrayList7() throws Exception {
+        String exptectedXML = " <genericShortList>" +
+                                    "<genericShort>10</genericShort>" +
+                                    "<genericShort>20</genericShort>" +
+                                    "<genericShort>30</genericShort>" +
+                                "</genericShortList>";
+
+        List propertyList = new ArrayList();
+
+        propertyList.add("genericShort");
+        propertyList.add(new Short((short) 10));
+
+        propertyList.add("genericShort");
+        propertyList.add(new Short((short) 20));
+
+        propertyList.add("genericShort");
+        propertyList.add(new Short((short) 30));
+
+        QName projectQName = new QName("genericShortList");
+        XMLStreamReader pullParser =
+                new ADBXMLStreamReaderImpl(projectQName, 
propertyList.toArray(), null);
+
+        Document actualDom = newDocument(getStringXML(pullParser));
+        Document expectedDocument = newDocument(exptectedXML);
+        assertXMLEqual(actualDom, expectedDocument);
+    }
+
     public void testWithOMElements() throws Exception {
 
         String expectedXML =


Reply via email to