|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object
|
+--sos.dated.util.AbstractDatedObject
|
+--sos.dated.util.AbstractDatedCollection
A partial implementation of a dated collection.
To write a complete implementation of a dated collection, the programmer
only has to subclass this class and define iterator
and dateIterator.
The methods
that update the collection, such as add and clear,
will throw an
UnsupportedOperationException. To write a
modifiable implementation, the programmer should also implement add
and the
returned element iterator should implement remove.
Depending on the implementation, the programmer may wish to override certain methods to make use of implementation-specific information and to increase the methods' efficiency.
DatedCollection| Field Summary |
| Fields inherited from interface sos.dated.util.DatedObject |
MAX_DATE, MIN_DATE |
| Constructor Summary | |
protected |
AbstractDatedCollection()
No-argument constructor available only to subclasses. |
| Method Summary | |
Dates |
add(java.lang.Object value,
java.util.Date from,
java.util.Date to)
Adds the specified element to this collection for the specified date range (optional operation). |
Dates |
addAll(DatedCollection datedCollection)
Adds a dated collection of elements to this dated collection (optional operation). |
void |
clear(java.util.Date from,
java.util.Date to)
Removes all elements from this dated collection for the specified dates (optional operation). |
boolean |
contains(java.lang.Object value,
java.util.Date date)
Returns true if this collection contains the specified element
on the specified date. |
boolean |
containsAll(DatedCollection datedCollection)
Returns true if this dated collection contains all elements of
the specified collection. |
boolean |
containsThroughout(java.lang.Object value,
java.util.Date from,
java.util.Date to)
Returns true if this collection contains the specified element
throughout the specified date range. |
abstract DateIterator |
dateIterator(java.util.Date date)
Returns an iterator of the date ranges of when this dated object has changed, starting at the range that contains the specified date. |
boolean |
excludesThroughout(java.lang.Object value,
java.util.Date from,
java.util.Date to)
Returns true if this collection does not contain the specified
element at any date within the specified date range. |
boolean |
hasSizeThroughout(int size,
java.util.Date from,
java.util.Date to)
Returns true if the number of elements in this collection is
greater than or equal to the specified size throughout the specified
date range. |
boolean |
isEmpty(java.util.Date date)
Returns true if this collection contains no elements on the
specified date. |
boolean |
isEmptyThroughout(java.util.Date from,
java.util.Date to)
Returns true if this collection contains no elements throughout the
specified date range. |
abstract Iterator |
iterator(java.util.Date date)
Returns an iterator over the elements of this dated collection at the specified date. |
Dates |
remove(java.lang.Object value,
java.util.Date from,
java.util.Date to)
Removes an instance of the specified element from this collection for the specified date range (optional operation). |
Dates |
removeAll(DatedCollection datedCollection)
Removes the elements in this collection that are contained in the specified collection (optional operation). |
Dates |
retainAll(DatedCollection datedCollection)
Retains in this dated collection only the the elements in the specified collection (optional operation). |
int |
size(java.util.Date date)
Returns the number of elements in this collection at the specified date. |
java.lang.Object[] |
toArray(java.util.Date date)
Moves the elements of this dated collection at the specified date to a newly created array. |
java.lang.Object[] |
toArray(java.lang.Object[] a,
java.util.Date date)
Moves the elements of this dated collection at the specified date either to the specified array or to a new array with the same type as the specified array. |
java.lang.String |
toString(java.util.Date date)
Returns a string representation of this dated object at the specified date. |
| Methods inherited from class sos.dated.util.AbstractDatedObject |
dateIterator, equals, equals, hashCode, hashCode, toString |
| Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface sos.dated.util.DatedObject |
dateIterator, equals, equals, hashCode, hashCode |
| Constructor Detail |
protected AbstractDatedCollection()
| Method Detail |
public Dates add(java.lang.Object value,
java.util.Date from,
java.util.Date to)
This implementation throws an UnsupportedOperationException.
add in interface DatedCollectionvalue - element to addfrom - starting date at which the element should be addedto - ending date at which the element should be added
java.lang.NullPointerException - if from or to is null
java.lang.UnsupportedOperationException - if this collection does not support addpublic Dates addAll(DatedCollection datedCollection)
The returned value indicates when this dated collection changed as a result of the call and is applicable only for the specified date range. It may be read-only, and it is not tied to this dated collection.
This implementation provides a generic implementation. It iterates through the dates of the specified collection, invoking add for each element in the collection at a date.
A subclass that can implement this method more efficiently should override this method.
addAll in interface DatedCollectiondatedCollection - elements to add
java.lang.NullPointerException - if datedCollection is null
public void clear(java.util.Date from,
java.util.Date to)
The returned value indicates when this dated collection changed as a result of the call and is applicable only for the specified date range. It may be read-only, and it is not tied to this dated collection.
This implementation repeatedly invokes remove
on the iterator, while iterating
through the elements at each date within the specified range.
clear in interface DatedCollectionfrom - date to start clearing the collection, inclusiveto - date to finish clearing the collection, exclusive
java.lang.NullPointerException - if from or to is null
java.lang.IllegalArgumentException - if from does not precede to
public boolean contains(java.lang.Object value,
java.util.Date date)
true if this collection contains the specified element
on the specified date.
This implementation iterates through the elements at the specified
date and returns true if it finds the specified value.
contains in interface DatedCollectionvalue - element whose presence is to be testeddate - date at which this collection is to be queried
true if this collection contains the specified element
on the specified date
java.lang.NullPointerException - if date is nullpublic boolean containsAll(DatedCollection datedCollection)
true if this dated collection contains all elements of
the specified collection.
This implementation invokes containsThroughout on each element
and date range in the specified dated collection.
containsAll in interface DatedCollectiondatedCollection - elements and date to test for containment
true if this dated collection contains all elements of
the specified collection
java.lang.NullPointerException - if datedCollection is null
public boolean containsThroughout(java.lang.Object value,
java.util.Date from,
java.util.Date to)
true if this collection contains the specified element
throughout the specified date range.
This implementation iterates through each element at the dates within
the specified range, invoking contains.
containsThroughout in interface DatedCollectionvalue - element whose presence is to be testedfrom - starting date at which containment should be testedto - ending date at which containment should be tested
true if this collection contains the specified element
throughout the specified date range
java.lang.NullPointerException - if from or to is null
java.lang.IllegalArgumentException - if from does not precede topublic abstract DateIterator dateIterator(java.util.Date date)
DatedObjectnextFrom returns the
same date as previousTo.
Passing MAX_DATE as the argument will return an iterator positioned
at the end of the sequence.
dateIterator in interface DatedObjectdateIterator in class AbstractDatedObjectdate - date to position the iteration
public boolean excludesThroughout(java.lang.Object value,
java.util.Date from,
java.util.Date to)
true if this collection does not contain the specified
element at any date within the specified date range.
This implementation iterates through each element at the dates within
the specified range, invoking contains.
excludesThroughout in interface DatedCollectionvalue - element whose presence is to be testedfrom - starting date (inclusive) at which exclusion should be testedto - ending date (exclusive) at which exclusion should be tested
true if this collection does not contain value
at any date between from and to
java.lang.NullPointerException - if from or to is null
java.lang.IllegalArgumentException - if from does not precede to
public boolean hasSizeThroughout(int size,
java.util.Date from,
java.util.Date to)
true if the number of elements in this collection is
greater than or equal to the specified size throughout the specified
date range.
This implementation iterates through the dates between from
and to, invoking size at each date. If a returned
size is less than the parameter size, it returns false.
hasSizeThroughout in interface DatedCollectionsize - number of elements in questionfrom - starting date at which the size is to be comparedto - ending date at which the size is to be compared
true if this collection has at least the specified size
throughout the specified date range.
java.lang.NullPointerException - if from or to is null
java.lang.IllegalArgumentException - if size < 0 or if from
does not precede topublic boolean isEmpty(java.util.Date date)
true if this collection contains no elements on the
specified date.
This implementation returns true if size( t )
returns 0.
isEmpty in interface DatedCollectiondate - date at which this collection is to be queried
true if this collection contains no elements on the
specified date
java.lang.NullPointerException - if date is null
public boolean isEmptyThroughout(java.util.Date from,
java.util.Date to)
true if this collection contains no elements throughout the
specified date range.
This implementation invokes isEmpty at each date within
the specified range.
isEmptyThroughout in interface DatedCollectionfrom - starting date at which this collection is to be queriedto - ending date at which this collection is to be queried
true if this collection contains no elements throughout the
specified date range.
java.lang.NullPointerException - if from or to is null
java.lang.IllegalArgumentException - if from does not precede topublic abstract Iterator iterator(java.util.Date date)
DatedCollectionUnsupportedOperationException in its remove
method because a date range is required to remove an element from
this dated collection.
iterator in interface DatedCollectiondate - date at which to iterate through the elements
public Dates remove(java.lang.Object value,
java.util.Date from,
java.util.Date to)
The returned value indicates when this dated collection changed as a result of the call and is applicable only for the specified date range. It may be read-only, and it is not tied to this dated collection.
This implementation iterates through the elements at each date between
from and to and invokes remove on the
iterator at the first occurrence of value.
remove in interface DatedCollectionvalue - element to removefrom - starting date at which the element should be removedto - ending date at which the element should be removed
java.lang.IllegalArgumentException - if from does not precede to
java.lang.NullPointerException - if from or to is null
java.lang.UnsupportedOperationException - if this collection does not support removepublic Dates removeAll(DatedCollection datedCollection)
The returned value indicates when this dated collection changed as a result of the call and is applicable only for the specified date range. It may be read-only, and it is not tied to this dated collection.
This implementation iterates over the dates of both this collection and the specified collection. gathering dates in a sorted set. Then, for each date in the set, it determines which elements to remove from this collection, by iterating through this collection's elements and seeing if the element is contained in the specified collection. Last, it removes the elements found in the previous step.
A subclass that can implement this method more efficiently should override this method.
removeAll in interface DatedCollectiondatedCollection - elements and date ranges to remove
java.lang.NullPointerException - if datedCollection is nullpublic Dates retainAll(DatedCollection datedCollection)
The returned value indicates when this dated collection changed as a result of the call and is applicable only for the specified date range. It may be read-only, and it is not tied to this dated collection.
This implemenation iterates over the dates of both this collection and the specified collection. gathering dates in a sorted set. Then, for each date in the set, it determines which elements to remove from this collection, by iterating through this collection's elements and seeing if the element is not contained in the specified collection. Last, it removes the elements found in the previous step.
A subclass that can implement this method more efficiently should override this method.
retainAll in interface DatedCollectiondatedCollection - elements and date ranges to remove
java.lang.NullPointerException - if datedCollection is nullpublic int size(java.util.Date date)
This implementation iterates through the elements at the specified date, counting the elements as it goes.
A subclass that can determine the size of its collection more efficiently should override this method.
size in interface DatedCollectiondate - date at which this collection is to be queried
java.lang.NullPointerException - if date is nullpublic java.lang.Object[] toArray(java.util.Date date)
This implementation first constructs a new Object array with the size of the collection at the specified date. Then it iterates through the elements at the date, appending them to the array as it goes.
toArray in interface DatedCollectiondate - date of elements in this collection
java.lang.NullPointerException - if date is null
public java.lang.Object[] toArray(java.lang.Object[] a,
java.util.Date date)
This implementation constructs an array of the same type of a
if a is not large enough to hold all of the elements. It then
fills the array as it iterates through the elements.
toArray in interface DatedCollectiona - array to hold the elements, if possibledate - date of elements in this collection
java.lang.NullPointerException - if date is nullpublic java.lang.String toString(java.util.Date date)
This implementation uses a StringBuffer to generate the string. It first appends a "[". Then, for each element e in this collection at the specified date, it appends String.valueOf( e ), separating each element with ", ". Last, it appends a "]".
toString in interface DatedObjecttoString in class AbstractDatedObjectdate - to which the string should correspond
java.lang.NullPointerException - if date is null
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||