|
Side of Software Dated Collections Library 2.0 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object sos.dated.util.AbstractDatedObject<D> sos.dated.util.AbstractDatedMap<K,V,D>
K
- the type of keys maintained by this dated mapV
- the type of values maintained by this dated mapD
- the type of dates used by this dated mappublic abstract class AbstractDatedMap<K,V,D>
A partial implementation of a dated map. This class is designed
to make it easier to implement the DatedMap
interface. To create an unmodifiable
dated map, the client should subclass this class and implement entrySet
.
The set returned by this method should be unmodifiable as well. To
create a modifiable dated map, the client should subclass this class,
implement the put
method, and return an entry set that supports
clear
and has an iterator that supports remove
.
DatedMap
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface sos.dated.util.DatedMap |
---|
DatedMap.Entry<K,V,D> |
Constructor Summary | |
---|---|
protected |
AbstractDatedMap()
No-argument constructor available only to subclasses. |
Method Summary | |
---|---|
void |
clear(D from,
D to)
Removes all mappings from this dated map for the specified date range (optional operation). |
protected java.lang.Object |
clone()
Creates and returns a shallow copy of this object. |
boolean |
containsKey(java.lang.Object key,
D at)
Returns true if this dated map contains the specified key at the
specified date. |
boolean |
containsKeyThroughout(java.lang.Object key,
D from,
D to)
Returns true if this dated map contains the specified key
throughout the specified date range. |
boolean |
containsValue(java.lang.Object value,
D at)
Returns true if any key maps to the specified value at the
specified date. |
boolean |
containsValueThroughout(java.lang.Object value,
D from,
D to)
Returns true if a key maps to the specified value
throughout the specified date range. |
abstract DatedSet<DatedMap.Entry<K,V,D>,D> |
entrySet()
Returns a modifiable view of the mappings of this dated map. |
boolean |
equals(D at,
DatedObject<D> obj,
D objAt)
Indicates if this dated object at at is equal to
obj at objAt . |
boolean |
excludesKeyThroughout(java.lang.Object key,
D from,
D to)
Returns true if this dated map does not contain the specified key
at any date within the specified date range. |
boolean |
excludesValueThroughout(java.lang.Object value,
D from,
D to)
Returns true if no key maps to the specified value
at any date within the specified date range. |
DatedValue<V,D> |
get(java.lang.Object key)
Returns the values associated with the specified key for all dates. |
V |
get(java.lang.Object key,
D at)
Retrieves the value associated with the specified key on the specified date, or null if this dated map does not contain a mapping for the
key at that date. |
int |
hashCode(D at)
Returns a hash code value of this dated object at the specified date. |
boolean |
hasSizeThroughout(int size,
D from,
D to)
Returns true if the size of this dated map is greater than or equal to
the specified size throughout the specified date range. |
boolean |
isEmpty(D at)
Returns true if this map contains no mappings on the
specified date. |
boolean |
isEmptyThroughout(D from,
D to)
Returns true if this map contains no mappings throughout
the specified date range. |
DatedSet<K,D> |
keySet()
Returns a modifiable view of the keys of this dated map. |
DatedValue<V,D> |
put(K key,
V value,
D from,
D to)
Associates key with value in this dated map during
the specified date range (optional operation). |
void |
putAll(DatedMap<? extends K,? extends V,D> datedMap)
Places all mappings in datedMap into this dated map (optional operation). |
DatedValue<V,D> |
remove(java.lang.Object key,
D from,
D to)
Removes any values associated with the specified key in the specified date range (optional operation). |
int |
size(D at)
Returns the number of mappings in this dated map at the specified date. |
java.lang.String |
toString(D at)
Returns a string representation of this dated object at the specified date. |
DatedCollection<V,D> |
values()
Returns a view of the values mapped to keys in this dated map. |
Methods inherited from class sos.dated.util.AbstractDatedObject |
---|
dateIterator, dateIterator, equals, hashCode, toString |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface sos.dated.util.DatedObject |
---|
dateIterator, dateIterator, equals, hashCode |
Constructor Detail |
---|
protected AbstractDatedMap()
Method Detail |
---|
public void clear(D from, D to)
clear
on the dated entry set.
clear
in interface DatedMap<K,V,D>
from
- starting date (inclusive) at which this map should be clearedto
- ending date (exclusive) at which this map should be cleared
java.lang.IllegalArgumentException
- if from
does not precede to
java.lang.NullPointerException
- if any argument is null
java.lang.UnsupportedOperationException
- if the entry set throws this exception in clear
protected java.lang.Object clone() throws java.lang.CloneNotSupportedException
clone
method.
clone
in class java.lang.Object
java.lang.CloneNotSupportedException
- if this object's class does not
support the Cloneable
interface.public boolean containsKey(java.lang.Object key, D at)
true
if this dated map contains the specified key at the
specified date.
This implementation iterates through the entries at the specified date,
returning true
if the specified key is found.
containsKey
in interface DatedMap<K,V,D>
key
- key whose presence is to be testedat
- date at which this map is to be queried
true
if this dated map contains the specified key at the
specified date
java.lang.NullPointerException
- if at
is null
public boolean containsKeyThroughout(java.lang.Object key, D from, D to)
true
if this dated map contains the specified key
throughout the specified date range.
This implementation uses the date iterator to iterate through this map's
changed states, calling containsKey
at each date range.
containsKeyThroughout
in interface DatedMap<K,V,D>
key
- key whose presence is to be testedfrom
- starting date (inclusive) at which containment should be testedto
- ending date (exclusive) at which containment should be tested
true
if this dated map contains the specified key
throughout the specified date range
java.lang.IllegalArgumentException
- if from
does not precede to
java.lang.NullPointerException
- if from
or to
is null
public boolean containsValue(java.lang.Object value, D at)
true
if any key maps to the specified value at the
specified date.
This implementation iterates through the entries at the specified date
and returns true
if it encounters the specified value.
containsValue
in interface DatedMap<K,V,D>
value
- value whose presence is to be testedat
- date at which this map is to be queried
true
if any key maps to the specified value at the
specified date
java.lang.NullPointerException
- if at
is null
public boolean containsValueThroughout(java.lang.Object value, D from, D to)
true
if a key maps to the specified value
throughout the specified date range.
This implementation invokes containsValue
at the start of each
date range within from
and to
.
containsValueThroughout
in interface DatedMap<K,V,D>
value
- value whose presence is to be testedfrom
- starting date (inclusive) at which containment should be testedto
- ending date (exclusive) at which containment should be tested
true
if a key maps to the specified value
throughout the specified date range
java.lang.IllegalArgumentException
- if from
does not precede to
java.lang.NullPointerException
- if from
or to
is null
public abstract DatedSet<DatedMap.Entry<K,V,D>,D> entrySet()
DatedMap
entrySet
in interface DatedMap<K,V,D>
public boolean equals(D at, DatedObject<D> obj, D objAt)
at
is equal to
obj
at objAt
.
This implementation uses object identity to determine equality. In other
words, it returns true
if
this == obj && date.equals( objDate )Subclasses should override this method to impose a weaker equality condition.
Two maps are equivalent if they contain the same mappings. This implementation returns true if this dated map and obj are the same references and if date equals objDate. Then it returns false if obj does not implement DatedMap. Finally, it returns true if this map's entry set and obj's entry set are equivalent at these dates.
equals
in interface DatedMap<K,V,D>
equals
in interface DatedObject<D>
equals
in class AbstractDatedObject<D>
at
- date at which this object should be testedobj
- the other dated object to be compared toobjAt
- the date of the other dated object
true
if this dated object at at
equals
another dated object at objAt
java.lang.NullPointerException
- if any argument is null
public boolean excludesKeyThroughout(java.lang.Object key, D from, D to)
true
if this dated map does not contain the specified key
at any date within the specified date range.
This implementation uses the date iterator to iterate through this map's
changed states, calling containsKey
at each date range.
excludesKeyThroughout
in interface DatedMap<K,V,D>
key
- key 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 dated map does not contain key key
between from
and to
java.lang.IllegalArgumentException
- if from
does not precede to
java.lang.NullPointerException
- if if from
or to
is null
public boolean excludesValueThroughout(java.lang.Object value, D from, D to)
true
if no key maps to the specified value
at any date within the specified date range.
This implementation invokes containsValue
at the start of each
date range within from
and to
.
excludesValueThroughout
in interface DatedMap<K,V,D>
value
- value 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 no key maps to the value
at any date between from
and to
java.lang.IllegalArgumentException
- if from
does not precede to
java.lang.NullPointerException
- if from
or to
is null
public DatedValue<V,D> get(java.lang.Object key)
put
on this map. Setting
a value to null
is not equivalent to removing the key from
this map. A null
value may mean either that the key is associated with
null
or that the key is not present in this map. (This behavior
is consistent with the specification of get
in java.util.Map
).
If this map does not support put
, then set
of the
dated value will throw an UnsupportedOperationException
.
Iteration through the dates of the dated value may result in a
ConcurrentModificationException
if this map's dates are altered during
the iteration.
This implementation returns a freshly constructed DatedValue
that invokes AbstractDatedMap.this.get(K,D)
in response
to get(D)
and AbstractDatedMap.this.put(K,V,D,D)
in response to set(V,D,D)
. The date iterator that
it returns is this map's date iterator adapted to ignore dates
that do not reflect a change in the key's mapping.
get
in interface DatedMap<K,V,D>
key
- key whose values are to be returned
key
public V get(java.lang.Object key, D at)
null
if this dated map does not contain a mapping for the
key at that date.This implementation iterates through the entry set at this date, returning the associated value if the key is found.
get
in interface DatedMap<K,V,D>
key
- key whose mapping is to be retrievedat
- date at which this map is to be queried
java.lang.NullPointerException
- if at
is null
public int hashCode(D at)
o1
and o2
and two dates
d1
and d2
, if
o1.equals( d1, o2, d2 )
returns true
,
then o1.hashCode( d1 )
must equal o2.hashCode( d2 )
.
This implementation returns the identity hash code value of this dated
object.
The hash code of a DatedMap
at a date is calculated the same way as in
hashCode
of java.util.Map
.
This implementation invokes hashCode(date) on the entry set.
hashCode
in interface DatedMap<K,V,D>
hashCode
in interface DatedObject<D>
hashCode
in class AbstractDatedObject<D>
at
- date to which the hash code value should correspond
java.lang.NullPointerException
- if at
is null
public boolean hasSizeThroughout(int size, D from, D to)
true
if the size of this dated map is greater than or equal to
the specified size throughout the specified date range.
This implementation invokes hasSizeThroughout(size,from,to)
on the entry set.
hasSizeThroughout
in interface DatedMap<K,V,D>
size
- number of mappings in questionfrom
- starting date (inclusive) at which the size is to be comparedto
- ending date (exclusive) at which the size is to be compared
true
if this dated map has at least the specified size
throughout the specified date range
java.lang.IllegalArgumentException
- if size < 0
or if from
does not precede to
java.lang.NullPointerException
- if from
or to
is null
public boolean isEmpty(D at)
true
if this map contains no mappings on the
specified date.
This implementation invokes isEmpty(date)
on the entry set.
isEmpty
in interface DatedMap<K,V,D>
at
- date at which this map is to be queried
true
if this map contains no mappings on the
specified date
java.lang.NullPointerException
- if at
is null
public boolean isEmptyThroughout(D from, D to)
true
if this map contains no mappings throughout
the specified date range.
This implementation invokes isEmptyThroughout(from,to)
on the entry set.
isEmptyThroughout
in interface DatedMap<K,V,D>
from
- starting date (inclusive) at which to test for inclusionto
- ending date (exclusive) at which to test for inclusion
true
if this map contains no mappings in the
specified date range
java.lang.IllegalArgumentException
- if from
does not precede to
java.lang.NullPointerException
- if any of the parameters equal null
public DatedSet<K,D> keySet()
DatedSet
that implements clear
and has
an iterator that implements remove
. All underlying actions operate on
this map's entry set.
keySet
in interface DatedMap<K,V,D>
public DatedValue<V,D> put(K key, V value, D from, D to)
key
with value
in this dated map during
the specified date range (optional operation).
This implementation throws an UnsupportedOperationException.
put
in interface DatedMap<K,V,D>
key
- key to put in this dated mapvalue
- value to map to the keyfrom
- starting date (inclusive) at which to put the mappingto
- ending date (exclusive) at which to put the mapping
java.lang.UnsupportedOperationException
- alwayspublic void putAll(DatedMap<? extends K,? extends V,D> datedMap)
datedMap
into this dated map (optional operation).
If this dated map and the map passed in are connected in a way that the map
changes during any additions, this method is undefined. This means that this
method cannot handle this
as the parameter.
This implementation iterates through the dates of datedMap
, invoking
put
for each mapping and date range defined in datedMap
.
putAll
in interface DatedMap<K,V,D>
datedMap
- mappings to put in this dated map
java.lang.ClassCastException
- if the type of a key or value of datedMap
prevents it from being stored in this dated map
java.lang.IllegalArgumentException
- if some property of a key or value of datedMap
prevents it from being stored in this dated map
java.lang.NullPointerException
- if datedMap
is null
or if a key or value of datedMap
is null
and this dated collection
cannot hold null keys or values
java.lang.UnsupportedOperationException
- if the implementation does not support put
public DatedValue<V,D> remove(java.lang.Object key, D from, D to)
from
and to
and invokes remove
on the
iterator at the first occurrence of an entry with the key key
.
remove
in interface DatedMap<K,V,D>
key
- key indicating which mapping to removefrom
- starting date (inclusive) at which to remove the mappingto
- ending date (exclusive) at which to remove the mapping
java.lang.ClassCastException
- if the underlying type of key
prevents it from
being removed from this dated map
java.lang.IllegalArgumentException
- if from
does not precede to
or if some property of key
prevents it from being removed from this dated map
java.lang.NullPointerException
- if from
or to
is null
or if key
is null
and this dated map cannot hold null keys
java.lang.UnsupportedOperationException
- if entry set's iterator throws this exception on removalpublic int size(D at)
size(at)
on the entry set.
size
in interface DatedMap<K,V,D>
at
- date at which to return the size
java.lang.NullPointerException
- if at
is null
public java.lang.String toString(D at)
toString(at)
on the entry set.
toString
in interface DatedObject<D>
toString
in class AbstractDatedObject<D>
at
- date to which the string should correspond
java.lang.NullPointerException
- if at
is null
public DatedCollection<V,D> values()
clear
and
has an iterator that supports remove
. All underlying actions operate on
this map's entry set.
values
in interface DatedMap<K,V,D>
|
Side of Software Dated Collections Library 2.0 |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |