diff -r 5652acd48509 -r 42bc1e89134d emul/compact/src/main/java/java/util/AbstractSet.java --- a/emul/compact/src/main/java/java/util/AbstractSet.java Mon Feb 25 19:00:08 2013 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,185 +0,0 @@ -/* - * Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved. - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This code is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License version 2 only, as - * published by the Free Software Foundation. Oracle designates this - * particular file as subject to the "Classpath" exception as provided - * by Oracle in the LICENSE file that accompanied this code. - * - * This code is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * version 2 for more details (a copy is included in the LICENSE file that - * accompanied this code). - * - * You should have received a copy of the GNU General Public License version - * 2 along with this work; if not, write to the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. - * - * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA - * or visit www.oracle.com if you need additional information or have any - * questions. - */ - -package java.util; - -/** - * This class provides a skeletal implementation of the Set - * interface to minimize the effort required to implement this - * interface.
- * - * The process of implementing a set by extending this class is identical - * to that of implementing a Collection by extending AbstractCollection, - * except that all of the methods and constructors in subclasses of this - * class must obey the additional constraints imposed by the Set - * interface (for instance, the add method must not permit addition of - * multiple instances of an object to a set).
- * - * Note that this class does not override any of the implementations from - * the AbstractCollection class. It merely adds implementations - * for equals and hashCode.
- *
- * This class is a member of the
- *
- * Java Collections Framework.
- *
- * @param
- *
- * This implementation first checks if the specified object is this
- * set; if so it returns true. Then, it checks if the
- * specified object is a set whose size is identical to the size of
- * this set; if not, it returns false. If so, it returns
- * containsAll((Collection) o).
- *
- * @param o object to be compared for equality with this set
- * @return true if the specified object is equal to this set
- */
- public boolean equals(Object o) {
- if (o == this)
- return true;
-
- if (!(o instanceof Set))
- return false;
- Collection c = (Collection) o;
- if (c.size() != size())
- return false;
- try {
- return containsAll(c);
- } catch (ClassCastException unused) {
- return false;
- } catch (NullPointerException unused) {
- return false;
- }
- }
-
- /**
- * Returns the hash code value for this set. The hash code of a set is
- * defined to be the sum of the hash codes of the elements in the set,
- * where the hash code of a null element is defined to be zero.
- * This ensures that s1.equals(s2) implies that
- * s1.hashCode()==s2.hashCode() for any two sets s1
- * and s2, as required by the general contract of
- * {@link Object#hashCode}.
- *
- * This implementation iterates over the set, calling the
- * hashCode method on each element in the set, and adding up
- * the results.
- *
- * @return the hash code value for this set
- * @see Object#equals(Object)
- * @see Set#equals(Object)
- */
- public int hashCode() {
- int h = 0;
- Iterator This implementation determines which is the smaller of this set
- * and the specified collection, by invoking the size
- * method on each. If this set has fewer elements, then the
- * implementation iterates over this set, checking each element
- * returned by the iterator in turn to see if it is contained in
- * the specified collection. If it is so contained, it is removed
- * from this set with the iterator's remove method. If
- * the specified collection has fewer elements, then the
- * implementation iterates over the specified collection, removing
- * from this set each element returned by the iterator, using this
- * set's remove method.
- *
- * Note that this implementation will throw an
- * UnsupportedOperationException if the iterator returned by the
- * iterator method does not implement the remove method.
- *
- * @param c collection containing elements to be removed from this set
- * @return true if this set changed as a result of the call
- * @throws UnsupportedOperationException if the removeAll operation
- * is not supported by this set
- * @throws ClassCastException if the class of an element of this set
- * is incompatible with the specified collection
- * (optional)
- * @throws NullPointerException if this set contains a null element and the
- * specified collection does not permit null elements
- * (optional),
- * or if the specified collection is null
- * @see #remove(Object)
- * @see #contains(Object)
- */
- public boolean removeAll(Collection> c) {
- boolean modified = false;
-
- if (size() > c.size()) {
- for (Iterator> i = c.iterator(); i.hasNext(); )
- modified |= remove(i.next());
- } else {
- for (Iterator> i = iterator(); i.hasNext(); ) {
- if (c.contains(i.next())) {
- i.remove();
- modified = true;
- }
- }
- }
- return modified;
- }
-
-}