Hi, how about this backwards compatibility issue of the PriorityQueue. Is there any solution?
I have to change my Store Implementation in Cocoon2, because you changed the Interface. Cheers Gerhard ------------------------------------------- black holes are when GOD is dividing by zero 23 49 43 51 3A 20 31 32 33 35 33 34 38 31 31 -------------------------------------------- -----Original Message----- From: Chad Stansbury [mailto:[EMAIL PROTECTED] Sent: Monday, November 19, 2001 4:24 AM To: Avalon Developers List Subject: Re: [Excalibur] PriorityQueue & BinaryHeap proposal Peter - I've made a few changes to the code, the diffs of which are below... In short, I've change the private modifier on the two comparators to public (from private) so that they can be used in the constructor, I've changed the 'isMinHeap' constructor to use the comparable constructor to eliminate duplication of code, I've added a size() accessor, and I've added comments to the stuff I've added. Attached is the latest & greatest BinaryHeap.java + a TestBinaryHeap.java that contains some of the code I used to test my previous n-ary heap. Note that I wrote the n-ary heap quite a while ago using my own unit test harness, and I've done little work with JUnit... perhaps you have the time to put it in an format acceptable to JUnit. You'll notice also that I commented out the code that tests inserting a null element - because the current BinaryHeap does not prevent inserting null elements - something that I think you might want to change... Below you'll find the diff of the BinaryHeap.java file from that in CVS. Thanks, Chad D:\dev\cvs\cvs.exe diff -r HEAD BinaryHeap.java Index: BinaryHeap.java =================================================================== RCS file: /home/cvspublic/jakarta-avalon-excalibur/src/java/org/apache/avalon/excalibu r/collections/BinaryHeap.java,v retrieving revision 1.4 diff -r1.4 BinaryHeap.java 45,46c45,56 < private static final Comparator MIN_COMPARATOR = new MinComparator(); < private static final Comparator MAX_COMPARATOR = new MaxComparator(); --- > /** > * Comparator used to instantiate a min heap - assumes contents implement > * the Comparable interface. > */ > public static final Comparator MIN_COMPARATOR = new MinComparator(); > > /** > * Comparator used to instantiate a max heap - assumes contents implement > * the Comparable interface. > */ > public static final Comparator MAX_COMPARATOR = new MaxComparator(); > 62a73,74 > * > * @param capacity the size of the heap 71a84,85 > * > * @param comparator to order the contents of the heap 80a95,97 > * > * @param capacity the size of the heap > * @param comparator to order the contents of the heap 110,114c127 < //+1 as 0 is noop < m_elements = new Object[ capacity + 1 ]; < < if( isMinHeap ) m_comparator = MIN_COMPARATOR; < else m_comparator = MAX_COMPARATOR; --- > this( capacity, isMinHeap ? MIN_COMPARATOR : MAX_COMPARATOR ); 143a157,166 > } > > /** > * Returns the number of elements currently on the heap. > * > * @return the size of the heap. > */ > public int size() > { > return m_size; CVS command finished execution