Commit Graph

1176 Commits

Author SHA1 Message Date
pjack fceaa29c48 Renamed Factory.createObject() to Factory.create().
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130776 13f79535-47bb-0310-9956-ffa450edef68
2002-08-15 20:09:38 +00:00
pjack 8ab071ff5d Documented (almost) all public/protected members.
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130775 13f79535-47bb-0310-9956-ffa450edef68
2002-08-15 20:04:31 +00:00
pjack 8d61930eab Enabled full suite of TestMap tests, and activated checks to see that
collection views are backed by map etc.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130774 13f79535-47bb-0310-9956-ffa450edef68
2002-08-15 03:23:08 +00:00
pjack 869725582c 1. Collection views are now backed by map.
2.  Used bit-mixing hash function.
3.  Added docs about the non-atomic nature of bulk operations.
4.  Improved performance of size() operation.
5.  Added atomic(Runnable) method.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130773 13f79535-47bb-0310-9956-ffa450edef68
2002-08-15 03:22:29 +00:00
pjack 43c829d318 Added documentation to classes in primitives package.
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130772 13f79535-47bb-0310-9956-ffa450edef68
2002-08-13 19:41:36 +00:00
pjack 642cb02b25 The collection views of FastArrayList, FastTreeMap and FastHashMap are
now backed by the parent collection, even in fast mode, and those
classes now pass all unit tests in fast mode.  The unit tests were
altered so that they actually test the classes with setFast(true).
PR:7924
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130771 13f79535-47bb-0310-9956-ffa450edef68
2002-08-13 04:34:09 +00:00
pjack 7230a4e5ea Renamed SimpleObjectFactory to Factory.
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130770 13f79535-47bb-0310-9956-ffa450edef68
2002-08-13 01:19:00 +00:00
pjack a5e5273b8d Added package.html for comparators and primitives subpackages.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130769 13f79535-47bb-0310-9956-ffa450edef68
2002-08-13 01:05:21 +00:00
pjack d3f3a8aa3d Fixed some JavaDoc errors.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130768 13f79535-47bb-0310-9956-ffa450edef68
2002-08-13 01:04:19 +00:00
pjack 6b7155d174 Forgot the license AGAIN. <slap>
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130767 13f79535-47bb-0310-9956-ffa450edef68
2002-08-13 00:49:59 +00:00
pjack 8191cf918f Added @since tags to files that were missing them. Also added some
@version tags to files that were missing them.  Also added private
constructor to ComparatorUtils.
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130766 13f79535-47bb-0310-9956-ffa450edef68
2002-08-13 00:46:25 +00:00
pjack e18f4e691a Added new decorators, and modified existing decorators to fit the
conventions outlined in the developer's guide.

Decorators are package-protected inner classes, not part of the public
API.  Existing lazy and predicated decorators were moved to
CollectionUtils, ListUtils etc.  New classes SetUtils, BagUtils were
added for decorators of those types.

New bounded and fixed size decorators were added for appropriate types.
Unmodifiable and synchronized decorators were added for Buffers and
Bags.

Unit tests were added where possible.  No unit tests for synchronized
collection wrappers; not sure how to implement a valid test for proper
synchronization.

Also, no unit tests for Bag decorators, because the decorator unit tests
require the TestCollection framework, which won't work with Bag since it
violates the Collection contract.

Modified Files:
 	src/java/org/apache/commons/collections/BufferUtils.java
 	src/java/org/apache/commons/collections/CollectionUtils.java
 	src/java/org/apache/commons/collections/ListUtils.java
 	src/java/org/apache/commons/collections/MapUtils.java
 	src/java/org/apache/commons/collections/PredicateUtils.java
 	src/test/org/apache/commons/collections/TestAll.java
 	src/test/org/apache/commons/collections/TestCollectionUtils.java
 	src/test/org/apache/commons/collections/TestList.java
Added Files:
 	src/java/org/apache/commons/collections/BagUtils.java
 	src/java/org/apache/commons/collections/SetUtils.java
 	src/test/org/apache/commons/collections/TestBoundedCollection.java
 	src/test/org/apache/commons/collections/TestBufferUtils.java
 	src/test/org/apache/commons/collections/TestListUtils.java
 	src/test/org/apache/commons/collections/TestMapUtils.java
 	src/test/org/apache/commons/collections/TestPredicatedCollection.java
 	src/test/org/apache/commons/collections/TestSetUtils.java
