1 module java.util.LinkedList; 2 3 import java.lang.all; 4 import java.util.List; 5 import java.util.Iterator; 6 import java.util.ListIterator; 7 import java.util.Collection; 8 9 version(Tango){ 10 static import tango.util.container.CircularList; 11 } else { // Phobos 12 } 13 14 class LinkedList : List { 15 version(Tango){ 16 alias tango.util.container.CircularList.CircularList!(Object) ListType; 17 private ListType list; 18 } else { // Phobos 19 } 20 21 this(){ 22 version(Tango){ 23 list = new ListType(); 24 } else { // Phobos 25 implMissingInPhobos(); 26 } 27 } 28 this( Collection c ){ 29 this(); 30 addAll(c); 31 } 32 void add(int index, Object element){ 33 version(Tango){ 34 list.addAt(index,element); 35 } else { // Phobos 36 implMissingInPhobos(); 37 } 38 } 39 bool add(Object o){ 40 version(Tango){ 41 list.add(o); 42 return true; 43 } else { // Phobos 44 implMissingInPhobos(); 45 return false; 46 } 47 } 48 public bool add(String o){ 49 return add(stringcast(o)); 50 } 51 bool addAll(Collection c){ 52 if( c is null ) throw new NullPointerException(); 53 bool res = false; 54 foreach( o; c ){ 55 res |= add( o ); 56 } 57 return res; 58 } 59 bool addAll(int index, Collection c){ 60 implMissing( __FILE__, __LINE__ ); 61 return false; 62 } 63 void addFirst(Object o){ 64 version(Tango){ 65 list.prepend( o ); 66 } else { // Phobos 67 implMissingInPhobos(); 68 } 69 } 70 void addLast(Object o){ 71 version(Tango){ 72 list.append( o ); 73 } else { // Phobos 74 implMissingInPhobos(); 75 } 76 } 77 // void addElement(Object obj){ 78 // implMissing( __FILE__, __LINE__ ); 79 // } 80 int capacity(){ 81 implMissing( __FILE__, __LINE__ ); 82 return 0; 83 } 84 void clear(){ 85 version(Tango){ 86 list.clear(); 87 } else { // Phobos 88 implMissingInPhobos(); 89 } 90 } 91 Object clone(){ 92 implMissing( __FILE__, __LINE__ ); 93 return null; 94 } 95 bool contains(Object elem){ 96 version(Tango){ 97 return list.contains(elem); 98 } else { // Phobos 99 implMissingInPhobos(); 100 return false; 101 } 102 } 103 bool contains(String elem){ 104 return contains(stringcast(elem)); 105 } 106 bool containsAll(Collection c){ 107 version(Tango){ 108 foreach(o; c){ 109 if( !list.contains(o)) return false; 110 } 111 return true; 112 } else { // Phobos 113 implMissingInPhobos(); 114 return false; 115 } 116 } 117 void copyInto(Object[] anArray){ 118 implMissing( __FILE__, __LINE__ ); 119 } 120 Object elementAt(int index){ 121 version(Tango){ 122 return list.get(index); 123 } else { // Phobos 124 implMissingInPhobos(); 125 return null; 126 } 127 } 128 // Enumeration elements(){ 129 // implMissing( __FILE__, __LINE__ ); 130 // return null; 131 // } 132 void ensureCapacity(int minCapacity){ 133 implMissing( __FILE__, __LINE__ ); 134 } 135 override 136 equals_t opEquals(Object o){ 137 implMissing( __FILE__, __LINE__ ); 138 return false; 139 } 140 Object firstElement(){ 141 implMissing( __FILE__, __LINE__ ); 142 return null; 143 } 144 Object get(int index){ 145 version(Tango){ 146 return list.get(index); 147 } else { // Phobos 148 implMissingInPhobos(); 149 return null; 150 } 151 } 152 Object getFirst(){ 153 version(Tango){ 154 return list.get(0); 155 } else { // Phobos 156 implMissingInPhobos(); 157 return null; 158 } 159 } 160 Object getLast(){ 161 version(Tango){ 162 return list.get(list.size()-1); 163 } else { // Phobos 164 implMissingInPhobos(); 165 return null; 166 } 167 } 168 override 169 hash_t toHash(){ 170 implMissingSafe( __FILE__, __LINE__ ); 171 return 0; 172 } 173 int indexOf(Object elem){ 174 implMissing( __FILE__, __LINE__ ); 175 return 0; 176 } 177 int indexOf(Object elem, int index){ 178 implMissing( __FILE__, __LINE__ ); 179 return 0; 180 } 181 void insertElementAt(Object obj, int index){ 182 implMissing( __FILE__, __LINE__ ); 183 } 184 bool isEmpty(){ 185 version(Tango){ 186 return list.isEmpty(); 187 } else { // Phobos 188 implMissingInPhobos(); 189 return false; 190 } 191 } 192 Iterator iterator(){ 193 implMissing( __FILE__, __LINE__ ); 194 return null; 195 } 196 Object lastElement(){ 197 implMissing( __FILE__, __LINE__ ); 198 return null; 199 } 200 int lastIndexOf(Object elem){ 201 implMissing( __FILE__, __LINE__ ); 202 return 0; 203 } 204 int lastIndexOf(Object elem, int index){ 205 implMissing( __FILE__, __LINE__ ); 206 return 0; 207 } 208 ListIterator listIterator(){ 209 implMissing( __FILE__, __LINE__ ); 210 return null; 211 } 212 ListIterator listIterator(int index){ 213 implMissing( __FILE__, __LINE__ ); 214 return null; 215 } 216 Object remove(int index){ 217 implMissing( __FILE__, __LINE__ ); 218 return null; 219 } 220 bool remove(Object o){ 221 version(Tango){ 222 return list.remove(o,false) !is 0; 223 } else { // Phobos 224 implMissingInPhobos(); 225 return false; 226 } 227 } 228 public bool remove(String key){ 229 return remove(stringcast(key)); 230 } 231 bool removeAll(Collection c){ 232 version(Tango){ 233 bool res = false; 234 foreach( o; c){ 235 res |= list.remove(o,false) !is 0; 236 } 237 return res; 238 } else { // Phobos 239 implMissingInPhobos(); 240 return false; 241 } 242 } 243 void removeAllElements(){ 244 implMissing( __FILE__, __LINE__ ); 245 } 246 Object removeFirst(){ 247 implMissing( __FILE__, __LINE__ ); 248 return null; 249 } 250 Object removeLast(){ 251 implMissing( __FILE__, __LINE__ ); 252 return null; 253 } 254 bool removeElement(Object obj){ 255 implMissing( __FILE__, __LINE__ ); 256 return false; 257 } 258 void removeElementAt(int index){ 259 implMissing( __FILE__, __LINE__ ); 260 } 261 protected void removeRange(int fromIndex, int toIndex){ 262 implMissing( __FILE__, __LINE__ ); 263 } 264 bool retainAll(Collection c){ 265 implMissing( __FILE__, __LINE__ ); 266 return false; 267 } 268 Object set(int index, Object element){ 269 implMissing( __FILE__, __LINE__ ); 270 return null; 271 } 272 void setElementAt(Object obj, int index){ 273 implMissing( __FILE__, __LINE__ ); 274 } 275 void setSize(int newSize){ 276 implMissing( __FILE__, __LINE__ ); 277 } 278 int size(){ 279 version(Tango){ 280 return list.size(); 281 } else { // Phobos 282 implMissingInPhobos(); 283 return 0; 284 } 285 } 286 List subList(int fromIndex, int toIndex){ 287 implMissing( __FILE__, __LINE__ ); 288 return null; 289 } 290 Object[] toArray(){ 291 version(Tango){ 292 return list.toArray(); 293 } else { // Phobos 294 implMissingInPhobos(); 295 return null; 296 } 297 } 298 Object[] toArray(Object[] a){ 299 version(Tango){ 300 return list.toArray( a ); 301 } else { // Phobos 302 implMissingInPhobos(); 303 return null; 304 } 305 } 306 String[] toArray(String[] a){ 307 version(Tango){ 308 auto res = a; 309 if( res.length < list.size() ){ 310 res.length = list.size(); 311 } 312 int idx = 0; 313 foreach( o; list ){ 314 res[idx] = stringcast(o); 315 } 316 return res; 317 } else { // Phobos 318 implMissingInPhobos(); 319 return null; 320 } 321 } 322 override 323 String toString(){ 324 implMissing( __FILE__, __LINE__ ); 325 return null; 326 } 327 void trimToSize(){ 328 implMissing( __FILE__, __LINE__ ); 329 } 330 331 // only for D 332 public int opApply (int delegate(ref Object value) dg){ 333 implMissing( __FILE__, __LINE__ ); 334 return 0; 335 } 336 337 } 338