Commit Graph

761 Commits

Author SHA1 Message Date
Morgan James Delagrange 8d39019497 Fixed javadoc error
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130609 13f79535-47bb-0310-9956-ffa450edef68
2002-02-26 21:30:40 +00:00
Rodney Waldhoff 224a627029 fixing bug in FilterListIterator, adding test for it
javadoc fixes to FilterListIterator


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130599 13f79535-47bb-0310-9956-ffa450edef68
2002-02-26 17:28:55 +00:00
Rodney Waldhoff e238eff5de adding ProxyListIterator, FilterListIterator, and tests
removing unneeded import from ProxyIterartor, javadoc tweaks


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130582 13f79535-47bb-0310-9956-ffa450edef68
2002-02-25 23:53:20 +00:00
Henri Yandell b7713ef824 StringStack comes from Commons.Utils.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130571 13f79535-47bb-0310-9956-ffa450edef68
2002-02-23 03:52:02 +00:00
Henri Yandell 2bd797f65d Merged the Commons.Utils MapUtils in. It consisted of:
safeAddToMap method.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130570 13f79535-47bb-0310-9956-ffa450edef68
2002-02-23 03:50:23 +00:00
Michael Smith 94c4dca82f Fix test failure for BeanMap.clear()
Documented deviation in behavior from Map.clear()


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130562 13f79535-47bb-0310-9956-ffa450edef68
2002-02-22 07:00:30 +00:00
Michael Smith 4d9246c82a Updated my email address.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130558 13f79535-47bb-0310-9956-ffa450edef68
2002-02-22 04:58:17 +00:00
Michael Smith 91e030ff08 Fixed the following Bag related problems:
- In Bag.java, the statement "If the bag contains less than i occurences,
the item item will be removed from the unique set" implies that if the bag
contains 5 occurences and i is 5, (5 is not less than 5) then the item will
not be removed from the unique set, even though there should be no more
occurances in the bag.

 - In AbstractBag.java, the documentation does not specify exactly what a
subcless needs to do to extend AbstractBag to make a concrete subclass.

 - AbstractBag.add(Object,int) has two calls to getCount(o), when only one
is necessary.  This wastes a few cycles to perform method invocations, a
map lookup, a cast, and a few comparisons.

 - The AbstractBag.equals(Object) method will incorrectly throw a
NullPointerException if a null value is passed.  The Object.equals(Object)
API specifies "For any non-null reference value x, x.equals(null) should
return false".

 - The AbstractBag.equals(Object) method will only work if the object
passed in extends AbstractMap or implements Map.  Neither of these facts
is documented, and neither is correct.  The contract for
Object.equals(Object) states: "for any reference values x and y,
x.equals(y) should return true if and only if y.equals(x) returns true. ".
Returning true when the argument is a Map is incorrect since he reverse
(the map checking to see if its equal to the bag) will most certainly be
false.  The same can be said for AbstractMap.  A subclass of AbstractMap
may add extra data to be stored within the Bag that must also be compared
for them to be equal.  The reverse comparison (specialized subclass equals
basic abstract bap) will fail.  You can read more about this in a three-
year old, but still valid java world article:
http://www.javaworld.com/javaworld/jw-01-1999/jw-01-object.html

 - if AbstractBag.remove(Object,int) is called passing in 0 as the number
to remove and specifying an object that exists in the bag, true will be
returned from the method. Per the Bag API specification, true should only
return when an object is actually removed.  Since no objects are removed,
false should be returned instead. Additionally, if a negative number is
specified, not only is the object not removed, but object(s) are *added*
(well, in the sense that it is equivalent of calling add(o, -i))

 - the uniqueSet() method returns the set of unique objects, however the
set is modifiable.  If the underlying map implementation has the set
backed by the map (as per the map contract -- so it should), then elements
can be removed from the unique set and have them removed from the
underlying map as well.  This causes consistency problems with the Bag
since _total will then be incorrect.

 - in extractList(), getCount(current) is called each time through the
inner loop, adding lots of extra overhead.  Reversing the loop (starting
at the count and going down to 0) eliminates the excess overhead.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130557 13f79535-47bb-0310-9956-ffa450edef68
2002-02-22 04:39:53 +00:00
Michael Smith 5bf5481408 Added documentation, and updating formatting of some documentation
(i.e. put "code" within <code>...</code>)

