annotate base/src/java/util/Hashtable.d @ 112:9f4c18c268b2

Update to compile and execute with dmd 2.052.
author kntroh
date Wed, 16 Mar 2011 21:53:53 +0900
parents 1bf55a6eb092
children
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 }
112
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
67 public void clear(){
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
68 synchronized map = null;
10
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
69 }
112
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
70 public bool containsKey(Object key){
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
71 synchronized {
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
72 if( auto v = key in map ){
10
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
73 return true;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
74 }
112
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
75 return false;
10
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
76 }
112
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
77 }
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
78 public bool containsKey(String key){
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
79 synchronized return containsKey(stringcast(key));
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
80 }
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
81 public bool containsValue(Object value){
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
82 synchronized {
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
83 foreach( k, v; map ){
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
84 if( v == value ){
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
85 return true;
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
86 }
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
87 }
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
88 return false;
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
89 }
10
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
90 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
91 public Set entrySet(){
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 null;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
94 }
21
9b96950f2c3c the 'java' tree compiles on both D1-Tango and D2-Phobos
Frank Benoit <benoit@tionex.de>
parents: 10
diff changeset
95 public equals_t opEquals(Object o){
10
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
96 implMissing( __FILE__, __LINE__ );
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
97 return 0;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
98 }
112
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
99 public Object get(Object key){
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
100 synchronized {
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
101 if( auto v = key in map ){
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
102 return *v;
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
103 }
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
104 return null;
10
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
105 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
106 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
107 public hash_t toHash(){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
108 implMissing( __FILE__, __LINE__ );
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
109 return 0;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
110 }
112
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
111 public bool isEmpty(){
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
112 synchronized return map.length is 0;
10
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
113 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
114 public Set keySet(){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
115 implMissing( __FILE__, __LINE__ );
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
116 return null;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
117 }
112
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
118 public Object put(Object key, Object value){
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
119 synchronized {
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
120 Object res = null;
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
121 if( auto v = key in map ){
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
122 res = *v;
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
123 }
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
124 map[ key ] = value;
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
125 return res;
10
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
126 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
127 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
128 // public Object put(String key, Object value)
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
129 // public Object put(Object key, String value)
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
130 // public Object put(String key, String value)
112
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
131 public void putAll(Map t){
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
132 synchronized
10
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
133 implMissing( __FILE__, __LINE__ );
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
134 }
112
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
135 public Object remove(Object key){
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
136 synchronized
10
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
137 implMissing( __FILE__, __LINE__ );
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
138 return null;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
139 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
140 // public Object remove(String key)
112
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
141 public int size(){
9f4c18c268b2 Update to compile and execute with dmd 2.052.
kntroh
parents: 27
diff changeset
142 synchronized return map.length;
10
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 Collection values(){
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 null;
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 // only for D
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
150 public int opApply (int delegate(ref Object value) dg){
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
151 implMissing( __FILE__, __LINE__ );
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
152 return 0;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
153 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
154 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
155 implMissing( __FILE__, __LINE__ );
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
156 return 0;
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
157 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
158
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
159 }
eb8ff453285d Added java.util collection classes.
Frank Benoit <benoit@tionex.de>
parents:
diff changeset
160