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;
+        }
     }
 }