You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xbean-scm@geronimo.apache.org by gn...@apache.org on 2009/04/27 13:31:27 UTC
svn commit: r768929 -
/geronimo/xbean/trunk/xbean-reflect/src/main/java/org/apache/xbean/recipe/MapRecipe.java
Author: gnodet
Date: Mon Apr 27 11:31:27 2009
New Revision: 768929
URL: http://svn.apache.org/viewvc?rev=768929&view=rev
Log:
Add support for Dictionary on MapRecipe
Modified:
geronimo/xbean/trunk/xbean-reflect/src/main/java/org/apache/xbean/recipe/MapRecipe.java
Modified: geronimo/xbean/trunk/xbean-reflect/src/main/java/org/apache/xbean/recipe/MapRecipe.java
URL: http://svn.apache.org/viewvc/geronimo/xbean/trunk/xbean-reflect/src/main/java/org/apache/xbean/recipe/MapRecipe.java?rev=768929&r1=768928&r2=768929&view=diff
==============================================================================
--- geronimo/xbean/trunk/xbean-reflect/src/main/java/org/apache/xbean/recipe/MapRecipe.java (original)
+++ geronimo/xbean/trunk/xbean-reflect/src/main/java/org/apache/xbean/recipe/MapRecipe.java Mon Apr 27 11:31:27 2009
@@ -26,6 +26,9 @@
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
+import java.util.Dictionary;
+import java.util.AbstractMap;
+import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
@@ -130,10 +133,14 @@
throw new ConstructionException("Error while creating set instance: " + mapType.getName());
}
- if(!(o instanceof Map)) {
+ Map instance;
+ if (o instanceof Map) {
+ instance = (Map) o;
+ } else if (o instanceof Dictionary) {
+ instance = new DummyDictionaryAsMap((Dictionary) o);
+ } else {
throw new ConstructionException("Specified map type does not implement the Map interface: " + mapType.getName());
}
- Map instance = (Map) o;
// get component type
Type keyType = Object.class;
@@ -277,4 +284,22 @@
}
}
+ public static class DummyDictionaryAsMap extends AbstractMap {
+
+ private final Dictionary dictionary;
+
+ public DummyDictionaryAsMap(Dictionary dictionary) {
+ this.dictionary = dictionary;
+ }
+
+ @Override
+ public Object put(Object key, Object value) {
+ return dictionary.put(key, value);
+ }
+
+ public Set entrySet() {
+ throw new UnsupportedOperationException();
+ }
+ }
+
}