T
- Type of the data.public class TimeSpanMap<T> extends Object
Modifier and Type | Class and Description |
---|---|
static class |
TimeSpanMap.Span<S>
Holder for one time span.
|
static class |
TimeSpanMap.Transition<S>
Class holding transition times.
|
Constructor and Description |
---|
TimeSpanMap(T entry)
Create a map containing a single object, initially valid throughout the timeline.
|
Modifier and Type | Method and Description |
---|---|
void |
addValidAfter(T entry,
AbsoluteDate earliestValidityDate)
Add an entry valid after a limit date.
|
void |
addValidBefore(T entry,
AbsoluteDate latestValidityDate)
Add an entry valid before a limit date.
|
TimeSpanMap<T> |
extractRange(AbsoluteDate start,
AbsoluteDate end)
Extract a range of the map.
|
void |
forEach(Consumer<T> action)
Performs an action for each element of map.
|
T |
get(AbsoluteDate date)
Get the entry valid at a specified date.
|
TimeSpanMap.Span<T> |
getSpan(AbsoluteDate date)
Get the time span containing a specified date.
|
NavigableSet<TimeSpanMap.Transition<T>> |
getTransitions()
Get an unmodifiable view of the sorted transitions.
|
public TimeSpanMap(T entry)
The real validity of this first entry will be truncated as other
entries are either added before
it or added after
it.
entry
- entry (initially valid throughout the timeline)public void addValidBefore(T entry, AbsoluteDate latestValidityDate)
As an entry is valid, it truncates the validity of the neighboring entries already present in the map.
The transition dates should be entered only once, either
by a call to this method or by a call to addValidAfter(Object,
AbsoluteDate)
. Repeating a transition date will lead to unexpected
result and is not supported.
Using addValidBefore(entry, t) will make 'entry' valid in ]-∞, t[ (note the open bracket).
entry
- entry to addlatestValidityDate
- date before which the entry is valid
(must be different from all dates already used for transitions)public void addValidAfter(T entry, AbsoluteDate earliestValidityDate)
As an entry is valid, it truncates the validity of the neighboring entries already present in the map.
The transition dates should be entered only once, either
by a call to this method or by a call to addValidBefore(Object,
AbsoluteDate)
. Repeating a transition date will lead to unexpected
result and is not supported.
Using addValidAfter(entry, t) will make 'entry' valid [t, +∞[ (note the closed bracket).
entry
- entry to addearliestValidityDate
- date after which the entry is valid
(must be different from all dates already used for transitions)public T get(AbsoluteDate date)
date
- date at which the entry must be validpublic TimeSpanMap.Span<T> getSpan(AbsoluteDate date)
date
- date belonging to the desired time spanpublic TimeSpanMap<T> extractRange(AbsoluteDate start, AbsoluteDate end)
The object returned will be a new independent instance that will contain only the transitions that lie in the specified range.
Consider for example a map containing objects O₀ valid before t₁, O₁ valid
between t₁ and t₂, O₂ valid between t₂ and t₃, O₃ valid between t₃ and t₄,
and O₄ valid after t₄. then calling this method with a start
date between t₁ and t₂ and a end
date between t₃ and t₄
will result in a new map containing objects O₁ valid before t₂, O₂
valid between t₂ and t₃, and O₃ valid after t₃. The validity of O₁
is therefore extended in the past, and the validity of O₃ is extended
in the future.
start
- earliest date at which a transition is included in the range
(may be set to AbsoluteDate.PAST_INFINITY
to keep all early transitions)end
- latest date at which a transition is included in the r
(may be set to AbsoluteDate.FUTURE_INFINITY
to keep all late transitions)public NavigableSet<TimeSpanMap.Transition<T>> getTransitions()
Copyright © 2002-2021 CS GROUP. All rights reserved.