harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From telli...@apache.org
Subject svn commit: r546277 - /harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Deque.java
Date Mon, 11 Jun 2007 20:54:21 GMT
Author: tellison
Date: Mon Jun 11 13:54:19 2007
New Revision: 546277

URL: http://svn.apache.org/viewvc?view=rev&rev=546277
Log:
Apply patch HARMONY-4121 ([classlib][luni][java6]new constructor in java.io.PipedReader)

Added:
    harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Deque.java
  (with props)

Added: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Deque.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Deque.java?view=auto&rev=546277
==============================================================================
--- harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Deque.java
(added)
+++ harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Deque.java
Mon Jun 11 13:54:19 2007
@@ -0,0 +1,255 @@
+/*
+ *  Licensed to the Apache Software Foundation (ASF) under one or more
+ *  contributor license agreements.  See the NOTICE file distributed with
+ *  this work for additional information regarding copyright ownership.
+ *  The ASF licenses this file to You under the Apache License, Version 2.0
+ *  (the "License"); you may not use this file except in compliance with
+ *  the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package java.util;
+
+/**
+ * A kind of collection that can insert or remove element at both ends("double
+ * ended queue"). Mostly a deque has no limit of its size.
+ * 
+ * Extending from Queue, a deque can be used as a Queue which behavior is
+ * first-in-first-out. Furthermore, a deque can also be used as a Stack(legacy
+ * class) which behavior is last-in-first-out.
+ * 
+ * A typical deque does not allow null to be inserted as its element, while some
+ * implementations allow it. But null should not be inserted even in these
+ * implementations, since method poll return null to indicate that there is no
+ * element left in the deque.
+ * 
+ * A deque can also remove interior elements by removeFirstOccurrence and
+ * removeLastOccurrence methods. A deque can not access elements by index.
+ * 
+ * @param <E>
+ *            the type of elements in this collection
+ * @since 1.6
+ */
+public interface Deque<E> extends Queue<E> {
+
+    /**
+     * Inserts an element at the head of this deque if it dose not violate size
+     * limit immediately. It is better to use offerFirst(E) if a deque is
+     * size-limited.
+     * 
+     * @param e
+     *            the element
+     * @throws IllegalStateException
+     *             if it can not add now due to size limit
+     * @throws ClassCastException
+     *             if the class of element can not be added into this deque
+     * @throws NullPointerException
+     *             if the element is null and the deque can not contain null
+     *             element
+     * @throws IllegalArgumentException
+     *             if the element can not be added due to some property.
+     */
+    void addFirst(E e);
+
+    /**
+     * Inserts an element at the tail of this deque if it dose not violate size
+     * limit immediately. It is better to use offerLast(E) if a deque is
+     * size-limited.
+     * 
+     * @param e
+     *            the element
+     * @throws IllegalStateException
+     *             if it can not add now due to size limit
+     * @throws ClassCastException
+     *             if the class of element can not be added into this deque
+     * @throws NullPointerException
+     *             if the element is null and the deque can not contain null
+     *             element
+     * @throws IllegalArgumentException
+     *             if the element can not be added due to some property.
+     */
+    void addLast(E e);
+
+    /**
+     * Inserts an element at the head of this deque unless it would violate size
+     * limit. It is better than the addFirst(E) method in a size-limited deque,
+     * because the latter one may fail to add the element only by throwing an
+     * exception.
+     * 
+     * @param e
+     *            the element
+     * @return true if the operation succeeds or false if it fails.
+     * @throws ClassCastException
+     *             if the class of element can not be added into this deque
+     * @throws NullPointerException
+     *             if the element is null and the deque can not contain null
+     *             element
+     * @throws IllegalArgumentException
+     *             if the element can not be added due to some property.
+     */
+    boolean offerFirst(E e);
+
+    /**
+     * Inserts an element at the tail of this deque unless it would violate size
+     * limit. It is better than the addLast(E) method in a size-limited deque,
+     * because the latter one may fail to add the element only by throwing an
+     * exception.
+     * 
+     * @param e
+     *            the element
+     * @return true if the operation succeeds or false if it fails
+     * @throws ClassCastException
+     *             if the class of element can not be added into this deque
+     * @throws NullPointerException
+     *             if the element is null and the deque can not contain null
+     *             element
+     * @throws IllegalArgumentException
+     *             if the element can not be added due to some property
+     */
+    boolean offerLast(E e);
+
+    /**
+     * Gets and removes the head element of this deque. This method throws an
+     * exception if the deque is empty.
+     * 
+     * @return the head element
+     * @throws NoSuchElementException
+     *             if the deque is empty
+     */
+    E removeFirst();
+
+    /**
+     * Gets and removes the tail element of this deque. This method throws an
+     * exception if the deque is empty.
+     * 
+     * @return the tail element
+     * @throws NoSuchElementException
+     *             if the deque is empty
+     */
+    E removeLast();
+
+    /**
+     * Gets and removes the head element of this deque. This method returns null
+     * if the deque is empty.
+     * 
+     * @return the head element or null if the deque is empty
+     */
+    E pollFirst();
+
+    /**
+     * Gets and removes the tail element of this deque. This method returns null
+     * if the deque is empty.
+     * 
+     * @return the tail element or null if the deque is empty
+     */
+    E pollLast();
+
+    /**
+     * Gets but not removes the head element of this deque. This method throws
+     * an exception if the deque is empty.
+     * 
+     * @return the head element
+     * @throws NoSuchElementException
+     *             if the deque is empty
+     */
+    E getFirst();
+
+    /**
+     * Gets but not removes the tail element of this deque. This method throws
+     * an exception if the deque is empty.
+     * 
+     * @return the tail element
+     * @throws NoSuchElementException
+     *             if the deque is empty
+     */
+    E getLast();
+
+    /**
+     * Gets but not removes the head element of this deque. This method returns
+     * null if the deque is empty.
+     * 
+     * @return the head element or null if the deque is empty
+     */
+    E peekFirst();
+
+    /**
+     * Gets but not removes the tail element of this deque. This method returns
+     * null if the deque is empty.
+     * 
+     * @return the tail element or null if the deque is empty
+     */
+    E peekLast();
+
+    /**
+     * Removes the first equivalent element of the specified object. If the
+     * deque does not contain the element, it is unchanged and returns false.
+     * 
+     * @param o
+     *            the element to be removed
+     * @return true if the operation succeeds or false if the deque does not
+     *         contain the element.
+     * @throws ClassCastException
+     *             if the class of the element is incompatible with the deque
+     * @throws NullPointerException
+     *             if the element is null and the deque can not contain null
+     *             element
+     */
+    boolean removeFirstOccurrence(Object o);
+
+    /**
+     * Removes the last equivalent element of the specified object. If the deque
+     * does not contain the element, it is unchanged and returns false.
+     * 
+     * @param o
+     *            the element to be removed
+     * @return true if the operation succeeds or false if the deque does not
+     *         contain the element.
+     * @throws ClassCastException
+     *             if the class of the element is incompatible with the deque
+     * @throws NullPointerException
+     *             if the element is null and the deque can not contain null
+     *             element
+     */
+    boolean removeLastOccurrence(Object o);
+
+    /**
+     * Pushes the element to the deque(at the head of the deque), just same as
+     * addFirst(E).
+     * 
+     * @param e
+     *            the element
+     * @throws IllegalStateException
+     *             if it can not add now due to size limit
+     * @throws ClassCastException
+     *             if the class of element can not be added into this deque
+     * @throws NullPointerException
+     *             if the element is null and the deque can not contain null
+     *             element
+     * @throws IllegalArgumentException
+     *             if the element can not be added due to some property.
+     */
+    void push(E e);
+
+    /**
+     * Pops the head element of the deque, just same as removeFirst().
+     * 
+     * @return the head element
+     * @throws NoSuchElementException
+     *             if the deque is empty
+     */
+    E pop();
+
+    /**
+     * Returns the iterator in reverse order, from tail to head.
+     * 
+     * @return the iterator in reverse order
+     */
+    Iterator<E> descendingIterator();
+}

Propchange: harmony/enhanced/classlib/branches/java6/modules/luni/src/main/java/java/util/Deque.java
------------------------------------------------------------------------------
    svn:eol-style = native



Mime
View raw message