Mercurial > projects > dwt2
diff base/src/java/util/AbstractList.d @ 84:fcf926c91ca4
Added base classes
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sat, 18 Apr 2009 09:25:29 +0200 |
parents | 1bf55a6eb092 |
children |
line wrap: on
line diff
--- a/base/src/java/util/AbstractList.d Tue Apr 14 13:22:56 2009 +0200 +++ b/base/src/java/util/AbstractList.d Sat Apr 18 09:25:29 2009 +0200 @@ -11,18 +11,61 @@ this(){ } - public abstract void add(int index, Object element); - public abstract bool add(Object o); - public abstract bool addAll(Collection c); - public abstract bool addAll(int index, Collection c); - public abstract void clear(); - public abstract bool contains(Object o); - public bool contains(String str){ - return contains(stringcast(str)); + public void add(int index, Object element){ + throw new UnsupportedOperationException(); + } + public bool add(String o){ + return add(stringcast(o)); + } + public bool add(Object o){ + add(size(), o); + return true; + } + public bool addAll(Collection c){ + throw new UnsupportedOperationException(); + } + public bool addAll(int index, Collection c){ + throw new UnsupportedOperationException(); + } + public void clear(){ + throw new UnsupportedOperationException(); } - public abstract bool containsAll(Collection c); - public abstract equals_t opEquals(Object o); - public abstract Object get(int index); + public bool contains(Object o){ return super.contains(o); } + public bool contains(String str){ return contains(stringcast(str)); } + public bool containsAll(Collection c){ return super.containsAll(c); } + public equals_t opEquals(Object o){ + if( auto other = cast(List)o ){ + if( other is cast(List)this ){ + return true; + } + auto it1 = this.iterator(); + auto it2 = other.iterator(); + while(true){ + bool n1 = it1.hasNext(); + bool n2 = it2.hasNext(); + if( !n1 && !n2 ) return true; + if( (n1 && !n2) || (!n1 && n2 )) return false; + Object o1 = it1.next(); + Object o2 = it2.next(); + if( o1 is null ){ + if( o2 !is null ){ + return false; + } + } + else{ + if( o2 is null ){ + return false; + } + if( o1 != o2 ){ + return false; + } + } + } + } + return false; + } + + public abstract Object get(int index); public hash_t toHash(){ // http://java.sun.com/j2se/1.4.2/docs/api/java/util/List.html#hashCode() @@ -35,22 +78,63 @@ return hashCode; } - public abstract int indexOf(Object o); - public abstract bool isEmpty(); - public abstract Iterator iterator(); - public abstract int lastIndexOf(Object o); - public abstract ListIterator listIterator(); - public abstract ListIterator listIterator(int index); - public abstract Object remove(int index); - protected abstract void removeRange(int fromIndex, int toIndex); - public abstract bool remove(Object o); - public abstract bool remove(String o); - public abstract bool removeAll(Collection c); - public abstract bool retainAll(Collection c); - public abstract Object set(int index, Object element); - public abstract List subList(int fromIndex, int toIndex); - public abstract Object[] toArray(); - public abstract Object[] toArray(Object[] a); + public int indexOf(Object o){ + auto it = listIterator(); + int idx = 0; + while(it.hasNext()){ + auto t = it.next(); + if( t is null ? o is null : t == o){ + return idx; + } + idx++; + } + return -1; + } + public bool isEmpty(){ + return super.isEmpty(); + } + public Iterator iterator(){ + implMissing( __FILE__, __LINE__ ); + return null; + } + public int lastIndexOf(Object o){ + implMissing( __FILE__, __LINE__ ); + return 0; + } + public ListIterator listIterator(){ + implMissing( __FILE__, __LINE__ ); + return null; + } + public ListIterator listIterator(int index){ + implMissing( __FILE__, __LINE__ ); + return null; + } + public Object remove(int index){ + throw new UnsupportedOperationException(); + } + protected void removeRange(int fromIndex, int toIndex){ + } + public bool remove(Object o){ return super.remove(o); } + public bool remove(String o){ return super.remove(o); } + public bool removeAll(Collection c){ return super.removeAll(c); } + public bool retainAll(Collection c){ return super.retainAll(c); } + public Object set(int index, Object element){ + throw new UnsupportedOperationException(); + } + public List subList(int fromIndex, int toIndex){ + implMissing( __FILE__, __LINE__ ); + return null; + } + public Object[] toArray(){ return super.toArray(); } + public Object[] toArray(Object[] a){ return super.toArray(a); } + public String[] toArray(String[] a){ return super.toArray(a); } + public int opApply (int delegate(ref Object value) dg){ + implMissing( __FILE__, __LINE__ ); + return 0; + } + public String toString(){ + return super.toString(); + } }