Package google.registry.model.common
Class TimedTransitionProperty<V extends Serializable>
java.lang.Object
google.registry.model.common.TimedTransitionProperty<V>
- All Implemented Interfaces:
UnsafeSerializable
,Serializable
public class TimedTransitionProperty<V extends Serializable>
extends Object
implements UnsafeSerializable
An entity property whose value transitions over time. Each value it takes on becomes active at a
corresponding instant, and remains active until the next transition occurs. At least one "start
of time" value (corresponding to
START_OF_TIME
, i.e. the Unix epoch) must be provided so
that the property will have a value for all possible times.- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Checks whether thisTimedTransitionProperty
is in a valid state, i.e.boolean
static <V extends Serializable>
TimedTransitionProperty<V> fromValueMap
(com.google.common.collect.ImmutableSortedMap<org.joda.time.DateTime, V> valueMap) Returns a new immutableTimedTransitionProperty
representing the given map ofDateTime
to valueTimedTransitionProperty
.org.joda.time.DateTime
getNextTransitionAfter
(org.joda.time.DateTime time) Returns the time of the next transition.getValueAtTime
(org.joda.time.DateTime time) Returns the value of the property that is active at the specified time.int
hashCode()
static <V extends Serializable>
TimedTransitionProperty<V> make
(com.google.common.collect.ImmutableSortedMap<org.joda.time.DateTime, V> newTransitions, com.google.common.collect.ImmutableMultimap<V, V> allowedTransitions, String allowedTransitionMapName, V initialValue, String badInitialValueErrorMessage) Validates a new set of transitions and returns the resultingTimedTransitionProperty
.int
size()
toString()
com.google.common.collect.ImmutableSortedMap
<org.joda.time.DateTime, V> Exposes the underlyingImmutableSortedMap
.static <V extends Serializable>
voidvalidateTimedTransitionMap
(NavigableMap<org.joda.time.DateTime, V> transitionMap, com.google.common.collect.ImmutableMultimap<V, V> allowedTransitions, String mapName) Validates that a transition map is not null or empty, starts atSTART_OF_TIME
, and has transitions which move from one value to another in allowed ways.static <V extends Serializable>
TimedTransitionProperty<V> withInitialValue
(V initialValue) Returns a new immutableTimedTransitionProperty
with an initial value atSTART_OF_TIME
.
-
Method Details
-
fromValueMap
public static <V extends Serializable> TimedTransitionProperty<V> fromValueMap(com.google.common.collect.ImmutableSortedMap<org.joda.time.DateTime, V> valueMap) Returns a new immutableTimedTransitionProperty
representing the given map ofDateTime
to valueTimedTransitionProperty
. -
withInitialValue
Returns a new immutableTimedTransitionProperty
with an initial value atSTART_OF_TIME
. -
make
public static <V extends Serializable> TimedTransitionProperty<V> make(com.google.common.collect.ImmutableSortedMap<org.joda.time.DateTime, V> newTransitions, com.google.common.collect.ImmutableMultimap<V, V> allowedTransitions, String allowedTransitionMapName, V initialValue, String badInitialValueErrorMessage) Validates a new set of transitions and returns the resultingTimedTransitionProperty
.- Parameters:
newTransitions
- map fromDateTime
to transition valueTimedTransitionProperty
allowedTransitions
- optional map of all possible state-to-state transitionsallowedTransitionMapName
- optional transition map description string for error messagesinitialValue
- optional initial value; if present, the first transition must have this valuebadInitialValueErrorMessage
- option error message string if the initial value is wrong
-
checkValidity
public void checkValidity()Checks whether thisTimedTransitionProperty
is in a valid state, i.e. whether it has a transition entry forSTART_OF_TIME
, and throwsIllegalStateException
if not. -
toValueMap
Exposes the underlyingImmutableSortedMap
. -
getValueAtTime
Returns the value of the property that is active at the specified time. The active value for a time beforeSTART_OF_TIME
is extrapolated to be the value that is active atSTART_OF_TIME
. -
getNextTransitionAfter
@Nullable public org.joda.time.DateTime getNextTransitionAfter(org.joda.time.DateTime time) Returns the time of the next transition. Returns null if there is no subsequent transition. -
size
public int size() -
equals
-
hashCode
public int hashCode() -
toString
-