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

Reply via email to