Added check for a valid capacity argument passed to constructor.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130556 13f79535-47bb-0310-9956-ffa450edef68
2002-02-22 04:16:19 +00:00
Michael Smith 6bb40f4086 Implement Externalizable in SequencedHashMap
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130555 13f79535-47bb-0310-9956-ffa450edef68
2002-02-22 03:17:40 +00:00
Michael Smith 2af7a322ef Odd how that compiled for me before my commit, but it doesn't
afterwards (for obvious reasons)


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130554 13f79535-47bb-0310-9956-ffa450edef68
2002-02-22 02:37:56 +00:00
Michael Smith ef5aa20db3 There is no backwards compatibility issue since this class is new
since collections 1.0.  Therefore, since the entire Map interface
is implemented, there's no reason to inherit from HashMap.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130553 13f79535-47bb-0310-9956-ffa450edef68
2002-02-22 02:34:59 +00:00
Michael Smith 90646843f9 Fix a NullPointerException when an object passed to an entrySet method is not mapping found in the map. Exhibited with entrySet().remove(Object) and entrySet().contains(Object)
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130546 13f79535-47bb-0310-9956-ffa450edef68
2002-02-21 13:46:25 +00:00
Morgan James Delagrange cd6254ae22 fixed line feed problem over whole file
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130537 13f79535-47bb-0310-9956-ffa450edef68
2002-02-20 18:30:36 +00:00
Morgan James Delagrange ca6c97a99a removed unnecessary else block and fixed indenting
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130536 13f79535-47bb-0310-9956-ffa450edef68
2002-02-20 18:05:07 +00:00
Morgan James Delagrange 89417ef747 LRUMap reimplemented, based on SequencedHashMap
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130535 13f79535-47bb-0310-9956-ffa450edef68
2002-02-20 18:01:34 +00:00
Morgan James Delagrange 3b9b229b36 complete re-implementation of SequencedHashMap submitted by
Michael Smith


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130532 13f79535-47bb-0310-9956-ffa450edef68
2002-02-18 20:34:57 +00:00
Morgan James Delagrange c9cc92c63e LRUMap does not support concurrent access to any of its methods
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130523 13f79535-47bb-0310-9956-ffa450edef68
2002-02-14 21:24:32 +00:00
Morgan James Delagrange f22d9bce8c added contract to LRUMap - subclasses can override removeLRU()
and remove(Object) to manipulate objects on their way out of the cache


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130522 13f79535-47bb-0310-9956-ffa450edef68
2002-02-14 20:58:48 +00:00
Morgan James Delagrange b0a305ab05 added fully qualified package names for imports
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130520 13f79535-47bb-0310-9956-ffa450edef68
2002-02-14 20:21:49 +00:00
Morgan James Delagrange 02bc992242 fixed bubble sort, so that the number of elements in the bubble sort
will always equal the size of the LRUMap


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130518 13f79535-47bb-0310-9956-ffa450edef68
2002-02-13 23:07:31 +00:00
Morgan James Delagrange c5c64c02d3 fixed IndexOutOfBoundsException
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130515 13f79535-47bb-0310-9956-ffa450edef68
2002-02-13 21:03:20 +00:00
James Strachan 328f30989e Patched the LRUMap so that remove() does indeed remove items from the bubble list
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130512 13f79535-47bb-0310-9956-ffa450edef68
2002-02-10 12:56:39 +00:00
James Strachan 25c1cb6b4a Updated all the licences to the full long form and ensured that the copyright notice extends to 2002. Also applied Michael Smith's patch for FilterIterator, Closure, DefaultMapEntry and LRUMap
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130511 13f79535-47bb-0310-9956-ffa450edef68
2002-02-10 08:07:42 +00:00
James Strachan 4b266ff8bc Applied patch submitted by Michael Smith that clarifies the description of the FilterIterator
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130510 13f79535-47bb-0310-9956-ffa450edef68
2002-02-01 16:27:40 +00:00
Craig R. McClanahan 6a5c4a72c6 Committed the DoubleOrderedMap class and associated unit tests (gotta love
it when the unit test source is 50% longer than the class being tested :-).
The only change I made was to use the long-form version of the Apache
license -- according to the Apache board, that is the only acceptable
approach at the moment.  Any remaining classes in commons-collections (or
elsewhere) using the short form license should be updated.

Submitted by:	Marc Johnson <marc_johnson27591@hotmail.com>


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130509 13f79535-47bb-0310-9956-ffa450edef68
2002-01-20 04:36:08 +00:00
Henri Yandell 3d6c8c5fab An empty iterator. It is immutable and always the same object instance.
Submitted by:	Christopher Elkins <chrise@scardini.com>


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130508 13f79535-47bb-0310-9956-ffa450edef68
2001-11-26 17:15:33 +00:00
James Strachan 51a5b46632 Applied patch submitted by Richard Wan that containsKey() took a String by mistake
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130507 13f79535-47bb-0310-9956-ffa450edef68
2001-11-02 14:44:35 +00:00
Henri Yandell 21500f60e7 Patch that stops next() continually returning null if hasNext is not
called in the standard way. ie)