Removed Files:
 	src/java/org/apache/commons/collections/LazyCollections.java


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130765 13f79535-47bb-0310-9956-ffa450edef68
2002-08-13 00:26:52 +00:00
pjack 6043494121 Fixed infinite recursion in equals(Object) method.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130764 13f79535-47bb-0310-9956-ffa450edef68
2002-08-12 22:51:13 +00:00
pjack dcbca14341 Added serialVersionUid for compatibility...
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130763 13f79535-47bb-0310-9956-ffa450edef68
2002-08-12 19:59:49 +00:00
pjack 5462527ed3 Deprecated SoftRefHashMap.
PR:9571
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130762 13f79535-47bb-0310-9956-ffa450edef68
2002-08-12 18:24:33 +00:00
pjack 19538d0671 Forgot the license. Heh. Ahem.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130761 13f79535-47bb-0310-9956-ffa450edef68
2002-08-12 18:16:05 +00:00
pjack 81f6b79a48 Added new ReferenceMap class.
PR:9571
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130760 13f79535-47bb-0310-9956-ffa450edef68
2002-08-12 18:13:09 +00:00
pjack 2d82372ff5 Serialized files for new ReferenceMap.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130759 13f79535-47bb-0310-9956-ffa450edef68
2002-08-12 18:09:03 +00:00
pjack 7e650946d4 Some unit tests were failing under JDK1.2.2, because of bugs in the
source for JDK1.2.2 TreeMap and HashMap (they incorrectly return false
when a null value is removed from the collection views).


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130758 13f79535-47bb-0310-9956-ffa450edef68
2002-08-12 18:00:46 +00:00
pjack 9adb578a23 Added BeanMap.putAllWriteable(BeanMap) method, and unit test.
PR:11262


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130756 13f79535-47bb-0310-9956-ffa450edef68
2002-08-10 02:05:20 +00:00
pjack 560c096309 Added documentation that clearly indicates that these classes will not
work reliably on some architectures.

PR:9206


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130755 13f79535-47bb-0310-9956-ffa450edef68
2002-08-10 00:49:45 +00:00
pjack df79bf3af4 PR:10168
Submitted by:Maarten Coene (MacBelgium at toughguy dot net)


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130754 13f79535-47bb-0310-9956-ffa450edef68
2002-08-10 00:36:34 +00:00
Costin Manolache b73b147176 Fix the name - the file in CVS is called LICENCE.txt.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130753 13f79535-47bb-0310-9956-ffa450edef68
2002-07-25 18:08:05 +00:00
Jason van Zyl 26712251ba o getting the tests to work by removing the last non-testcase class.
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130752 13f79535-47bb-0310-9956-ffa450edef68
2002-07-25 03:18:04 +00:00
Jason van Zyl 4ebf207d4d o cleaning up the maven descriptors for the projects so that a site
with decent names is generated (link to come)

o made all the projects use a LICENSE.txt file. one this doesn't wig
  out windows users and the checkstyle report likes to have one to
  make sure that all sources files have a license present so if they
  don't it can be reported.

o using the reactor tag in its first forms to provide a mechanism
  to build the entire commons (still problems with detecting
  JDK 1.4) and to generate a site where the navigation is gleaned
  from the project themselves and don't have to kept in sync
  manually.

o added a little front-end site deployer.

PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130751 13f79535-47bb-0310-9956-ffa450edef68
2002-07-25 02:36:45 +00:00
Jason van Zyl 87341f1984 o excluding all non-testcases so that the tests pass
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130750 13f79535-47bb-0310-9956-ffa450edef68
2002-07-24 06:09:19 +00:00
Jason van Zyl 62a4ae05ab o adding project.xml and maven.xml. these don't work yet as the <build/>
element will have to be change.

  this is an example of the differences in testing patterns. The
  FooBarTestCase.java used in beanutils provides a nice way to grab
  on to the tests while leaving test classes out of the picture while
  not having to explicitly write a TestAll running. So with the
  introduction of a nice pattern that is used in Bean utils you don't
  need a runner and test classes will be ommitted and you can just add
  test cases and go, no need to modify anything else.

PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130749 13f79535-47bb-0310-9956-ffa450edef68
2002-07-23 16:41:11 +00:00
Michael Smith 693659db99 Add documentation indicating that the Bag interface violates the Collection
interface.

