Hi Here is a patch to resolve the license issues with NodeCachingLinkedList. Included in this patch is:
- CommonsLinkedList, a version of java.util.LinkedList that we can
distribute with [collections].
A few points about this class:
- Is the name ok? I couldn't think of anything else to distinguish
it from the standard implementation.
- It is package visible, perhaps it should be public.
- It extends LinkedList rather than AbstractSequentialList. Since it
doesn't override every method of List there will be problems if
LinkedList overrides more methods in the future. (This was a
problem with the old implementation of NodeCachingLinkedList too.)
Also, extending LinkedList takes up a little bit more memory.
- It will probably be a little slower than LinkedList since I have
made an effort to break out common code rather than inlining
everything. The difference should be very small.
- NodeCachingLinkedList which overrides several of CommonsLinkedList
methods to allow caching of nodes. Jeff may wish to look at this to
see if I've written it correctly. Of particular note:
- The default maximum cache size is now 20, down from 1000000. It is
still possible to change this maximum for a particular instance.
- It is serializable.
- TestLinkedList, for testing classes that extend LinkedList. Being
able to write this class is one good reason for CommonsLinkedList to
extend LinkedList!
- Tests for CommonsLinkedList and NodeCachingLinkedList.
- Serialized versions of CommonsLinkedList and NodeCachingLinkedList
that can be placed in data/test.
- Patch to TestObject.getCompatibilityVersion() to use a String
version instead of an int version. This allows version strings like
"2.1" or "2.2". This also required changes to several other test
cases which overrode the method.
BTW, what is the best way to submit a patch which includes new files? I used
'diff' with the -N option, is there a way using 'cvs diff'?
Rich
linkedlist-reimp.patch.gz
Description: Binary data
linkedlist-reimp-data.tar.gz
Description: Binary data
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
