annotate base/src/java/util/Hashtable.d @ 27:1bf55a6eb092

Renamed java tree to base
author Frank Benoit <benoit@tionex.de>
date Sat, 21 Mar 2009 11:33:57 +0100
parents java/src/java/util/Hashtable.d@9b96950f2c3c
children 9f4c18c268b2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
1 module java.util.Hashtable;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
2
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
3 import java.lang.all;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
4 import java.util.Dictionary;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
5 import java.util.Map;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
6 import java.util.Enumeration;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
7 import java.util.Collection;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
8 import java.util.Set;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
9
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
10 // no nulls
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
11 // synchronized
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
12 class Hashtable : Dictionary, Map {
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
13
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
14 public Object get(String key){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
15 return super.get(key);
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
16 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
17 public Object put(String key, Object value){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
18 return super.put(key, value);
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
19 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
20 public Object put(Object key, String value){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
21 return super.put(key, value);
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
22 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
23 public Object put(String key, String value){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
24 return super.put(key, value);
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
25 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
26 public Object remove(String key){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
27 return super.remove(key);
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
28 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
29
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
30 Object[Object] map;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
31
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
32 // The HashMap class is roughly equivalent to Hashtable, except that it is unsynchronized and permits nulls.
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
33 public this(){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
34 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
35 public this(int initialCapacity){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
36 implMissing( __FILE__, __LINE__ );
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
37 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
38 public this(int initialCapacity, float loadFactor){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
39 implMissing( __FILE__, __LINE__ );
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
40 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
41 public this(Map t){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
42 implMissing( __FILE__, __LINE__ );
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
43 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
44
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
45 class ObjectEnumeration : Enumeration {
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
46 Object[] values;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
47 int index = 0;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
48 this( Object[] values ){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
49 this.values = values;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
50 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
51 public bool hasMoreElements(){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
52 return index < values.length;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
53 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
54 public Object nextElement(){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
55 Object res = values[index];
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
56 index++;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
57 return res;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
58 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
59 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
60
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
61 Enumeration elements(){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
62 return new ObjectEnumeration( map.values );
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
63 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
64 Enumeration keys() {
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
65 return new ObjectEnumeration( map.keys );
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
66 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
67 public synchronized void clear(){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
68 map = null;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
70 public synchronized bool containsKey(Object key){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
71 if( auto v = key in map ){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
72 return true;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 return false;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
75 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 public synchronized bool containsKey(String key){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
77 return containsKey(stringcast(key));
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
78 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
79 public synchronized bool containsValue(Object value){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
80 foreach( k, v; map ){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
81 if( v == value ){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
82 return true;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
83 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
84 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
85 return false;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
86 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
87 public Set entrySet(){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
88 implMissing( __FILE__, __LINE__ );
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
89 return null;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 }
21
9b96950f2c3c the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents: 10
diff changeset
91 public equals_t opEquals(Object o){
10
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
92 implMissing( __FILE__, __LINE__ );
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
93 return 0;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
95 public synchronized Object get(Object key){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 if( auto v = key in map ){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 return *v;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
99 return null;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
100 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
101 public hash_t toHash(){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
102 implMissing( __FILE__, __LINE__ );
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
103 return 0;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
104 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 public synchronized bool isEmpty(){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 return map.length is 0;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 public Set keySet(){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 implMissing( __FILE__, __LINE__ );
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 return null;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
111 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
112 public synchronized Object put(Object key, Object value){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 Object res = null;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114 if( auto v = key in map ){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 res = *v;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 map[ key ] = value;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
118 return res;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
119 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
120 // public Object put(String key, Object value)
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
121 // public Object put(Object key, String value)
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
122 // public Object put(String key, String value)
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
123 public synchronized void putAll(Map t){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
124 implMissing( __FILE__, __LINE__ );
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
125 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 public synchronized Object remove(Object key){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 implMissing( __FILE__, __LINE__ );
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 return null;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 // public Object remove(String key)
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
131 public synchronized int size(){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
132 return map.length;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 public Collection values(){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
135 implMissing( __FILE__, __LINE__ );
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
136 return null;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 // only for D
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 public int opApply (int delegate(ref Object value) dg){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
141 implMissing( __FILE__, __LINE__ );
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
142 return 0;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
143 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
144 public int opApply (int delegate(ref Object key, ref Object value) dg){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
145 implMissing( __FILE__, __LINE__ );
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
146 return 0;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
147 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
148
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
149 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150