Submitted by: Paul Jack


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130748 13f79535-47bb-0310-9956-ffa450edef68
2002-07-19 01:15:01 +00:00
Rodney Waldhoff 2d1bbdb5aa add no-arg constructor
fix method name
add some javadoc comments


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130747 13f79535-47bb-0310-9956-ffa450edef68
2002-07-10 14:06:39 +00:00
Michael Smith 84fbbbcef1 Improved class level javadoc.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130746 13f79535-47bb-0310-9956-ffa450edef68
2002-07-10 03:35:32 +00:00
Rodney Waldhoff 32487bf55b add CollatingIterator and tests
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130745 13f79535-47bb-0310-9956-ffa450edef68
2002-07-09 16:48:56 +00:00
Michael Smith cee7a2c322 Update naming convention to be a bit more relaxed on decorator method names
(e.g. allow unmodifiableBuffer as an allowed decorator name)


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130744 13f79535-47bb-0310-9956-ffa450edef68
2002-07-03 02:34:09 +00:00
Michael Smith 5248e3fb4a Fixed javadoc links.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130743 13f79535-47bb-0310-9956-ffa450edef68
2002-07-03 02:16:48 +00:00
Michael Smith c2307801a0 ArrayStack and BinaryHeap now implement Buffer.
Submitted by: Paul Jack


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130742 13f79535-47bb-0310-9956-ffa450edef68
2002-07-03 02:09:06 +00:00
Michael Smith 6cf2dc519e Added proper license.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130741 13f79535-47bb-0310-9956-ffa450edef68
2002-07-03 01:59:50 +00:00
Michael Smith 9f3b7f5f43 Add Buffer implementations, utilities, and tests.
BoundedFifoBuffer is renamed from Avalon's FixedSizeBuffer. Made it extend
AbstractCollection, provided an iterator. Removed "final" from class and method
declarations. Added javadoc.

UnboundedFifoBuffer is renamed from Avalon's VariableSizeBuffer. Made it extend
AbstractCollection, provided an iterator. Removed "final" from class and method
delcarations. Added javadoc.

BufferUtils provides Buffer decorators for synchronized, unmodifiable, and
predicated Buffers.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130740 13f79535-47bb-0310-9956-ffa450edef68
2002-07-03 01:57:08 +00:00
Michael Smith 6f35a6f718 Fix license to approved long form.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130739 13f79535-47bb-0310-9956-ffa450edef68
2002-07-03 01:45:47 +00:00
Michael Smith 8c21747867 Added Buffer interface from Avalon Excaliber.
Modified the interface from Avalon so that it (a) defines a read-only get()
method and (b) extends java.util.Collection. Also altered the documentation so
that the scope of the interface is broader; it can apply to stacks, heaps and
LRU caches as well.

Submitted by: Paul Jack ( pjack at sfaf dot org )


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130738 13f79535-47bb-0310-9956-ffa450edef68
2002-07-03 01:44:04 +00:00
Michael Smith 69c5c0e07f Formalize naming conventions proposal.
Submitted by: Stephen Colebourne

I made a few minor modifications (e.g. adding </li> tags), along with modifying
the requirement of static inner classes for the decorators to be more in line
with my perception of consensus from the discussion.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130737 13f79535-47bb-0310-9956-ffa450edef68
2002-06-29 03:49:01 +00:00
Michael Smith 39dd7c6f92 Added BucketMap, renamed to StaticBucketMap, from Avalon Excaliber. I made the
following changes to the Avalon implementation:

Changed improper short form of license to the approved long form.

Changed package from org.apache.avalon.excaliber.collections to
org.apache.commons.collections.

Altered to allow null keys and null values.

Fixed the values() method to return all values from the map.  That is, when a
particular value is mapped to from two different keys, it should be included
twice in the values() collection; however the avalon implementation was using a
Set (thus not including duplicates). The new implementation uses a list which
does not restrict duplicate elements.

Fixed the put(Object,Object) method to return null rather than the value being
put into the map when the key does not already exist in the map (per the Map
contract).

Added equals(Object) and hashCode() implementations to conform to the Map
contract.

Altered the Node inner class's hashCode() method to return the hashCode of the
Map.Entry as defined in the Map.Entry's contract.

Added an equals(Object) method to the Node inner class to conform to the
Map.Entry contract.


Things left todo:

Alter the keySet(), values(), and entrySet() methods to return collections that
are backed by the map per the Map contract.

Add a constructor that takes another Map and adds all the mappings from that
map (per the Map recommendation).

Implement a DynamicBucketMap that will allow for dynamic resizing of the
hashtable's structure such that the map will not suffer a performance penalty
when the number of elements in the map exceeds the number of buckets in the
map.

Improve the documentation to indicate the performance problems when specifying
a size that is smaller than the expected number of elements.

Other general documentation cleanup


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130736 13f79535-47bb-0310-9956-ffa450edef68
2002-06-21 06:17:45 +00:00
Michael Smith 9752389b61 Made the TestCases for primitive lists extend TestList,
so the full suite of List tests is performed on them.
Used BulkTest.makeSuite to pick up the sublist tests.

There should probably be additional work for testing the
primitive operations.

Submitted by: Paul Jack ( pjack at sfaf dot org )


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130735 13f79535-47bb-0310-9956-ffa450edef68
2002-06-21 04:01:31 +00:00
Michael Smith c3a859c1ce FloatArrayList didn't implement set(int,Object) or remove(int),
essentially making it an unmodifiable List.  Since setFloat(int,float)
and removeFloatAt(int) already existed, I added trivial
implementations for set(int,Object) and remove(int).

Submitted by: Paul Jack ( pjack at sfaf dot org )


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130734 13f79535-47bb-0310-9956-ffa450edef68
2002-06-21 03:50:40 +00:00
Michael Smith f96c2305fa Enable the bulk tests in TestArrayStack,
TestFastArrayList, TestFastArrayList1.

Submitted by:  Paul Jack ( pjack at sfaf dot org )


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130733 13f79535-47bb-0310-9956-ffa450edef68
2002-06-21 03:33:28 +00:00
Michael Smith 831f19ee73 Removed the deprecated method from TestCollection, as no one uses
it anymore.

Modified TestCursorableLinkedList so that serialization tests on
sublists and sub-sublists are ignored.

Submitted by:  Paul Jack ( pjack at sfaf dot org )


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130732 13f79535-47bb-0310-9956-ffa450edef68
2002-06-21 03:32:06 +00:00
Michael Smith 5b3f6003c5 TestList tests have been rewritten to conform to the general
TestCollection patterns.  A bulk test has been included for
sublists and sub-sublists.

Removed the deprecated method from TestCollection, as no one uses
it anymore.

Modified TestCursorableLinkedList so that serialization tests on
sublists and sub-sublists are ignored.

Submitted by:  Paul Jack ( pjack at sfaf dot org )


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130731 13f79535-47bb-0310-9956-ffa450edef68
2002-06-21 03:28:54 +00:00
Michael Smith 4ab1ffccbe The indexOf(Object) and lastIndexOf(Object) were incorrectly
raising a NullPointerException if null were passed as the argument.
This patch file fixes the behavior so that these methods will
correctly find a null element.

Submitted by: Paul Jack ( pjack at sfaf dot org )


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130730 13f79535-47bb-0310-9956-ffa450edef68
2002-06-21 03:26:15 +00:00
Henri Yandell f405dbaea6 Added a start and end index to the ArrayIterator. Unit tests also added and
currently passing.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130729 13f79535-47bb-0310-9956-ffa450edef68
2002-06-20 02:51:18 +00:00
Michael Smith 486972dbc7 Remove use of TestHashMap which didn't really test anything that isn't
already tested in TestMap.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130728 13f79535-47bb-0310-9956-ffa450edef68
2002-06-18 05:41:11 +00:00
Michael Smith 02c0d12fca Enabled the new test framework in the following test classes:
- TestBeanMap
 - TestCursorableLinkedList
 - TestDoubleOrderedMap
 - TestFastHashMap
 - TestFastHashMap1
 - TestFastTreeMap
 - TestFastTreeMap1
 - TestLRUMap
 - TestSequencedHashMap
 - TestSoftRefHashMap

Submitted by Paul Jack ( pjack at sfaf dot org ).

Note: TestAll does not contain reference to TestSoftRefHashMap, so this test is
not automatically run.  If you run it manually, you will see many failures that
are due to bug 9571.

Note: With this commit, there are four test failures if you are running with
JDK 1.2.  This is due to a bug in the JDK's implementation of keySet on a
HashMap which incorrectly returns false after removing a mapping which maps a
key to a null value.  Incidently, this problem is very similar to the problem
that existed on SequencedHashMap, filed as bug 9719, and fixed on June 9th.
See: http://developer.java.sun.com/developer/bugParade/bugs/4286765.html


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130727 13f79535-47bb-0310-9956-ffa450edef68
2002-06-18 05:35:58 +00:00
Michael Smith 326f500bb3 Modified tests that used makeEmptyMap and makeFullMap to use the map field
along with resetEmpty() and resetFull().  This allows for more calls to verify
to ensure that calls to methods that should not modify a collection don't
actually modify it.

Split the verify() method into four separate verification methods.  This way,
if a Map implementation needs to change the way verification is performed for
just one of the collection views, they only need to override one method and
won't need to reimplement all the other verifications.

Override TestMultiHashMap's verifyValues() method to retrieve a fresh copy of
the values collection before verification.  This ensures some verification
testing on the values, even though the values is not backed by the map (bug
9573)

Override a few more test methods and the verifyyMap and verifyEntrySet methods
for TestMultiHashMap since it's values are collections rather than the expected
objects.  These will need to be filled in with better implementations to
actually test the MultiMap contact.

Removed the SupportsPut marker interface.

Removed some duplicate tests (i.e. some old tests that weren't written with the
current framework in mind and just duplicate the tests that have been added).


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130726 13f79535-47bb-0310-9956-ffa450edef68
2002-06-18 03:28:35 +00:00