(cf: "Juozas Baliuka" <baliuka@mwm.lt>)

while(true) {
    filterIterator.next();
}

This should eventually throw NoSuchElementException, but it returns null
forever.

Submitted by:  Jan Sorensen <jan.sorensen@aragost.com>


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130505 13f79535-47bb-0310-9956-ffa450edef68
2001-10-19 20:18:21 +00:00
Jason van Zyl 30a8d35e54 - adding ${variable} interpolation to the getString() methods. the
code was taken from the jetspeed codebase.
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130503 13f79535-47bb-0310-9956-ffa450edef68
2001-09-21 03:14:40 +00:00
James Strachan 71a401b27b Added MultiMap and MultiHashMap implementation submitted by Chris Berry together with a JUnit test case
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130502 13f79535-47bb-0310-9956-ffa450edef68
2001-09-18 10:41:39 +00:00
James Strachan 40bdd8fe80 Added Daniel Rall's SequencedHashMap patch and ported the JUnit test case over to use assertTrue() rather than assert().
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130501 13f79535-47bb-0310-9956-ffa450edef68
2001-09-17 16:43:49 +00:00
James Strachan f9f92677a9 Added Bay's helper methods to CollectionUtils
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130500 13f79535-47bb-0310-9956-ffa450edef68
2001-08-29 16:10:29 +00:00
James Strachan a10c6b0142 Added Daniel Rall's patch to support remove() from the EnuemerationIterator
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130499 13f79535-47bb-0310-9956-ffa450edef68
2001-08-29 15:48:42 +00:00
James Strachan d08fa6d71e Added Bag interface, implementations and JUnit test cases as submitted by Chuck Burdick
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130498 13f79535-47bb-0310-9956-ffa450edef68
2001-08-29 15:28:07 +00:00
James Strachan 66c451d618 Patched ArrayIterator to use java.lang.reflect.Array so that it can support arrays of primitive types such as int[]
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130497 13f79535-47bb-0310-9956-ffa450edef68
2001-08-23 12:04:40 +00:00
James Strachan 530049b41c Backed out ArrayIterator change to use reflection rather than use Object[]
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130496 13f79535-47bb-0310-9956-ffa450edef68
2001-08-23 10:50:01 +00:00
James Strachan ea64efd6dc Patched ArrayIterator so that it can work with any type of array, not just Object[] instances
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130495 13f79535-47bb-0310-9956-ffa450edef68
2001-08-23 09:05:26 +00:00
James Strachan 8c44a71208 Added SingletonIterator for iterating over a single value together with a JUnit test case
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130493 13f79535-47bb-0310-9956-ffa450edef68
2001-08-22 07:43:53 +00:00
Rodney Waldhoff 54345a5c91 committing ungenerated parts of documentation patch from Chuck Burdick
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130492 13f79535-47bb-0310-9956-ffa450edef68
2001-08-17 23:00:26 +00:00
James Strachan 4a2e49fd8d Applied Mauricio's patches to the ArrayIterator and added his patches to TestArrayIterator also
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130487 13f79535-47bb-0310-9956-ffa450edef68
2001-06-05 07:20:10 +00:00
James Strachan 2ecede5902 Patched the select(inputCollection, predicate, outputCollection) method so that it does not return a variable, to avoid any confusion with the select(inputCollection, predicate) method which returns the outputCollection.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130486 13f79535-47bb-0310-9956-ffa450edef68
2001-05-22 15:53:06 +00:00
Craig R. McClanahan a36442f0d0 Work around a problem reported by the VAJ Java compiler, caused by the
fact that the superclass already has a private class named Iterator.

