ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/src/main/java/util/AbstractQueue.java
(Generate patch)

Comparing jsr166/src/main/java/util/AbstractQueue.java (file contents):
Revision 1.7 by tim, Mon Jul 28 16:00:19 2003 UTC vs.
Revision 1.13 by dl, Wed Aug 6 10:27:19 2003 UTC

# Line 7 | Line 7
7   package java.util;
8  
9   /**
10 < * AbstractQueue provides default implementations of add, remove, and
11 < * element based on offer, poll, and peek, respectively but that throw
12 < * exceptions instead of indicating failure via false or null returns.
13 < * The provided implementations all assume that the base implementation
10 > * <tt>AbstractQueue</tt> provides default implementations of
11 > * {@link #add add}, {@link #remove remove}, and {@link #element element}
12 > * based on
13 > * {@link #offer offer}, {@link #poll poll}, and {@link #peek peek},
14 > * respectively but that
15 > * throw exceptions instead of indicating failure via <tt>false</tt> or
16 > * <tt>null</tt> returns.
17 > * <p>The provided implementations all assume that the base implementation
18   * does <em>not</em> allow <tt>null</tt> elements.
19   * @since 1.5
20   * @author Doug Lea
21   */
22 <
23 < public abstract class AbstractQueue<E> extends AbstractCollection<E> implements Queue<E> {
24 <
25 <    public boolean add(E x) {
26 <        if (offer(x))
22 > public abstract class AbstractQueue<E>
23 >    extends AbstractCollection<E>
24 >    implements Queue<E> {
25 >
26 >    // note that optional methods are not optional here or in our subclasses,
27 >    // so we redefine each optional method to document that it is not optional
28 >    // We also inherit, or define, all necessary @throws comments
29 >
30 >    //    /**
31 >    //     * @throws NullPointerException if the specified element is <tt>null</tt>
32 >    //     */
33 >    //    public abstract boolean offer(E o);
34 >
35 >    /**
36 >     * Adds the specified element to this queue.
37 >     * @return <tt>true</tt> (as per the general contract of
38 >     * <tt>Collection.add</tt>).
39 >     *
40 >     * @throws NullPointerException if the specified element is <tt>null</tt>
41 >     */
42 >    public boolean add(E o) {
43 >        if (offer(o))
44              return true;
45          else
46              throw new IllegalStateException("Queue full");
47      }
48  
49 <    public E remove() throws NoSuchElementException {
49 >    /**
50 >     * Adds all of the elements in the specified collection to this queue.
51 >     * The behavior of this operation is undefined if
52 >     * the specified collection is modified while the operation is in
53 >     * progress.  (This implies that the behavior of this call is undefined if
54 >     * the specified collection is this queue, and this queue is nonempty.)
55 >     * <p>
56 >     * This implementation iterates over the specified collection, and adds
57 >     * each object returned by the iterator to this queue, in turn.
58 >     *
59 >     * @param c collection whose elements are to be added to this queue
60 >     * @return <tt>true</tt> if this collection changed as a result of the
61 >     *         call.
62 >     * @throws NullPointerException if <tt>c</tt> or any element in <tt>c</tt>
63 >     * is <tt>null</tt>
64 >     *
65 >     */
66 >    public boolean addAll(Collection<? extends E> c) {
67 >        return super.addAll(c);
68 >    }
69 >
70 >    /** @throws NoSuchElementException {@inheritDoc} */
71 >    public E remove() {
72          E x = poll();
73          if (x != null)
74              return x;
# Line 33 | Line 76 | public abstract class AbstractQueue<E> e
76              throw new NoSuchElementException();
77      }
78  
79 <    public E element() throws NoSuchElementException {
79 >    /** @throws NoSuchElementException {@inheritDoc} */
80 >    public E element() {
81          E x = peek();
82          if (x != null)
83              return x;
# Line 41 | Line 85 | public abstract class AbstractQueue<E> e
85              throw new NoSuchElementException();
86      }
87  
88 +    /**
89 +     * Removes all of the elements from this collection.
90 +     * The collection will be empty after this call returns.
91 +     * <p>This implementation repeatedly invokes {@link #poll poll} until it
92 +     * returns <tt>null</tt>.
93 +     */
94      public void clear() {
95          while (poll() != null)
96              ;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines