summaryrefslogtreecommitdiff
path: root/libjava/classpath/java/util/Collections.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/classpath/java/util/Collections.java')
-rw-r--r--libjava/classpath/java/util/Collections.java778
1 files changed, 389 insertions, 389 deletions
diff --git a/libjava/classpath/java/util/Collections.java b/libjava/classpath/java/util/Collections.java
index 066c9d53893..828c6ecea12 100644
--- a/libjava/classpath/java/util/Collections.java
+++ b/libjava/classpath/java/util/Collections.java
@@ -354,7 +354,7 @@ public class Collections
* This is true only if the given collection is also empty.
* @param c The collection of objects, which should be compared
* against the members of this list.
- * @return <code>true</code> if c is also empty.
+ * @return <code>true</code> if c is also empty.
*/
public boolean containsAll(Collection<?> c)
{
@@ -552,7 +552,7 @@ public class Collections
/**
* No mappings, so this returns null.
* @param o The key of the object to retrieve.
- * @return null.
+ * @return null.
*/
public V get(Object o)
{
@@ -617,7 +617,7 @@ public class Collections
}
} // class EmptyMap
-
+
/**
* Compare two objects with or without a Comparator. If c is null, uses the
* natural ordering. Slightly slower than doing it inline if the JVM isn't
@@ -653,8 +653,8 @@ public class Collections
* @throws NullPointerException if a null element has compareTo called
* @see #sort(List)
*/
- public static <T> int binarySearch(List<? extends Comparable<? super T>> l,
- T key)
+ public static <T> int binarySearch(List<? extends Comparable<? super T>> l,
+ T key)
{
return binarySearch(l, key, null);
}
@@ -687,7 +687,7 @@ public class Collections
* @see #sort(List, Comparator)
*/
public static <T> int binarySearch(List<? extends T> l, T key,
- Comparator<? super T> c)
+ Comparator<? super T> c)
{
int pos = 0;
int low = 0;
@@ -697,53 +697,53 @@ public class Collections
// if the list is sequential-access.
if (isSequential(l))
{
- ListIterator<T> itr = ((List<T>) l).listIterator();
+ ListIterator<T> itr = ((List<T>) l).listIterator();
int i = 0;
- T o = itr.next(); // Assumes list is not empty (see isSequential)
- boolean forward = true;
+ T o = itr.next(); // Assumes list is not empty (see isSequential)
+ boolean forward = true;
while (low <= hi)
{
pos = (low + hi) >>> 1;
if (i < pos)
- {
- if (!forward)
- itr.next(); // Changing direction first.
- for ( ; i != pos; i++, o = itr.next())
+ {
+ if (!forward)
+ itr.next(); // Changing direction first.
+ for ( ; i != pos; i++, o = itr.next())
;
- forward = true;
- }
+ forward = true;
+ }
else
- {
- if (forward)
- itr.previous(); // Changing direction first.
- for ( ; i != pos; i--, o = itr.previous())
+ {
+ if (forward)
+ itr.previous(); // Changing direction first.
+ for ( ; i != pos; i--, o = itr.previous())
;
- forward = false;
- }
- final int d = compare(o, key, c);
- if (d == 0)
+ forward = false;
+ }
+ final int d = compare(o, key, c);
+ if (d == 0)
return pos;
- else if (d > 0)
+ else if (d > 0)
hi = pos - 1;
- else
+ else
// This gets the insertion point right on the last loop
low = ++pos;
}
}
else
{
- while (low <= hi)
- {
- pos = (low + hi) >>> 1;
- final int d = compare(((List<T>) l).get(pos), key, c);
- if (d == 0)
+ while (low <= hi)
+ {
+ pos = (low + hi) >>> 1;
+ final int d = compare(((List<T>) l).get(pos), key, c);
+ if (d == 0)
return pos;
- else if (d > 0)
+ else if (d > 0)
hi = pos - 1;
- else
+ else
// This gets the insertion point right on the last loop
low = ++pos;
- }
+ }
}
// If we failed to find it, we do the same whichever search we did.
@@ -799,7 +799,7 @@ public class Collections
*/
public final boolean hasMoreElements()
{
- return i.hasNext();
+ return i.hasNext();
}
/**
@@ -810,7 +810,7 @@ public class Collections
*/
public final T nextElement()
{
- return i.next();
+ return i.next();
}
};
}
@@ -829,8 +829,8 @@ public class Collections
ListIterator<? super T> itr = l.listIterator();
for (int i = l.size() - 1; i >= 0; --i)
{
- itr.next();
- itr.set(val);
+ itr.next();
+ itr.set(val);
}
}
@@ -928,16 +928,16 @@ public class Collections
* (only possible when order is null)
*/
public static <T> T max(Collection<? extends T> c,
- Comparator<? super T> order)
+ Comparator<? super T> order)
{
Iterator<? extends T> itr = c.iterator();
T max = itr.next(); // throws NoSuchElementException
int csize = c.size();
for (int i = 1; i < csize; i++)
{
- T o = itr.next();
- if (compare(max, o, order) < 0)
- max = o;
+ T o = itr.next();
+ if (compare(max, o, order) < 0)
+ max = o;
}
return max;
}
@@ -974,16 +974,16 @@ public class Collections
* (only possible when order is null)
*/
public static <T> T min(Collection<? extends T> c,
- Comparator<? super T> order)
+ Comparator<? super T> order)
{
Iterator<? extends T> itr = c.iterator();
- T min = itr.next(); // throws NoSuchElementExcception
+ T min = itr.next(); // throws NoSuchElementExcception
int csize = c.size();
for (int i = 1; i < csize; i++)
{
- T o = itr.next();
- if (compare(min, o, order) > 0)
- min = o;
+ T o = itr.next();
+ if (compare(min, o, order) > 0)
+ min = o;
}
return min;
}
@@ -1044,7 +1044,7 @@ public class Collections
CopiesList(int n, T o)
{
if (n < 0)
- throw new IllegalArgumentException();
+ throw new IllegalArgumentException();
this.n = n;
element = o;
}
@@ -1190,12 +1190,12 @@ public class Collections
ListIterator i2 = l.listIterator(pos2);
while (pos1 < pos2)
{
- Object o1 = i1.next();
+ Object o1 = i1.next();
Object o2 = i2.previous();
- i1.set(o2);
- i2.set(o1);
- ++pos1;
- --pos2;
+ i1.set(o2);
+ i2.set(o1);
+ ++pos1;
+ --pos2;
}
}
@@ -1221,7 +1221,7 @@ public class Collections
{
public int compare(T a, T b)
{
- return - c.compare(a, b);
+ return - c.compare(a, b);
}
};
}
@@ -1344,7 +1344,7 @@ public class Collections
// Now, make the swaps. We must take the remainder every time through
// the inner loop so that we don't overflow i to negative values.
- List<Object> objList = (List<Object>) list;
+ List<Object> objList = (List<Object>) list;
while (--lcm >= 0)
{
Object o = objList.get(lcm);
@@ -1381,10 +1381,10 @@ public class Collections
if (defaultRandom == null)
{
synchronized (Collections.class)
- {
- if (defaultRandom == null)
- defaultRandom = new Random();
- }
+ {
+ if (defaultRandom == null)
+ defaultRandom = new Random();
+ }
}
shuffle(l, defaultRandom);
}
@@ -1432,12 +1432,12 @@ public class Collections
for (int pos = lsize - 1; pos > 0; --pos)
{
- // Obtain a random position to swap with. pos + 1 is used so that the
- // range of the random number includes the current position.
- int swap = r.nextInt(pos + 1);
+ // Obtain a random position to swap with. pos + 1 is used so that the
+ // range of the random number includes the current position.
+ int swap = r.nextInt(pos + 1);
- // Swap the desired element.
- Object o;
+ // Swap the desired element.
+ Object o;
if (sequential)
{
o = a[swap];
@@ -1446,7 +1446,7 @@ public class Collections
else
o = list.set(swap, i.previous());
- i.set(o);
+ i.set(o);
}
}
@@ -1455,11 +1455,11 @@ public class Collections
* collection. The frequency represents the number of occurrences of
* elements within the collection which return <code>true</code> when
* compared with the object using the <code>equals</code> method.
- *
+ *
* @param c the collection to scan for occurrences of the object.
* @param o the object to locate occurrances of within the collection.
* @throws NullPointerException if the collection is <code>null</code>.
- * @since 1.5
+ * @since 1.5
*/
public static int frequency (Collection<?> c, Object o)
{
@@ -1467,9 +1467,9 @@ public class Collections
final Iterator<?> it = c.iterator();
while (it.hasNext())
{
- Object v = it.next();
- if (AbstractCollection.equals(o, v))
- ++result;
+ Object v = it.next();
+ if (AbstractCollection.equals(o, v))
+ ++result;
}
return result;
}
@@ -1505,9 +1505,9 @@ public class Collections
for (T element : a)
{
- boolean result = c.add(element);
- if (result)
- overall = true;
+ boolean result = c.add(element);
+ if (result)
+ overall = true;
}
return overall;
}
@@ -1531,11 +1531,11 @@ public class Collections
final Iterator<Object> it = oc1.iterator();
while (it.hasNext())
if (c2.contains(it.next()))
- return false;
+ return false;
return true;
}
-
+
/**
* Obtain an immutable Set consisting of a single element. The return value
* of this method is Serializable.
@@ -1595,30 +1595,30 @@ public class Collections
{
return new Iterator<T>()
{
- /**
- * Flag to indicate whether or not the element has
- * been retrieved.
- */
+ /**
+ * Flag to indicate whether or not the element has
+ * been retrieved.
+ */
private boolean hasNext = true;
- /**
- * Returns <code>true</code> if elements still remain to be
- * iterated through.
- *
- * @return <code>true</code> if the element has not yet been returned.
- */
+ /**
+ * Returns <code>true</code> if elements still remain to be
+ * iterated through.
+ *
+ * @return <code>true</code> if the element has not yet been returned.
+ */
public boolean hasNext()
{
return hasNext;
}
- /**
- * Returns the element.
- *
- * @return The element used by this singleton.
- * @throws NoSuchElementException if the object
- * has already been retrieved.
- */
+ /**
+ * Returns the element.
+ *
+ * @return The element used by this singleton.
+ * @throws NoSuchElementException if the object
+ * has already been retrieved.
+ */
public T next()
{
if (hasNext)
@@ -1630,15 +1630,15 @@ public class Collections
throw new NoSuchElementException();
}
- /**
- * Removes the element from the singleton.
- * As this set is immutable, this will always
- * throw an exception.
- *
- * @throws UnsupportedOperationException as the
- * singleton set doesn't support
- * <code>remove()</code>.
- */
+ /**
+ * Removes the element from the singleton.
+ * As this set is immutable, this will always
+ * throw an exception.
+ *
+ * @throws UnsupportedOperationException as the
+ * singleton set doesn't support
+ * <code>remove()</code>.
+ */
public void remove()
{
throw new UnsupportedOperationException();
@@ -1678,7 +1678,7 @@ public class Collections
/**
* The hash is just that of the element.
- *
+ *
* @return The hashcode of the element.
*/
public int hashCode()
@@ -1842,7 +1842,7 @@ public class Collections
/**
* Sublists are limited in scope.
- *
+ *
* @param from The starting bound for the sublist.
* @param to The ending bound for the sublist.
* @return Either an empty list if both bounds are
@@ -1876,7 +1876,7 @@ public class Collections
* Obvious string.
*
* @return The string surrounded by enclosing
- * square brackets.
+ * square brackets.
*/
public String toString()
{
@@ -1949,25 +1949,25 @@ public class Collections
public Set<Map.Entry<K, V>> entrySet()
{
if (entries == null)
- {
- Map.Entry<K,V> entry = new AbstractMap.SimpleEntry<K, V>(k, v)
- {
- /**
- * Sets the value of the map entry to the supplied value.
- * An exception is always thrown, as the map is immutable.
- *
- * @param o The new value.
- * @return The old value.
- * @throws UnsupportedOperationException as setting the value
- * is not supported.
- */
- public V setValue(V o)
- {
- throw new UnsupportedOperationException();
- }
- };
- entries = singleton(entry);
- }
+ {
+ Map.Entry<K,V> entry = new AbstractMap.SimpleEntry<K, V>(k, v)
+ {
+ /**
+ * Sets the value of the map entry to the supplied value.
+ * An exception is always thrown, as the map is immutable.
+ *
+ * @param o The new value.
+ * @return The old value.
+ * @throws UnsupportedOperationException as setting the value
+ * is not supported.
+ */
+ public V setValue(V o)
+ {
+ throw new UnsupportedOperationException();
+ }
+ };
+ entries = singleton(entry);
+ }
return entries;
}
@@ -2100,10 +2100,10 @@ public class Collections
* <code>null</code> for natural ordering
* @throws ClassCastException if c will not compare some pair of items
* @throws UnsupportedOperationException if the List is not modifiable
- * @throws NullPointerException if the List is <code>null</code> or
- * <code>null</code> is compared by natural ordering (only possible
+ * @throws NullPointerException if the List is <code>null</code> or
+ * <code>null</code> is compared by natural ordering (only possible
* when c is <code>null</code>)
- *
+ *
* @see Arrays#sort(Object[], Comparator)
*/
public static <T> void sort(List<T> l, Comparator<? super T> c)
@@ -2113,8 +2113,8 @@ public class Collections
ListIterator<T> i = l.listIterator();
for (int pos = 0, alen = a.length; pos < alen; pos++)
{
- i.next();
- i.set(a[pos]);
+ i.next();
+ i.set(a[pos]);
}
}
@@ -2136,7 +2136,7 @@ public class Collections
list.set(i, list.set(j, list.get(i)));
}
-
+
/**
* Returns a synchronized (thread-safe) collection wrapper backed by the
* given collection. Notice that element access through the iterators
@@ -2536,7 +2536,7 @@ public class Collections
/**
* Retrieves the next object in the underlying collection.
* A lock is obtained on the mutex before the collection is accessed.
- *
+ *
* @return The next object in the collection.
* @throws NoSuchElementException if there are no more elements
*/
@@ -2695,7 +2695,7 @@ public class Collections
/**
* Add the contents of a collection to the underlying list at the given
- * index (optional operation). If the list imposes restraints on what
+ * index (optional operation). If the list imposes restraints on what
* can be inserted, such as no null elements, this should be documented.
* A lock is obtained on the mutex before any of the elements are added.
*
@@ -2854,7 +2854,7 @@ public class Collections
synchronized (mutex)
{
return new SynchronizedListIterator<T>(mutex,
- list.listIterator(index));
+ list.listIterator(index));
}
}
@@ -2926,7 +2926,7 @@ public class Collections
synchronized (mutex)
{
return new SynchronizedList<T>(mutex,
- list.subList(fromIndex, toIndex));
+ list.subList(fromIndex, toIndex));
}
}
} // class SynchronizedList
@@ -2991,8 +2991,8 @@ public class Collections
synchronized (mutex)
{
return new SynchronizedRandomAccessList<T>(mutex,
- list.subList(fromIndex,
- toIndex));
+ list.subList(fromIndex,
+ toIndex));
}
}
} // class SynchronizedRandomAccessList
@@ -3308,14 +3308,14 @@ public class Collections
e = o;
}
- /**
- * Returns <code>true</code> if the object, o, implements <code>Map.Entry</code>
- * with the same key and value as the underlying entry. A lock is
- * obtained on the mutex before the comparison takes place.
- *
- * @param o The object to compare with this entry.
- * @return <code>true</code> if o is equivalent to the underlying map entry.
- */
+ /**
+ * Returns <code>true</code> if the object, o, implements <code>Map.Entry</code>
+ * with the same key and value as the underlying entry. A lock is
+ * obtained on the mutex before the comparison takes place.
+ *
+ * @param o The object to compare with this entry.
+ * @return <code>true</code> if o is equivalent to the underlying map entry.
+ */
public boolean equals(Object o)
{
synchronized (mutex)
@@ -3324,12 +3324,12 @@ public class Collections
}
}
- /**
- * Returns the key used in the underlying map entry. A lock is obtained
- * on the mutex before the key is retrieved.
- *
- * @return The key of the underlying map entry.
- */
+ /**
+ * Returns the key used in the underlying map entry. A lock is obtained
+ * on the mutex before the key is retrieved.
+ *
+ * @return The key of the underlying map entry.
+ */
public K getKey()
{
synchronized (mutex)
@@ -3338,12 +3338,12 @@ public class Collections
}
}
- /**
- * Returns the value used in the underlying map entry. A lock is obtained
- * on the mutex before the value is retrieved.
- *
- * @return The value of the underlying map entry.
- */
+ /**
+ * Returns the value used in the underlying map entry. A lock is obtained
+ * on the mutex before the value is retrieved.
+ *
+ * @return The value of the underlying map entry.
+ */
public V getValue()
{
synchronized (mutex)
@@ -3352,15 +3352,15 @@ public class Collections
}
}
- /**
- * Computes the hash code for the underlying map entry.
- * This computation is described in the documentation for the
- * <code>Map</code> interface. A lock is obtained on the mutex
- * before the underlying map is accessed.
- *
- * @return The hash code of the underlying map entry.
- * @see Map#hashCode()
- */
+ /**
+ * Computes the hash code for the underlying map entry.
+ * This computation is described in the documentation for the
+ * <code>Map</code> interface. A lock is obtained on the mutex
+ * before the underlying map is accessed.
+ *
+ * @return The hash code of the underlying map entry.
+ * @see Map#hashCode()
+ */
public int hashCode()
{
synchronized (mutex)
@@ -3369,22 +3369,22 @@ public class Collections
}
}
- /**
- * Replaces the value in the underlying map entry with the specified
- * object (optional operation). A lock is obtained on the mutex
- * before the map is altered. The map entry, in turn, will alter
- * the underlying map object. The operation is undefined if the
- * <code>remove()</code> method of the iterator has been called
- * beforehand.
- *
- * @param value the new value to store
- * @return the old value
- * @throws UnsupportedOperationException if the operation is not supported.
- * @throws ClassCastException if the value is of the wrong type.
- * @throws IllegalArgumentException if something about the value
- * prevents it from existing in this map.
- * @throws NullPointerException if the map forbids null values.
- */
+ /**
+ * Replaces the value in the underlying map entry with the specified
+ * object (optional operation). A lock is obtained on the mutex
+ * before the map is altered. The map entry, in turn, will alter
+ * the underlying map object. The operation is undefined if the
+ * <code>remove()</code> method of the iterator has been called
+ * beforehand.
+ *
+ * @param value the new value to store
+ * @return the old value
+ * @throws UnsupportedOperationException if the operation is not supported.
+ * @throws ClassCastException if the value is of the wrong type.
+ * @throws IllegalArgumentException if something about the value
+ * prevents it from existing in this map.
+ * @throws NullPointerException if the map forbids null values.
+ */
public V setValue(V value)
{
synchronized (mutex)
@@ -3393,12 +3393,12 @@ public class Collections
}
}
- /**
- * Returns a textual representation of the underlying map entry.
- * A lock is obtained on the mutex before the entry is accessed.
- *
- * @return The contents of the map entry in <code>String</code> form.
- */
+ /**
+ * Returns a textual representation of the underlying map entry.
+ * A lock is obtained on the mutex before the entry is accessed.
+ *
+ * @return The contents of the map entry in <code>String</code> form.
+ */
public String toString()
{
synchronized (mutex)
@@ -3414,29 +3414,29 @@ public class Collections
{
entries = new SynchronizedSet<Map.Entry<K, V>>(mutex, m.entrySet())
{
- /**
- * Returns an iterator over the set. The iterator has no specific order,
- * unless further specified. A lock is obtained on the set's mutex
- * before the iterator is created. The created iterator is also
- * thread-safe.
- *
- * @return A synchronized set iterator.
- */
+ /**
+ * Returns an iterator over the set. The iterator has no specific order,
+ * unless further specified. A lock is obtained on the set's mutex
+ * before the iterator is created. The created iterator is also
+ * thread-safe.
+ *
+ * @return A synchronized set iterator.
+ */
public Iterator<Map.Entry<K, V>> iterator()
{
synchronized (super.mutex)
{
return new SynchronizedIterator<Map.Entry<K, V>>(super.mutex,
- c.iterator())
+ c.iterator())
{
- /**
- * Retrieves the next map entry from the iterator.
- * A lock is obtained on the iterator's mutex before
- * the entry is created. The new map entry is enclosed in
- * a thread-safe wrapper.
- *
- * @return A synchronized map entry.
- */
+ /**
+ * Retrieves the next map entry from the iterator.
+ * A lock is obtained on the iterator's mutex before
+ * the entry is created. The new map entry is enclosed in
+ * a thread-safe wrapper.
+ *
+ * @return A synchronized map entry.
+ */
public Map.Entry<K, V> next()
{
synchronized (super.mutex)
@@ -3658,7 +3658,7 @@ public class Collections
* <code>add</code> or <code>addAll</code>, is not supported via this
* collection. A lock is obtained on the mutex before the collection
* is created.
- *
+ *
* @return the collection of all values in the underlying map.
*/
public Collection<V> values()
@@ -3946,7 +3946,7 @@ public class Collections
synchronized (mutex)
{
return new SynchronizedSortedMap<K, V>(mutex,
- sm.subMap(fromKey, toKey));
+ sm.subMap(fromKey, toKey));
}
}
@@ -4144,8 +4144,8 @@ public class Collections
synchronized (mutex)
{
return new SynchronizedSortedSet<T>(mutex,
- ss.subSet(fromElement,
- toElement));
+ ss.subSet(fromElement,
+ toElement));
}
}
@@ -4174,7 +4174,7 @@ public class Collections
}
} // class SynchronizedSortedSet
-
+
/**
* Returns an unmodifiable view of the given collection. This allows
* "read-only" access, although changes in the backing collection show up
@@ -4497,7 +4497,7 @@ public class Collections
* via sublists, will fail with {@link UnsupportedOperationException}.
* Although this view prevents changes to the structure of the list and
* its elements, the values referenced by the objects in the list can
- * still be modified.
+ * still be modified.
* <p>
*
* The returned List implements Serializable, but can only be serialized if
@@ -4868,7 +4868,7 @@ public class Collections
* iterators will fail with {@link UnsupportedOperationException}.
* Although this view prevents changes to the structure of the map and its
* entries, the values referenced by the objects in the map can still be
- * modified.
+ * modified.
* <p>
*
* The returned Map implements Serializable, but can only be serialized if
@@ -4879,7 +4879,7 @@ public class Collections
* @see Serializable
*/
public static <K, V> Map<K, V> unmodifiableMap(Map<? extends K,
- ? extends V> m)
+ ? extends V> m)
{
return new UnmodifiableMap<K, V>(m);
}
@@ -5019,7 +5019,7 @@ public class Collections
/**
* Returns <code>true</code> if the object, o, is also a map entry
* with an identical key and value.
- *
+ *
* @param o the object to compare.
* @return <code>true</code> if o is an equivalent map entry.
*/
@@ -5030,7 +5030,7 @@ public class Collections
/**
* Returns the key of this map entry.
- *
+ *
* @return the key.
*/
public K getKey()
@@ -5040,7 +5040,7 @@ public class Collections
/**
* Returns the value of this map entry.
- *
+ *
* @return the value.
*/
public V getValue()
@@ -5051,7 +5051,7 @@ public class Collections
/**
* Computes the hash code of this map entry. The computation is
* described in the <code>Map</code> interface documentation.
- *
+ *
* @return the hash code of this entry.
* @see Map#hashCode()
*/
@@ -5063,7 +5063,7 @@ public class Collections
/**
* Blocks the alteration of the value of this map entry. This method
* never returns, throwing an exception instead.
- *
+ *
* @param value The new value.
* @throws UnsupportedOperationException as an unmodifiable map entry
* does not support the <code>setValue()</code> operation.
@@ -5075,7 +5075,7 @@ public class Collections
/**
* Returns a textual representation of the map entry.
- *
+ *
* @return The map entry as a <code>String</code>.
*/
public String toString()
@@ -5102,20 +5102,20 @@ public class Collections
public Iterator<Map.Entry<K,V>> iterator()
{
return new UnmodifiableIterator<Map.Entry<K,V>>(c.iterator())
- {
- /**
- * Obtains the next element from the underlying set of
- * map entries.
- *
- * @return the next element in the collection.
- * @throws NoSuchElementException if there are no more elements.
- */
+ {
+ /**
+ * Obtains the next element from the underlying set of
+ * map entries.
+ *
+ * @return the next element in the collection.
+ * @throws NoSuchElementException if there are no more elements.
+ */
public Map.Entry<K,V> next()
{
final Map.Entry<K,V> e = super.next();
- return new UnmodifiableMapEntry<K,V>(e);
- }
- };
+ return new UnmodifiableMapEntry<K,V>(e);
+ }
+ };
}
// The array returned is an array of UnmodifiableMapEntry instead of
@@ -5124,14 +5124,14 @@ public class Collections
{
Object[] mapEntryResult = super.toArray();
UnmodifiableMapEntry<K,V> result[] = null;
-
+
if (mapEntryResult != null)
{
result = (UnmodifiableMapEntry<K,V>[])
- new UnmodifiableMapEntry[mapEntryResult.length];
+ new UnmodifiableMapEntry[mapEntryResult.length];
for (int i = 0; i < mapEntryResult.length; ++i)
- result[i] = new UnmodifiableMapEntry<K,V>((Map.Entry<K,V>)mapEntryResult[i]);
- }
+ result[i] = new UnmodifiableMapEntry<K,V>((Map.Entry<K,V>)mapEntryResult[i]);
+ }
return result;
}
@@ -5140,14 +5140,14 @@ public class Collections
public <S> S[] toArray(S[] array)
{
S[] result = super.toArray(array);
-
+
if (result != null)
- for (int i = 0; i < result.length; i++)
- array[i] =
- (S) new UnmodifiableMapEntry<K,V>((Map.Entry<K,V>) result[i]);
+ for (int i = 0; i < result.length; i++)
+ array[i] =
+ (S) new UnmodifiableMapEntry<K,V>((Map.Entry<K,V>) result[i]);
return array;
}
-
+
} // class UnmodifiableEntrySet
@@ -5311,7 +5311,7 @@ public class Collections
* will fail with {@link UnsupportedOperationException}.
* Although this view prevents changes to the structure of the set and its
* entries, the values referenced by the objects in the set can still be
- * modified.
+ * modified.
* <p>
*
* The returned Set implements Serializable, but can only be serialized if
@@ -5366,7 +5366,7 @@ public class Collections
* hash codes of all elements within the set.
*
* @return the hash code of the set.
- */
+ */
public int hashCode()
{
return c.hashCode();
@@ -5380,7 +5380,7 @@ public class Collections
* views, or iterators, will fail with {@link UnsupportedOperationException}.
* Although this view prevents changes to the structure of the map and its
* entries, the values referenced by the objects in the map can still be
- * modified.
+ * modified.
* <p>
*
* The returned SortedMap implements Serializable, but can only be
@@ -5391,7 +5391,7 @@ public class Collections
* @see Serializable
*/
public static <K, V> SortedMap<K, V> unmodifiableSortedMap(SortedMap<K,
- ? extends V> m)
+ ? extends V> m)
{
return new UnmodifiableSortedMap<K, V>(m);
}
@@ -5555,7 +5555,7 @@ public class Collections
* iterators, will fail with {@link UnsupportedOperationException}.
* Although this view prevents changes to the structure of the set and its
* entries, the values referenced by the objects in the set can still be
- * modified.
+ * modified.
* <p>
*
* The returns SortedSet implements Serializable, but can only be
@@ -5724,7 +5724,7 @@ public class Collections
} // class UnmodifiableSortedSet
/**
- * <p>
+ * <p>
* Returns a dynamically typesafe view of the given collection,
* where any modification is first checked to ensure that the type
* of the new data is appropriate. Although the addition of
@@ -5740,7 +5740,7 @@ public class Collections
* <code>ClassCastException</code> caused by erroneous casting, or
* for protecting collections from corruption by external libraries.
* </p>
- * <p>
+ * <p>
* Since the collection might be a List or a Set, and those
* have incompatible equals and hashCode requirements, this relies
* on Object's implementation rather than passing those calls on to
@@ -5748,7 +5748,7 @@ public class Collections
* Serializable, but can only be serialized if the collection it
* wraps is likewise Serializable.
* </p>
- *
+ *
* @param c the collection to wrap in a dynamically typesafe wrapper
* @param type the type of elements the collection should hold.
* @return a dynamically typesafe view of the collection.
@@ -5756,7 +5756,7 @@ public class Collections
* @since 1.5
*/
public static <E> Collection<E> checkedCollection(Collection<E> c,
- Class<E> type)
+ Class<E> type)
{
return new CheckedCollection<E>(c, type);
}
@@ -5775,7 +5775,7 @@ public class Collections
* Compatible with JDK 1.5.
*/
private static final long serialVersionUID = 1578914078182001775L;
-
+
/**
* The wrapped collection. Package visible for use by subclasses.
* @serial the real collection
@@ -5814,9 +5814,9 @@ public class Collections
public boolean add(E o)
{
if (type.isInstance(o))
- return c.add(o);
+ return c.add(o);
else
- throw new ClassCastException("The element is of the incorrect type.");
+ throw new ClassCastException("The element is of the incorrect type.");
}
/**
@@ -5834,11 +5834,11 @@ public class Collections
Collection<E> typedColl = (Collection<E>) c;
final Iterator<E> it = typedColl.iterator();
while (it.hasNext())
- {
- final E element = it.next();
- if (!type.isInstance(element))
- throw new ClassCastException("A member of the collection is not of the correct type.");
- }
+ {
+ final E element = it.next();
+ if (!type.isInstance(element))
+ throw new ClassCastException("A member of the collection is not of the correct type.");
+ }
return c.addAll(typedColl);
}
@@ -6075,7 +6075,7 @@ public class Collections
} // class CheckedIterator
/**
- * <p>
+ * <p>
* Returns a dynamically typesafe view of the given list,
* where any modification is first checked to ensure that the type
* of the new data is appropriate. Although the addition of
@@ -6118,7 +6118,7 @@ public class Collections
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.5
*/
- private static class CheckedList<E>
+ private static class CheckedList<E>
extends CheckedCollection<E>
implements List<E>
{
@@ -6158,9 +6158,9 @@ public class Collections
public void add(int index, E o)
{
if (type.isInstance(o))
- list.add(index, o);
+ list.add(index, o);
else
- throw new ClassCastException("The object is of the wrong type.");
+ throw new ClassCastException("The object is of the wrong type.");
}
/**
@@ -6178,10 +6178,10 @@ public class Collections
Collection<E> typedColl = (Collection<E>) coll;
final Iterator<E> it = typedColl.iterator();
while (it.hasNext())
- {
- if (!type.isInstance(it.next()))
- throw new ClassCastException("A member of the collection is not of the correct type.");
- }
+ {
+ if (!type.isInstance(it.next()))
+ throw new ClassCastException("A member of the collection is not of the correct type.");
+ }
return list.addAll(index, coll);
}
@@ -6399,9 +6399,9 @@ public class Collections
public void add(E o)
{
if (type.isInstance(o))
- li.add(o);
+ li.add(o);
else
- throw new ClassCastException("The object is of the wrong type.");
+ throw new ClassCastException("The object is of the wrong type.");
}
/**
@@ -6466,14 +6466,14 @@ public class Collections
public void set(E o)
{
if (type.isInstance(o))
- li.set(o);
+ li.set(o);
else
- throw new ClassCastException("The object is of the wrong type.");
+ throw new ClassCastException("The object is of the wrong type.");
}
} // class CheckedListIterator
/**
- * <p>
+ * <p>
* Returns a dynamically typesafe view of the given map,
* where any modification is first checked to ensure that the type
* of the new data is appropriate. Although the addition of
@@ -6501,7 +6501,7 @@ public class Collections
* @see Serializable
*/
public static <K, V> Map<K, V> checkedMap(Map<K, V> m, Class<K> keyType,
- Class<V> valueType)
+ Class<V> valueType)
{
return new CheckedMap<K, V>(m, keyType, valueType);
}
@@ -6513,7 +6513,7 @@ public class Collections
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.5
*/
- private static class CheckedMap<K, V>
+ private static class CheckedMap<K, V>
implements Map<K, V>, Serializable
{
/**
@@ -6621,7 +6621,7 @@ public class Collections
* <p>
* The set is backed by the map, so that changes in one show up in the
* other. Modifications made while an iterator is in progress cause
- * undefined behavior.
+ * undefined behavior.
* </p>
*
* @return the checked set view of all mapping entries.
@@ -6630,14 +6630,14 @@ public class Collections
public Set<Map.Entry<K, V>> entrySet()
{
if (entries == null)
- {
- Class<Map.Entry<K,V>> klass =
- (Class<Map.Entry<K,V>>) (Class) Map.Entry.class;
- entries = new CheckedEntrySet<Map.Entry<K,V>,K,V>(m.entrySet(),
- klass,
- keyType,
- valueType);
- }
+ {
+ Class<Map.Entry<K,V>> klass =
+ (Class<Map.Entry<K,V>>) (Class) Map.Entry.class;
+ entries = new CheckedEntrySet<Map.Entry<K,V>,K,V>(m.entrySet(),
+ klass,
+ keyType,
+ valueType);
+ }
return entries;
}
@@ -6656,13 +6656,13 @@ public class Collections
* @serial the key type.
*/
private final Class<SK> keyType;
-
+
/**
* The type of the map's values.
* @serial the value type.
*/
private final Class<SV> valueType;
-
+
/**
* Wrap a given set of map entries.
*
@@ -6672,104 +6672,104 @@ public class Collections
* @param valueType the type of the map's values.
*/
CheckedEntrySet(Set<E> s, Class<E> type, Class<SK> keyType,
- Class<SV> valueType)
+ Class<SV> valueType)
{
super(s, type);
- this.keyType = keyType;
- this.valueType = valueType;
+ this.keyType = keyType;
+ this.valueType = valueType;
}
// The iterator must return checked map entries.
public Iterator<E> iterator()
{
return new CheckedIterator<E>(c.iterator(), type)
- {
- /**
- * Obtains the next element from the underlying set of
- * map entries.
- *
- * @return the next element in the collection.
- * @throws NoSuchElementException if there are no more elements.
- */
+ {
+ /**
+ * Obtains the next element from the underlying set of
+ * map entries.
+ *
+ * @return the next element in the collection.
+ * @throws NoSuchElementException if there are no more elements.
+ */
public E next()
{
final Map.Entry e = (Map.Entry) super.next();
return (E) new Map.Entry()
- {
- /**
- * Returns <code>true</code> if the object, o, is also a map
- * entry with an identical key and value.
- *
- * @param o the object to compare.
- * @return <code>true</code> if o is an equivalent map entry.
- */
+ {
+ /**
+ * Returns <code>true</code> if the object, o, is also a map
+ * entry with an identical key and value.
+ *
+ * @param o the object to compare.
+ * @return <code>true</code> if o is an equivalent map entry.
+ */
public boolean equals(Object o)
{
return e.equals(o);
}
-
- /**
- * Returns the key of this map entry.
- *
- * @return the key.
- */
+
+ /**
+ * Returns the key of this map entry.
+ *
+ * @return the key.
+ */
public Object getKey()
{
return e.getKey();
}
- /**
- * Returns the value of this map entry.
- *
- * @return the value.
- */
+ /**
+ * Returns the value of this map entry.
+ *
+ * @return the value.
+ */
public Object getValue()
{
return e.getValue();
}
- /**
- * Computes the hash code of this map entry.
- * The computation is described in the <code>Map</code>
- * interface documentation.
- *
- * @return the hash code of this entry.
- * @see Map#hashCode()
- */
- public int hashCode()
+ /**
+ * Computes the hash code of this map entry.
+ * The computation is described in the <code>Map</code>
+ * interface documentation.
+ *
+ * @return the hash code of this entry.
+ * @see Map#hashCode()
+ */
+ public int hashCode()
{
return e.hashCode();
}
- /**
- * Sets the value of this map entry, provided it is of the
- * right type.
- *
- * @param value The new value.
- * @throws ClassCastException if the type of the value is not
- * a valid type for the underlying
- * map.
- */
+ /**
+ * Sets the value of this map entry, provided it is of the
+ * right type.
+ *
+ * @param value The new value.
+ * @throws ClassCastException if the type of the value is not
+ * a valid type for the underlying
+ * map.
+ */
public Object setValue(Object value)
{
- if (valueType.isInstance(value))
- return e.setValue(value);
- else
- throw new ClassCastException("The value is of the wrong type.");
+ if (valueType.isInstance(value))
+ return e.setValue(value);
+ else
+ throw new ClassCastException("The value is of the wrong type.");
}
- /**
- * Returns a textual representation of the map entry.
- *
- * @return The map entry as a <code>String</code>.
- */
+ /**
+ * Returns a textual representation of the map entry.
+ *
+ * @return The map entry as a <code>String</code>.
+ */
public String toString()
{
return e.toString();
}
- };
+ };
}
- };
+ };
}
} // class CheckedEntrySet
@@ -6811,17 +6811,17 @@ public class Collections
* @param value The new value.
* @return the previous value of the key, or null if there was no mapping.
* @throws ClassCastException if the type of the key or the value is
- * not a valid type for the underlying map.
+ * not a valid type for the underlying map.
*/
public V put(K key, V value)
{
if (keyType.isInstance(key))
- {
- if (valueType.isInstance(value))
- return m.put(key,value);
- else
- throw new ClassCastException("The value is of the wrong type.");
- }
+ {
+ if (valueType.isInstance(value))
+ return m.put(key,value);
+ else
+ throw new ClassCastException("The value is of the wrong type.");
+ }
throw new ClassCastException("The key is of the wrong type.");
}
@@ -6875,20 +6875,20 @@ public class Collections
* @param map the map, the entries of which should be added
* to the underlying map.
* @throws ClassCastException if the type of a key or value is
- * not a valid type for the underlying map.
+ * not a valid type for the underlying map.
*/
public void putAll(Map<? extends K, ? extends V> map)
{
Map<K,V> typedMap = (Map<K,V>) map;
final Iterator<Map.Entry<K,V>> it = typedMap.entrySet().iterator();
while (it.hasNext())
- {
- final Map.Entry<K,V> entry = it.next();
- if (!keyType.isInstance(entry.getKey()))
- throw new ClassCastException("A key is of the wrong type.");
- if (!valueType.isInstance(entry.getValue()))
- throw new ClassCastException("A value is of the wrong type.");
- }
+ {
+ final Map.Entry<K,V> entry = it.next();
+ if (!keyType.isInstance(entry.getKey()))
+ throw new ClassCastException("A key is of the wrong type.");
+ if (!valueType.isInstance(entry.getValue()))
+ throw new ClassCastException("A value is of the wrong type.");
+ }
m.putAll(typedMap);
}
@@ -6941,7 +6941,7 @@ public class Collections
* behavior. These modifications are again limited to the values of
* the keys.
* </p>
- *
+ *
* @return the collection view of all values.
*/
public Collection<V> values()
@@ -6953,7 +6953,7 @@ public class Collections
} // class CheckedMap
/**
- * <p>
+ * <p>
* Returns a dynamically typesafe view of the given set,
* where any modification is first checked to ensure that the type
* of the new data is appropriate. Although the addition of
@@ -6991,7 +6991,7 @@ public class Collections
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.5
*/
- private static class CheckedSet<E>
+ private static class CheckedSet<E>
extends CheckedCollection<E>
implements Set<E>
{
@@ -7027,7 +7027,7 @@ public class Collections
* hash codes of all elements within the set.
*
* @return the hash code of the set.
- */
+ */
public int hashCode()
{
return c.hashCode();
@@ -7035,7 +7035,7 @@ public class Collections
} // class CheckedSet
/**
- * <p>
+ * <p>
* Returns a dynamically typesafe view of the given sorted map,
* where any modification is first checked to ensure that the type
* of the new data is appropriate. Although the addition of
@@ -7063,8 +7063,8 @@ public class Collections
* @see Serializable
*/
public static <K, V> SortedMap<K, V> checkedSortedMap(SortedMap<K, V> m,
- Class<K> keyType,
- Class<V> valueType)
+ Class<K> keyType,
+ Class<V> valueType)
{
return new CheckedSortedMap<K, V>(m, keyType, valueType);
}
@@ -7199,8 +7199,8 @@ public class Collections
*/
public SortedMap<K, V> subMap(K fromKey, K toKey)
{
- return new CheckedSortedMap<K, V>(sm.subMap(fromKey, toKey), keyType,
- valueType);
+ return new CheckedSortedMap<K, V>(sm.subMap(fromKey, toKey), keyType,
+ valueType);
}
/**
@@ -7231,7 +7231,7 @@ public class Collections
public SortedMap<K, V> tailMap(K fromKey)
{
return new CheckedSortedMap<K, V>(sm.tailMap(fromKey), keyType,
- valueType);
+ valueType);
}
} // class CheckedSortedMap
@@ -7263,7 +7263,7 @@ public class Collections
* @see Serializable
*/
public static <E> SortedSet<E> checkedSortedSet(SortedSet<E> s,
- Class<E> type)
+ Class<E> type)
{
return new CheckedSortedSet<E>(s, type);
}
@@ -7275,7 +7275,7 @@ public class Collections
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.5
*/
- private static class CheckedSortedSet<E>
+ private static class CheckedSortedSet<E>
extends CheckedSet<E>
implements SortedSet<E>
{
@@ -7287,7 +7287,7 @@ public class Collections
/**
* The wrapped set; stored both here and in the superclass to avoid
* excessive casting.
- *
+ *
* @serial the wrapped set
*/
private SortedSet<E> ss;
@@ -7388,7 +7388,7 @@ public class Collections
* new Integer(highlimit.intValue() + 1))</code> to reverse
* the inclusiveness of both endpoints.
* </p>
- *
+ *
* @param fromElement the inclusive lower range of the subset.
* @param toElement the exclusive upper range of the subset.
* @return the subset.
@@ -7471,7 +7471,7 @@ public class Collections
}
/**
- * The implementation of {@link #asLIFOQueue(Deque)}.
+ * The implementation of {@link #asLIFOQueue(Deque)}.
*
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.6
@@ -7479,7 +7479,7 @@ public class Collections
private static class LIFOQueue<T>
extends AbstractQueue<T>
{
-
+
/**
* The backing deque.
*/
@@ -7500,36 +7500,36 @@ public class Collections
{
return deque.offerFirst(e);
}
-
+
public boolean addAll(Collection<? extends T> c)
{
boolean result = false;
final Iterator<? extends T> it = c.iterator();
while (it.hasNext())
- result |= deque.offerFirst(it.next());
+ result |= deque.offerFirst(it.next());
return result;
}
-
+
public void clear()
{
deque.clear();
}
-
+
public boolean isEmpty()
{
return deque.isEmpty();
}
-
+
public Iterator<T> iterator()
{
return deque.iterator();
}
-
+
public boolean offer(T e)
{
return deque.offerFirst(e);
}
-
+
public T peek()
{
return deque.peek();
@@ -7539,7 +7539,7 @@ public class Collections
{
return deque.poll();
}
-
+
public int size()
{
return deque.size();
@@ -7547,7 +7547,7 @@ public class Collections
} // class LIFOQueue
/**
- * The implementation of {@link #newSetFromMap(Map)}.
+ * The implementation of {@link #newSetFromMap(Map)}.
*
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
* @since 1.6
@@ -7555,7 +7555,7 @@ public class Collections
private static class MapSet<E>
extends AbstractSet<E>
{
-
+
/**
* The backing map.
*/
@@ -7571,7 +7571,7 @@ public class Collections
public MapSet(Map<E,Boolean> map)
{
if (!map.isEmpty())
- throw new IllegalArgumentException("The map must be empty.");
+ throw new IllegalArgumentException("The map must be empty.");
this.map = map;
}
@@ -7579,45 +7579,45 @@ public class Collections
{
return map.put(e, true) == null;
}
-
+
public boolean addAll(Collection<? extends E> c)
{
boolean result = false;
final Iterator<? extends E> it = c.iterator();
while (it.hasNext())
- result |= (map.put(it.next(), true) == null);
+ result |= (map.put(it.next(), true) == null);
return result;
}
-
+
public void clear()
{
map.clear();
}
-
+
public boolean contains(Object o)
{
return map.containsKey(o);
}
-
+
public boolean isEmpty()
{
return map.isEmpty();
}
-
+
public Iterator<E> iterator()
{
return map.keySet().iterator();
}
-
+
public boolean remove(Object o)
{
return map.remove(o) != null;
}
-
+
public int size()
{
return map.size();
}
} // class MapSet
-
+
} // class Collections