|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectheaps.generic.GenericHeap<TimeAssociation<T>>
heaps.event.EventHeap<T>
heaps.event.hierarchy.BetweenHeap<T>
T - all heap objects are of time TimeAssociation<T>public class BetweenHeap<T extends HeapChild>
A wrapper for a EventHeap object, allowing it to be presented as
both a timer (by implementing interface HeapChild, enabling
it to be added into other heaps), and a heap into which timers can be added
(by implementing interface HeapParent). In a hierarchy of
this timers, instances of this class are used between the root and any leaf.
| Constructor Summary | |
|---|---|
BetweenHeap(HeapParent<HeapChild> _hp,
EventHeap<T> _h)
Creates a new wrapper for a TimedHeap object, allowing it
to be used as an intermediate node along a hierarchy of heaps. |
|
| Method Summary | |
|---|---|
boolean |
add(TimeAssociation<T> element)
Adds the object element to the heap. |
boolean |
allowsDuplicates()
Returns whether this heap allows duplicate elements. |
void |
clear()
Removes all elements from the heap. |
boolean |
contains(TimeAssociation<T> element)
Returns whether the heap contains the argument element. |
boolean |
containsElement(T element)
Returns whether there exists a TimeAssociation in the heap
that is associated with the given element parameter. |
TimeAssociation<T> |
extract()
Extracts the next element from the heap. |
TimeAssociation<T> |
getNextTime(T element)
Returns the first TimeAssociation in the heap that is
associated with the given element parameter. |
int |
getSize()
Returns the number of elements in the heap. |
boolean |
isEmpty()
Returns true if the heap is empty, false
otherwise. |
void |
process(long curr_time)
This callback method is invoked when the heap that this timer is part of has determined that the timer has expired. |
boolean |
remove(T element)
This method is invoked by a timer when it wishes to remove itself from the heap, so that its process method is never invoked. |
boolean |
remove(TimeAssociation<T> element)
Finds the object in the heap equal to element, removes
it, and returns true. |
TimeAssociation<T> |
removeNextTime(T element)
Returns and removes the first TimeAssociation in the heap
that is associated with the given element parameter. |
boolean |
setNextTime(TimeAssociation<T> element,
boolean do_add)
Substitues the given parameter for the first TimeAssociation
in the heap that is associated with the object returned by method
getObject of the parameter. |
TimeAssociation<T> |
top()
Returns the next object element to be extracted from the heap without actually removing it from the heap. |
void |
update(TimeAssociation<T> element)
This method is invoked by a timer when it wishes to add itself to the heap, or when it wishes to change the time at which it should be invoked. |
| Methods inherited from class heaps.generic.GenericHeap |
|---|
getComparator |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public BetweenHeap(HeapParent<HeapChild> _hp,
EventHeap<T> _h)
TimedHeap object, allowing it
to be used as an intermediate node along a hierarchy of heaps.
_hp - the parent heap in which this object should insert itself as a timer, as
needed_h - the TimedHeap object to wrap as both a timer and a heap for
timers| Method Detail |
|---|
public void clear()
Heap
clear in interface Heap<TimeAssociation<T extends HeapChild>>public boolean add(TimeAssociation<T> element)
GenericHeapelement to the heap. If the implementing
heap allows duplicates, element is always added to the
heap and this method returns true. If the implementing
heap does not allow duplicates, element is added and
method returns true only if no duplicate of
element exists in the heap. Otherwise, if a duplicate
exists in the heap and none are allowed, this method returns
false and the heap remains unchanged.
add in class GenericHeap<TimeAssociation<T extends HeapChild>>element - the object to add to the heap
true if element is added,
false otherwisepublic TimeAssociation<T> top()
HeapComparable. If the heap is
empty, null is returned.
top in interface Heap<TimeAssociation<T extends HeapChild>>public TimeAssociation<T> extract()
HeapComparable. If the
heap is empty, null is returned.
extract in interface Heap<TimeAssociation<T extends HeapChild>>public boolean containsElement(T element)
EventHeapTimeAssociation in the heap
that is associated with the given element parameter.
containsElement in class EventHeap<T extends HeapChild>element - the element to query for in the heap
true if a TimeAssociation exists
associated with element, false otheriwsepublic boolean contains(TimeAssociation<T> element)
GenericHeapelement.
contains in class GenericHeap<TimeAssociation<T extends HeapChild>>element - the element to query for membership in the heap
true if element is in the heap,
false otherwisepublic int getSize()
Heap
getSize in interface Heap<TimeAssociation<T extends HeapChild>>public TimeAssociation<T> getNextTime(T element)
EventHeapTimeAssociation in the heap that is
associated with the given element parameter. That is, of
all the TimeAssociation elements that are associated with
the given parameter, the one returned has the smallest value returned by
method getTime. If no such element exists, this method
returns null.
getNextTime in class EventHeap<T extends HeapChild>element - the element to query for in the list
TimeAssociation whose event is equal to
argument event, or null if none existspublic boolean isEmpty()
Heaptrue if the heap is empty, false
otherwise. This is equivalent to returning true if and only if
getSize returns 0.
isEmpty in interface Heap<TimeAssociation<T extends HeapChild>>true if the heap is empty, false
otherwise
public boolean setNextTime(TimeAssociation<T> element,
boolean do_add)
EventHeapTimeAssociation
in the heap that is associated with the object returned by method
getObject of the parameter. Thus, if the object returned
by method getObject is only present once in the heap, this
method is equivalent to updating its time. If no such
TimeAssociation object exists, this method has the same
effect as calling method add(element) in interface
GenericHeap if flag do_add is
true; otherwise, this method returns false
and has no effect.
setNextTime in class EventHeap<T extends HeapChild>element - the element to update in the heapdo_add - if true, then element will be added to the
heap even if not already present
element was either updated or addedpublic boolean allowsDuplicates()
GenericHeap
allowsDuplicates in class GenericHeap<TimeAssociation<T extends HeapChild>>true if this heap permits duplicates,
false otherwisepublic TimeAssociation<T> removeNextTime(T element)
EventHeapTimeAssociation in the heap
that is associated with the given element parameter. That
is, of all the TimeAssociation elements that are
associated with the given parameter, the one removed has the smallest
value returned by method getTime. If no such element
exists, the heap remains unchanged and this method returns
null.
removeNextTime in class EventHeap<T extends HeapChild>element - the element to remove from the list
TimeAssociation that was removed from the
heap, or null if the list remains unchangedpublic boolean remove(TimeAssociation<T> element)
GenericHeapelement, removes
it, and returns true. If no such object exists, this
method returns false and the heap remains unchanged. Note
that if duplicates are allowed in the heap, any one of the duplicates of
element could be removed.
remove in class GenericHeap<TimeAssociation<T extends HeapChild>>element - the element to remove from the heap
true if element is removed,
false otherwisepublic void process(long curr_time)
HeapChildcurr_time, should be no less than the time at which this
timer asked to be invoked.
process in interface HeapChildcurr_time - the current time, in millisecondspublic void update(TimeAssociation<T> element)
HeapParent
update in interface HeapParent<T extends HeapChild>element - the timer to add or update in the heappublic boolean remove(T element)
HeapParentprocess method is never invoked.
remove in interface HeapParent<T extends HeapChild>element - the timer to remove from the heap
true if element is successfully
removed from the heap, false otherwise
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||