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