You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ta...@apache.org on 2007/07/20 14:53:22 UTC
svn commit: r557987 -
/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Collection.h
Author: tabish
Date: Fri Jul 20 05:53:21 2007
New Revision: 557987
URL: http://svn.apache.org/viewvc?view=rev&rev=557987
Log:
http://issues.apache.org/activemq/browse/AMQCPP-103
Modified:
activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Collection.h
Modified: activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Collection.h
URL: http://svn.apache.org/viewvc/activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Collection.h?view=diff&rev=557987&r1=557986&r2=557987
==============================================================================
--- activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Collection.h (original)
+++ activemq/activemq-cpp/trunk/src/decaf/src/main/decaf/util/Collection.h Fri Jul 20 05:53:21 2007
@@ -19,6 +19,10 @@
#define _DECAF_UTIL_COLLECTION_H_
#include <decaf/util/Config.h>
+#include <devaf/lang/exceptions/UnsupportedOperationException.h>
+#include <devaf/lang/exceptions/NullPointerException.h>
+#include <devaf/lang/exceptions/IllegalArgumentException.h>
+#include <decaf/util/Iterator.h>
namespace decaf{
namespace util{
@@ -64,6 +68,83 @@
public:
virtual ~Collection() {}
+
+ /**
+ * Returns true if this collection changed as a result of the call.
+ * (Returns false if this collection does not permit duplicates and
+ * already contains the specified element.)
+ *
+ * Collections that support this operation may place limitations on
+ * what elements may be added to this collection. In particular,
+ * some collections will refuse to add null elements, and others
+ * will impose restrictions on the type of elements that may be
+ * added. Collection classes should clearly specify in their
+ * documentation any restrictions on what elements may be added.
+ *
+ * If a collection refuses to add a particular element for any
+ * reason other than that it already contains the element, it must
+ * throw an exception (rather than returning false). This preserves
+ * the invariant that a collection always contains the specified
+ * element after this call returns.
+ *
+ * For non-pointer values, i.e. class instances or string's the object
+ * will be copied into the collection, thus the object must support
+ * being copied, must not hide the copy constructor and assignment
+ * operator.
+ *
+ * @param value - reference to the element to add.
+ * @returns true if the element was added
+ * @throw UnsupportedOperationException
+ * @throw NullPointerException
+ * @throw IllegalArgumentException
+ */
+ virtual bool add( const E& value )
+ throw ( lang::exceptions::UnsupportedOperationException,
+ lang::exceptions::NullPointerException,
+ lang::exceptions::IllegalArgumentException ) = 0;
+
+ /**
+ * Removes a single instance of the specified element from the
+ * collection. More formally, removes an element e such that
+ * (o==null ? e==null : o.equals(e)), if this collection contains one
+ * or more such elements. Returns true if this collection contained
+ * the specified element (or equivalently, if this collection changed
+ * as a result of the call).
+ * @param value - reference to the element to remove.
+ * @returns true if the collection was changed
+ * @throw UnsupportedOperationException
+ * @throw NullPointerException
+ */
+ virtual bool remove( const E& value )
+ throw ( lang::exceptions::UnsupportedOperationException,
+ lang::exceptions::NullPointerException ) = 0;
+
+ /**
+ * Returns true if this collection contains all of the elements in
+ * the specified collection.
+ * @param source - Collection to compare to this one.
+ * @thorw Exception
+ */
+ virtual bool containsAll( const Collection<E>& source )
+ throw ( lang::Exception ) = 0;
+
+ /**
+ * Adds all of the elements in the specified collection to this
+ * collection. The behavior of this operation is undefined if the
+ * specified collection is modified while the operation is in progress.
+ * (This implies that the behavior of this call is undefined if the
+ * specified collection is this collection, and this collection is
+ * nonempty.)
+ * @param source - Collection whose elements are added to this one.
+ * @return true if this collection changed as a result of the call
+ * @throw UnsupportedOperationException
+ * @throw NullPointerException
+ * @throw IllegalArgumentException
+ */
+ virtual bool addAll( const Collection<E>& source )
+ throw ( lang::exceptions::UnsupportedOperationException,
+ lang::exceptions::NullPointerException,
+ lang::exceptions::IllegalArgumentException ) = 0;
};