Mercurial > projects > dwt2
diff java/src/java/util/IdentityHashMap.d @ 21:9b96950f2c3c
the 'java' tree compiles on both D1-Tango and D2-Phobos
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Thu, 19 Mar 2009 20:38:55 +0100 |
parents | eb8ff453285d |
children |
line wrap: on
line diff
--- a/java/src/java/util/IdentityHashMap.d Wed Mar 18 12:10:17 2009 +0100 +++ b/java/src/java/util/IdentityHashMap.d Thu Mar 19 20:38:55 2009 +0100 @@ -8,13 +8,25 @@ import java.util.Collection; import java.util.Set; +version(Tango){ + static import tango.util.container.HashMap; +} else { // Phobos +} + class IdentityHashMap : Map { - alias tango.util.container.HashMap.HashMap!(Object,Object) MapType; - private MapType map; + version(Tango){ + alias tango.util.container.HashMap.HashMap!(Object,Object) MapType; + private MapType map; + } else { // Phobos + } public this(){ implMissing(__FILE__, __LINE__ ); - map = new MapType(); + version(Tango){ + map = new MapType(); + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + } } public this(int initialCapacity){ implMissing(__FILE__, __LINE__ ); @@ -22,7 +34,11 @@ } public this(int initialCapacity, float loadFactor){ implMissing(__FILE__, __LINE__ ); - map = new MapType(loadFactor); + version(Tango){ + map = new MapType(loadFactor); + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + } } public this(Map m){ implMissing(__FILE__, __LINE__ ); @@ -30,45 +46,74 @@ putAll(m); } public void clear(){ - map.clear(); + version(Tango){ + map.clear(); + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + } } public bool containsKey(Object key){ - Object v; - return map.get(key, v ); + version(Tango){ + Object v; + return map.get(key, v ); + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return false; + } } public bool containsKey(String key){ return containsKey(stringcast(key)); } public bool containsValue(Object value){ - return map.contains(value); + version(Tango){ + return map.contains(value); + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return false; + } } public Set entrySet(){ - HashSet res = new HashSet(); - foreach( k, v; map ){ - res.add( new MapEntry(this,k)); + version(Tango){ + HashSet res = new HashSet(); + foreach( k, v; map ){ + res.add( new MapEntry(this,k)); + } + return res; + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return null; } - return res; } - public override int opEquals(Object o){ - if( auto other = cast(HashMap) o ){ - if( other.size() !is size() ){ - return false; - } - foreach( k, v; map ){ - Object vo = other.get(k); - if( v != vo ){ + public override equals_t opEquals(Object o){ + version(Tango){ + if( auto other = cast(HashMap) o ){ + if( other.size() !is size() ){ return false; } + foreach( k, v; map ){ + Object vo = other.get(k); + if( v != vo ){ + return false; + } + } + return true; } - return true; + return false; + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return false; } - return false; } public Object get(Object key){ - if( auto v = key in map ){ - return *v; + version(Tango){ + if( auto v = key in map ){ + return *v; + } + return null; + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return null; } - return null; } public Object get(String key){ return get(stringcast(key)); @@ -77,22 +122,37 @@ return super.toHash(); } public bool isEmpty(){ - return map.isEmpty(); + version(Tango){ + return map.isEmpty(); + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return false; + } } public Set keySet(){ - HashSet res = new HashSet(); - foreach( k, v; map ){ - res.add(k); + version(Tango){ + HashSet res = new HashSet(); + foreach( k, v; map ){ + res.add(k); + } + return res; + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return null; } - return res; } public Object put(Object key, Object value){ - Object res = null; - if( auto vold = key in map ){ - res = *vold; + version(Tango){ + Object res = null; + if( auto vold = key in map ){ + res = *vold; + } + map[ key ] = value; + return res; + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return null; } - map[ key ] = value; - return res; } public Object put(String key, Object value){ return put( stringcast(key), value ); @@ -104,38 +164,67 @@ return put( stringcast(key), stringcast(value) ); } public void putAll(Map t){ - foreach( k, v; t ){ - map[k] = v; + version(Tango){ + foreach( k, v; t ){ + map[k] = v; + } + } else { // Phobos + implMissing( __FILE__, __LINE__ ); } } public Object remove(Object key){ - if( auto v = key in map ){ - Object res = *v; + version(Tango){ + if( auto v = key in map ){ + Object res = *v; + map.remove(key); + return res; + } map.remove(key); - return res; + return null; + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return null; } - map.remove(key); - return null; } public Object remove(String key){ return remove(stringcast(key)); } public int size(){ - return map.size(); + version(Tango){ + return map.size(); + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return 0; + } } public Collection values(){ - ArrayList res = new ArrayList( size() ); - foreach( k, v; map ){ - res.add( v ); + version(Tango){ + ArrayList res = new ArrayList( size() ); + foreach( k, v; map ){ + res.add( v ); + } + return res; + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return null; } - return res; } public int opApply (int delegate(ref Object value) dg){ - return map.opApply( dg ); + version(Tango){ + return map.opApply( dg ); + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return 0; + } } public int opApply (int delegate(ref Object key, ref Object value) dg){ - return map.opApply( dg ); + version(Tango){ + return map.opApply( dg ); + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return 0; + } } }