Mercurial > projects > dwt2
diff java/src/java/util/TreeMap.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/TreeMap.d Wed Mar 18 12:10:17 2009 +0100 +++ b/java/src/java/util/TreeMap.d Thu Mar 19 20:38:55 2009 +0100 @@ -8,14 +8,26 @@ import java.util.TreeSet; import java.util.ArrayList; -static import tango.util.container.SortedMap; +version(Tango){ + static import tango.util.container.SortedMap; +} else { // Phobos +} + class TreeMap : Map, SortedMap { - alias tango.util.container.SortedMap.SortedMap!(Object,Object) MapType; - private MapType map; + version(Tango){ + alias tango.util.container.SortedMap.SortedMap!(Object,Object) MapType; + private MapType map; + } else { // Phobos + } + public this(){ - map = new MapType(); + version(Tango){ + map = new MapType(); + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + } } public this(Comparator c){ implMissing( __FILE__, __LINE__ ); @@ -27,49 +39,78 @@ implMissing( __FILE__, __LINE__ ); } public void clear(){ - map.clear(); + version(Tango){ + map.clear(); + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + } } Comparator comparator(){ implMissing( __FILE__, __LINE__ ); return null; } 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(){ - TreeSet res = new TreeSet(); - foreach( k, v; map ){ - res.add( new MapEntry(this,k) ); + version(Tango){ + TreeSet res = new TreeSet(); + 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(TreeMap) 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(TreeMap) 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; } Object firstKey(){ - foreach( k; map ){ - return k; + version(Tango){ + foreach( k; map ){ + return k; + } + throw new tango.core.Exception.NoSuchElementException( "TreeMap.firstKey" ); + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return null; } - throw new tango.core.Exception.NoSuchElementException( "TreeMap.firstKey" ); } public Object get(Object key){ implMissing( __FILE__, __LINE__ ); @@ -91,31 +132,51 @@ return null; } public bool isEmpty(){ - return map.isEmpty(); + version(Tango){ + return map.isEmpty(); + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return false; + } } public Set keySet(){ - TreeSet res = new TreeSet(); - foreach( k; map ){ - res.add( k ); + version(Tango){ + TreeSet res = new TreeSet(); + foreach( k; map ){ + res.add( k ); + } + return res; + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return null; } - return res; } Object lastKey(){ - Object res; - foreach( k; map ){ - res = k; + version(Tango){ + Object res; + foreach( k; map ){ + res = k; + } + if( map.size() ) return res; + throw new tango.core.Exception.NoSuchElementException( "TreeMap.lastKey" ); + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return null; } - if( map.size() ) return res; - throw new tango.core.Exception.NoSuchElementException( "TreeMap.lastKey" ); } public Object put(Object key, Object value){ - if( map.contains(key) ){ // TODO if tango has opIn_r, then use the "in" operator - Object res = map[key]; + version(Tango){ + if( map.contains(key) ){ // TODO if tango has opIn_r, then use the "in" operator + Object res = map[key]; + map[key] = value; + return res; + } map[key] = value; - return res; + return null; + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + return null; } - map[key] = value; - return null; } public Object put(String key, Object value){ return put(stringcast(key), value); @@ -132,15 +193,25 @@ } } public Object remove(Object key){ - Object res; - map.take(key,res); - return res; + version(Tango){ + Object res; + map.take(key,res); + return res; + } else { // Phobos + implMissing( __FILE__, __LINE__ ); + 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; + } } SortedMap subMap(Object fromKey, Object toKey){ implMissing( __FILE__, __LINE__ ); @@ -151,18 +222,33 @@ return null; } 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; + } } }