Submitted by:	Costin Cozianu <Costin.Cozianu@cis.canon.com>


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130485 13f79535-47bb-0310-9956-ffa450edef68
2001-05-20 21:03:30 +00:00
Rodney Waldhoff 3761b55144 I pretty sure this fixes bug 1729 (http://nagoya.apache.org/bugzilla/show_bug.cgi?id=1729) but I don't have an environment to test it. It certainly doesn't break anything.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130484 13f79535-47bb-0310-9956-ffa450edef68
2001-05-18 00:12:45 +00:00
Rodney Waldhoff ffe28c43e0 Deprecating. I'd like to remove this class, if no one has any issues.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130482 13f79535-47bb-0310-9956-ffa450edef68
2001-05-16 22:19:23 +00:00
James Strachan 284b6f5477 Added Mauricio S. Moura's patch to ArrayIterator such that next() calls move the iterator along rather than calls to hasNext(). I've also added a JUnit test case to demonstrate it in action and validate that it works correctly.
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130481 13f79535-47bb-0310-9956-ffa450edef68
2001-05-14 10:42:53 +00:00
Geir Magnusson Jr 8ab1fd1633 javadoc update. Thanks to Jon Stevens for pointing it out.
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130480 13f79535-47bb-0310-9956-ffa450edef68
2001-05-13 21:46:22 +00:00
Geir Magnusson Jr 1688a5a244 Fixed the problem reported by Thomas Fahrmeyer <thomas.fahrmeyer@einsurance.de>
where ExtendedProperties would re-process data when making a subset.  Hope no one
was depending on that :)

Also adjusted the testcase to test this.
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130474 13f79535-47bb-0310-9956-ffa450edef68
2001-05-10 00:40:09 +00:00
James Strachan 485615107d Added new Map implementations and Closure classes
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130471 13f79535-47bb-0310-9956-ffa450edef68
2001-05-06 11:04:25 +00:00
Rodney Waldhoff 2a069edb7e importing classes referenced in javadoc comments (javadoc won't find them otherwise)
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130469 13f79535-47bb-0310-9956-ffa450edef68
2001-05-04 16:33:18 +00:00
Rodney Waldhoff 3f66e516a7 minor javadoc fixes
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130468 13f79535-47bb-0310-9956-ffa450edef68
2001-05-04 16:32:17 +00:00
Geir Magnusson Jr 2a49159056 A few minor changes :
1) replaced with the current version from velocity's CVS - this is a few
changes by dan

2) added the recent patch from Ilkka for dealing with encoded properties
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130456 13f79535-47bb-0310-9956-ffa450edef68
2001-05-04 02:22:48 +00:00
Rodney Waldhoff 1e8a31f417 minor fixes to adhere more closely to the java.util.List contract
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130453 13f79535-47bb-0310-9956-ffa450edef68
2001-04-26 00:05:47 +00:00
Rodney Waldhoff 256420016e adding CollectionUtils and tests for it
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130450 13f79535-47bb-0310-9956-ffa450edef68
2001-04-24 18:48:38 +00:00
Rodney Waldhoff b8ed8bbd5e committing several files from Peter Donald and Avalon
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130448 13f79535-47bb-0310-9956-ffa450edef68
2001-04-22 19:56:37 +00:00
Craig R. McClanahan fff00791ed Change parentage of these classes so that they subclass ArrayList,
HashMap, and TreeMap respectively.  This improves the ability to
substitute "fast" versions for the use of the regular collection classes.

Implement clone(), equals(), and hashCode() methods in accordance with the
contracts specified in the Collections classes APIs.


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130444 13f79535-47bb-0310-9956-ffa450edef68
2001-04-21 12:19:57 +00:00
Jason van Zyl 30681261f3 - adding some utilities from struts into the collections packages
along with some (admittedly weak for now) tests.
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130442 13f79535-47bb-0310-9956-ffa450edef68
2001-04-16 22:42:04 +00:00
Geir Magnusson Jr 73733206b9 Applied Scott Sanders' patch restoring the peek(n) method.
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130441 13f79535-47bb-0310-9956-ffa450edef68
2001-04-16 22:39:21 +00:00
Geir Magnusson Jr 596afd4f5a Moved and renamed - was originally from Velocity CVS (which came from elswhere...)
PR:
Obtained from:
Submitted by:
Reviewed by:


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130438 13f79535-47bb-0310-9956-ffa450edef68
2001-04-16 05:01:03 +00:00
Craig R. McClanahan 004d5e672e Add an unsynchronized implementation of the Stack API (extends ArrayList
instead of Vector) for faster stack processing in single threaded
environments.

TODO:  Finish the unit tests (coming soon).


git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130436 13f79535-47bb-0310-9956-ffa450edef68
2001-04-14 19:32:38 +00:00
Rodney Waldhoff 13a119de0b Initial revision
git-svn-id: https://svn.apache.org/repos/asf/jakarta/commons/proper/collections/trunk@130432 13f79535-47bb-0310-9956-ffa450edef68
2001-04-14 15:38:58 +00:00