comparison base/src/java/util/TreeMap.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/TreeMap.d@9b96950f2c3c
children bbe49769ec18
comparison
equal deleted inserted replaced
26:f589fc20a5f9 27:1bf55a6eb092
1 module java.util.TreeMap;
2
3 import java.lang.all;
4 import java.util.Map;
5 import java.util.Set;
6 import java.util.Collection;
7 import java.util.SortedMap;
8 import java.util.TreeSet;
9 import java.util.ArrayList;
10
11 version(Tango){
12 static import tango.util.container.SortedMap;
13 } else { // Phobos
14 }
15
16
17 class TreeMap : Map, SortedMap {
18 version(Tango){
19 alias tango.util.container.SortedMap.SortedMap!(Object,Object) MapType;
20 private MapType map;
21 } else { // Phobos
22 }
23
24
25 public this(){
26 version(Tango){
27 map = new MapType();
28 } else { // Phobos
29 implMissing( __FILE__, __LINE__ );
30 }
31 }
32 public this(Comparator c){
33 implMissing( __FILE__, __LINE__ );
34 }
35 public this(Map m){
36 implMissing( __FILE__, __LINE__ );
37 }
38 public this(SortedMap m){
39 implMissing( __FILE__, __LINE__ );
40 }
41 public void clear(){
42 version(Tango){
43 map.clear();
44 } else { // Phobos
45 implMissing( __FILE__, __LINE__ );
46 }
47 }
48 Comparator comparator(){
49 implMissing( __FILE__, __LINE__ );
50 return null;
51 }
52 public bool containsKey(Object key){
53 version(Tango){
54 Object v;
55 return map.get(key, v );
56 } else { // Phobos
57 implMissing( __FILE__, __LINE__ );
58 return false;
59 }
60 }
61 public bool containsKey(String key){
62 return containsKey(stringcast(key));
63 }
64 public bool containsValue(Object value){
65 version(Tango){
66 return map.contains(value);
67 } else { // Phobos
68 implMissing( __FILE__, __LINE__ );
69 return false;
70 }
71 }
72 public Set entrySet(){
73 version(Tango){
74 TreeSet res = new TreeSet();
75 foreach( k, v; map ){
76 res.add( new MapEntry(this,k) );
77 }
78 return res;
79 } else { // Phobos
80 implMissing( __FILE__, __LINE__ );
81 return null;
82 }
83 }
84 public override equals_t opEquals(Object o){
85 version(Tango){
86 if( auto other = cast(TreeMap) o ){
87 if( other.size() !is size() ){
88 return false;
89 }
90 foreach( k, v; map ){
91 Object vo = other.get(k);
92 if( v != vo ){
93 return false;
94 }
95 }
96 return true;
97 }
98 return false;
99 } else { // Phobos
100 implMissing( __FILE__, __LINE__ );
101 return false;
102 }
103 }
104 Object firstKey(){
105 version(Tango){
106 foreach( k; map ){
107 return k;
108 }
109 throw new tango.core.Exception.NoSuchElementException( "TreeMap.firstKey" );
110 } else { // Phobos
111 implMissing( __FILE__, __LINE__ );
112 return null;
113 }
114 }
115 public Object get(Object key){
116 implMissing( __FILE__, __LINE__ );
117 return null;
118 }
119 public Object get(String key){
120 return get(stringcast(key));
121 }
122 public override hash_t toHash(){
123 // http://java.sun.com/j2se/1.4.2/docs/api/java/util/AbstractMap.html#hashCode()
124 hash_t res = 0;
125 foreach( e; entrySet() ){
126 res += e.toHash();
127 }
128 return res;
129 }
130 SortedMap headMap(Object toKey){
131 implMissing( __FILE__, __LINE__ );
132 return null;
133 }
134 public bool isEmpty(){
135 version(Tango){
136 return map.isEmpty();
137 } else { // Phobos
138 implMissing( __FILE__, __LINE__ );
139 return false;
140 }
141 }
142 public Set keySet(){
143 version(Tango){
144 TreeSet res = new TreeSet();
145 foreach( k; map ){
146 res.add( k );
147 }
148 return res;
149 } else { // Phobos
150 implMissing( __FILE__, __LINE__ );
151 return null;
152 }
153 }
154 Object lastKey(){
155 version(Tango){
156 Object res;
157 foreach( k; map ){
158 res = k;
159 }
160 if( map.size() ) return res;
161 throw new tango.core.Exception.NoSuchElementException( "TreeMap.lastKey" );
162 } else { // Phobos
163 implMissing( __FILE__, __LINE__ );
164 return null;
165 }
166 }
167 public Object put(Object key, Object value){
168 version(Tango){
169 if( map.contains(key) ){ // TODO if tango has opIn_r, then use the "in" operator
170 Object res = map[key];
171 map[key] = value;
172 return res;
173 }
174 map[key] = value;
175 return null;
176 } else { // Phobos
177 implMissing( __FILE__, __LINE__ );
178 return null;
179 }
180 }
181 public Object put(String key, Object value){
182 return put(stringcast(key), value);
183 }
184 public Object put(Object key, String value){
185 return put(key, stringcast(value));
186 }
187 public Object put(String key, String value){
188 return put(stringcast(key), stringcast(value));
189 }
190 public void putAll(Map t){
191 foreach( k, v; t ){
192 put( k, v );
193 }
194 }
195 public Object remove(Object key){
196 version(Tango){
197 Object res;
198 map.take(key,res);
199 return res;
200 } else { // Phobos
201 implMissing( __FILE__, __LINE__ );
202 return null;
203 }
204 }
205 public Object remove(String key){
206 return remove(stringcast(key));
207 }
208 public int size(){
209 version(Tango){
210 return map.size();
211 } else { // Phobos
212 implMissing( __FILE__, __LINE__ );
213 return 0;
214 }
215 }
216 SortedMap subMap(Object fromKey, Object toKey){
217 implMissing( __FILE__, __LINE__ );
218 return null;
219 }
220 SortedMap tailMap(Object fromKey){
221 implMissing( __FILE__, __LINE__ );
222 return null;
223 }
224 public Collection values(){
225 version(Tango){
226 ArrayList res = new ArrayList( size() );
227 foreach( k, v; map ){
228 res.add( v );
229 }
230 return res;
231 } else { // Phobos
232 implMissing( __FILE__, __LINE__ );
233 return null;
234 }
235 }
236
237 public int opApply (int delegate(ref Object value) dg){
238 version(Tango){
239 return map.opApply( dg );
240 } else { // Phobos
241 implMissing( __FILE__, __LINE__ );
242 return 0;
243 }
244 }
245 public int opApply (int delegate(ref Object key, ref Object value) dg){
246 version(Tango){
247 return map.opApply( dg );
248 } else { // Phobos
249 implMissing( __FILE__, __LINE__ );
250 return 0;
251 }
252 }
253 }
254