You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2012/10/04 21:27:31 UTC
svn commit: r1394217 -
/cxf/branches/2.6.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/collection/MapType.java
Author: dkulp
Date: Thu Oct 4 19:27:31 2012
New Revision: 1394217
URL: http://svn.apache.org/viewvc?rev=1394217&view=rev
Log:
Merged revisions 1394216 via git cherry-pick from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1394216 | dkulp | 2012-10-04 15:25:56 -0400 (Thu, 04 Oct 2012) | 2 lines
[CXF-4534] Add a bunch of extra map types into Aegis
........
Modified:
cxf/branches/2.6.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/collection/MapType.java
Modified: cxf/branches/2.6.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/collection/MapType.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/collection/MapType.java?rev=1394217&r1=1394216&r2=1394217&view=diff
==============================================================================
--- cxf/branches/2.6.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/collection/MapType.java (original)
+++ cxf/branches/2.6.x-fixes/rt/databinding/aegis/src/main/java/org/apache/cxf/aegis/type/collection/MapType.java Thu Oct 4 19:27:31 2012
@@ -23,7 +23,14 @@ import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
+import java.util.NavigableMap;
import java.util.Set;
+import java.util.SortedMap;
+import java.util.TreeMap;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.ConcurrentNavigableMap;
+import java.util.concurrent.ConcurrentSkipListMap;
import javax.xml.namespace.QName;
@@ -118,15 +125,22 @@ public class MapType extends AegisType {
protected Map<Object, Object> instantiateMap() {
Map<Object, Object> map = null;
- if (getTypeClass().equals(Map.class)) {
+ Class<?> cls = getTypeClass();
+ if (cls.equals(Map.class)) {
map = new HashMap<Object, Object>();
- } else if (getTypeClass().equals(Hashtable.class)) {
+ } else if (cls.equals(Hashtable.class)) {
map = new Hashtable<Object, Object>();
- } else if (getTypeClass().isInterface()) {
+ } else if (cls.equals(ConcurrentMap.class)) {
+ map = new ConcurrentHashMap<Object, Object>();
+ } else if (cls.equals(ConcurrentNavigableMap.class)) {
+ map = new ConcurrentSkipListMap<Object, Object>();
+ } else if (cls.equals(SortedMap.class) || cls.equals(NavigableMap.class)) {
+ map = new TreeMap<Object, Object>();
+ } else if (cls.isInterface()) {
map = new HashMap<Object, Object>();
} else {
try {
- map = (Map<Object, Object>)getTypeClass().newInstance();
+ map = (Map<Object, Object>)cls.newInstance();
} catch (Exception e) {
throw new DatabindingException("Could not create map implementation: "
+ getTypeClass().getName(), e);