mirror of
https://github.com/apache/struts.git
synced 2026-08-06 15:17:00 +00:00
Adds sorted and navigable set support JSON plugin
See WW-4937 for more details.
This commit is contained in:
@@ -203,7 +203,9 @@ public class JSONPopulator {
|
||||
newCollection = (Collection) clazz.newInstance();
|
||||
} catch (InstantiationException ex) {
|
||||
// fallback if clazz represents an interface or abstract class
|
||||
if (Set.class.isAssignableFrom(clazz)) {
|
||||
if (SortedSet.class.isAssignableFrom(clazz)) {
|
||||
newCollection = new TreeSet();
|
||||
} else if (Set.class.isAssignableFrom(clazz)) {
|
||||
newCollection = new HashSet();
|
||||
} else {
|
||||
newCollection = new ArrayList();
|
||||
|
||||
@@ -112,6 +112,21 @@ public class JSONPopulatorTest extends TestCase {
|
||||
assertEquals(2, bean.getArrayMapField()[0].size());
|
||||
assertEquals(new Long(2073501), bean.getArrayMapField()[0].get("id1"));
|
||||
assertEquals(new Long(3), bean.getArrayMapField()[0].get("id2"));
|
||||
|
||||
assertEquals(3, bean.getSetField().size());
|
||||
assertEquals(true, bean.getSetField().contains("A"));
|
||||
assertEquals(true, bean.getSetField().contains("B"));
|
||||
assertEquals(true, bean.getSetField().contains("C"));
|
||||
|
||||
assertEquals(3, bean.getSortedSetField().size());
|
||||
assertEquals("A", bean.getSortedSetField().first());
|
||||
assertEquals(true, bean.getSortedSetField().contains("B"));
|
||||
assertEquals("C", bean.getSortedSetField().last());
|
||||
|
||||
assertEquals(3, bean.getNavigableSetField().size());
|
||||
assertEquals("A", bean.getNavigableSetField().first());
|
||||
assertEquals(true, bean.getNavigableSetField().contains("B"));
|
||||
assertEquals("C", bean.getNavigableSetField().last());
|
||||
}
|
||||
|
||||
public void testObjectBeanWithStrings() throws Exception {
|
||||
|
||||
@@ -20,6 +20,9 @@ package org.apache.struts2.json;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.NavigableSet;
|
||||
import java.util.Set;
|
||||
import java.util.SortedSet;
|
||||
|
||||
public class WrapperClassBean {
|
||||
|
||||
@@ -40,6 +43,9 @@ public class WrapperClassBean {
|
||||
private List<Map<String, Long>> listMapField;
|
||||
private Map<String, List<Long>> mapListField;
|
||||
private Map<String, Long>[] arrayMapField;
|
||||
private Set<String> setField;
|
||||
private SortedSet<String> sortedSetField;
|
||||
private NavigableSet<String> navigableSetField;
|
||||
|
||||
public List<SimpleValue> getListField() {
|
||||
return listField;
|
||||
@@ -73,6 +79,30 @@ public class WrapperClassBean {
|
||||
this.arrayMapField = arrayMapField;
|
||||
}
|
||||
|
||||
public Set<String> getSetField() {
|
||||
return setField;
|
||||
}
|
||||
|
||||
public void setSetField(Set<String> setField) {
|
||||
this.setField = setField;
|
||||
}
|
||||
|
||||
public SortedSet<String> getSortedSetField() {
|
||||
return sortedSetField;
|
||||
}
|
||||
|
||||
public void setSortedSetField(SortedSet<String> sortedSetField) {
|
||||
this.sortedSetField = sortedSetField;
|
||||
}
|
||||
|
||||
public NavigableSet<String> getNavigableSetField() {
|
||||
return navigableSetField;
|
||||
}
|
||||
|
||||
public void setNavigableSetField(NavigableSet<String> navigableSetField) {
|
||||
this.navigableSetField = navigableSetField;
|
||||
}
|
||||
|
||||
public Boolean getBooleanField() {
|
||||
return booleanField;
|
||||
}
|
||||
|
||||
@@ -16,5 +16,8 @@
|
||||
"listField": [{"value":"1"},{"value":"2"}],
|
||||
"listMapField": [{"id1":2073501,"id2":3}],
|
||||
"mapListField": {"id1":[1,2,3],"id2":[4,3,2,1]},
|
||||
"arrayMapField": [{"id1":2073501,"id2":3}]
|
||||
"arrayMapField": [{"id1":2073501,"id2":3}],
|
||||
"setField": ["A", "C", "B"],
|
||||
"sortedSetField": ["A", "C", "B"],
|
||||
"navigableSetField": ["A", "B", "C"]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user