diff options
Diffstat (limited to 'libraries/spongycastle/core/src/main/j2me/java/util/AbstractCollection.java')
-rw-r--r-- | libraries/spongycastle/core/src/main/j2me/java/util/AbstractCollection.java | 261 |
1 files changed, 261 insertions, 0 deletions
diff --git a/libraries/spongycastle/core/src/main/j2me/java/util/AbstractCollection.java b/libraries/spongycastle/core/src/main/j2me/java/util/AbstractCollection.java new file mode 100644 index 000000000..44c85ee05 --- /dev/null +++ b/libraries/spongycastle/core/src/main/j2me/java/util/AbstractCollection.java @@ -0,0 +1,261 @@ +package java.util; + +public abstract class AbstractCollection + implements Collection +{ + protected AbstractCollection() + { + } + + public abstract Iterator iterator(); + + public abstract int size(); + + public boolean isEmpty() + { + return size() == 0; + } + + public boolean contains(Object o) + { + Iterator it = iterator(); + while (it.hasNext()) + { + Object e = it.next(); + if (o == null) + { + if (e == null) + { + return true; + } + } + else + { + if (o.equals(e)) + { + return true; + } + } + } + return false; + } + + public Object[] toArray() + { + Object[] arObjects = new Object[size()]; + Iterator it = iterator(); + int i = 0; + while (it.hasNext()) + { + arObjects[i++] = it.next(); + } + return arObjects; + } + + public Object[] toArray(Object[] a) + throws NullPointerException, ArrayStoreException + //TODO: Check if this is realy compatible to SUN!!! + { + if (a == null) + { + throw new NullPointerException(); + } + + if (isEmpty()) + { + return a; + } + Object[] arObjects = null; + int size = size(); + if (a.length < size) + { + Iterator it = iterator(); + Object o = it.next(); + if (o == null) //no object or object is null + { + throw new ArrayStoreException(); //correct ? + } + throw new ArrayStoreException("please pass array of correct size"); + } + else + { + arObjects = a; + if (a.length > size) + { + arObjects[size] = null; + } + + } + + Iterator it = iterator(); + int i = 0; + while (it.hasNext()) + { + Object o = it.next(); + arObjects[i++] = o; + } + return arObjects; + } + + public boolean add(Object o) + throws RuntimeException, NullPointerException, ClassCastException, IllegalArgumentException + { + throw new RuntimeException(); + } + + public boolean remove(Object o) + throws RuntimeException + { + Iterator it = iterator(); + while (it.hasNext()) + { + Object e = it.next(); + if (o == null) + { + if (e == null) + { + try + { + it.remove(); + } + catch (RuntimeException ue) + { + throw ue; + } + return true; + } + } + else + { + if (o.equals(e)) + { + try + { + it.remove(); + } + catch (RuntimeException ue) + { + throw ue; + } + return true; + } + } + } + return false; + } + + public boolean containsAll(Collection c) + { + Iterator it = c.iterator(); + while (it.hasNext()) + { + if (!contains(it.next())) + { + return false; + } + } + return true; + } + + public boolean addAll(Collection c) + throws RuntimeException + { + Iterator it = c.iterator(); + boolean ret = false; + while (it.hasNext()) + { + try + { + ret |= add(it.next()); + } + catch (RuntimeException ue) + { + throw ue; + } + } + return ret; + } + + public boolean removeAll(Collection c) + throws RuntimeException + { + Iterator it = iterator(); + boolean ret = false; + while (it.hasNext()) + { + if (c.contains(it.next())) + { + try + { + it.remove(); + ret = true; + } + catch (RuntimeException ue) + { + throw ue; + } + } + } + return ret; + } + + public boolean retainAll(Collection c) + throws RuntimeException + { + Iterator it = iterator(); + boolean ret = false; + while (it.hasNext()) + { + if (!c.contains(it.next())) + { + try + { + it.remove(); + ret = true; + } + catch (RuntimeException ue) + { + throw ue; + } + } + } + return ret; + } + + public void clear() + throws RuntimeException + { + Iterator it = iterator(); + while (it.hasNext()) + { + try + { + it.next(); + it.remove(); + } + catch (RuntimeException ue) + { + throw ue; + } + } + } + + public String toString() + { + StringBuffer ret = new StringBuffer("["); + Iterator it = iterator(); + if (it.hasNext()) + { + ret.append(String.valueOf(it.next())); + } + while (it.hasNext()) + { + ret.append(", "); + ret.append(String.valueOf(it.next())); + + } + ret.append("]"); + return ret.toString(); + } + +} |