Adds deque and queue support JSON plugin

This commit is contained in:
Jarek Lipski
2018-05-12 17:06:38 +02:00
parent 73cace0cbb
commit 459cb61ca4
4 changed files with 35 additions and 1 deletions
@@ -207,6 +207,8 @@ public class JSONPopulator {
newCollection = new TreeSet();
} else if (Set.class.isAssignableFrom(clazz)) {
newCollection = new HashSet();
} else if (Queue.class.isAssignableFrom(clazz)) {
newCollection = new ArrayDeque();
} else {
newCollection = new ArrayList();
}
@@ -127,6 +127,16 @@ public class JSONPopulatorTest extends TestCase {
assertEquals("A", bean.getNavigableSetField().first());
assertEquals(true, bean.getNavigableSetField().contains("B"));
assertEquals("C", bean.getNavigableSetField().last());
assertEquals(3, bean.getQueueField().size());
assertEquals("A", bean.getQueueField().poll());
assertEquals("B", bean.getQueueField().poll());
assertEquals("C", bean.getQueueField().poll());
assertEquals(3, bean.getDequeField().size());
assertEquals("A", bean.getDequeField().pollFirst());
assertEquals("B", bean.getDequeField().pollFirst());
assertEquals("C", bean.getDequeField().pollFirst());
}
public void testObjectBeanWithStrings() throws Exception {
@@ -18,9 +18,11 @@
*/
package org.apache.struts2.json;
import java.util.Deque;
import java.util.List;
import java.util.Map;
import java.util.NavigableSet;
import java.util.Queue;
import java.util.Set;
import java.util.SortedSet;
@@ -46,6 +48,8 @@ public class WrapperClassBean {
private Set<String> setField;
private SortedSet<String> sortedSetField;
private NavigableSet<String> navigableSetField;
private Queue<String> queueField;
private Deque<String> dequeField;
public List<SimpleValue> getListField() {
return listField;
@@ -103,6 +107,22 @@ public class WrapperClassBean {
this.navigableSetField = navigableSetField;
}
public Queue<String> getQueueField() {
return queueField;
}
public void setQueueField(Queue<String> queueField) {
this.queueField = queueField;
}
public Deque<String> getDequeField() {
return dequeField;
}
public void setDequeField(Deque<String> dequeField) {
this.dequeField = dequeField;
}
public Boolean getBooleanField() {
return booleanField;
}
@@ -19,5 +19,7 @@
"arrayMapField": [{"id1":2073501,"id2":3}],
"setField": ["A", "C", "B"],
"sortedSetField": ["A", "C", "B"],
"navigableSetField": ["A", "B", "C"]
"navigableSetField": ["A", "B", "C"],
"queueField": ["A", "B", "C"],
"dequeField": ["A", "B", "C"]
}