- Type Parameters:
T
- the type of the wrapped value
- All Superinterfaces:
Consumer<T>
,EventObserver<T>
,Supplier<T>
,ValueObserver<T>
- All Known Subinterfaces:
ComponentValue<T,
,C> PropertyValue<T>
,State
,ValueSet<T>
- All Known Implementing Classes:
AbstractComponentValue
,AbstractTextComponentValue
,AbstractValue
An observable wrapper for a value.
A factory class for
Value
instances.- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic enum
Specifies when a Value instance notifies its listeners.static interface
AValue.Validator
forValue
s. -
Method Summary
Modifier and TypeMethodDescriptionvoid
Sets the valueboolean
addValidator
(Value.Validator<T> validator) Adds a validator to thisValue
.void
Creates a bidirectional link between this and the given original value, so that changes in one are reflected in the other.void
link
(ValueObserver<T> originalValue) Creates a unidirectional link between this value and the given original value observer, so that changes in the original value are reflected in this one.observer()
Returns aValueObserver
notified each time this value changes.boolean
removeValidator
(Value.Validator<T> validator) Removes the given validator from this valueboolean
Sets the value.void
Unlinks this value from the given original valuevoid
unlink
(ValueObserver<T> originalValue) Unlinks this value from the given original value observervoid
Validate the given value using all validatorsstatic <T> Value<T>
value()
Creates a newValue
instance, wrapping a null initial value, usingValue.Notify.WHEN_CHANGED
.static <T> Value<T>
value
(Value.Notify notify) Creates a newValue
instance, wrapping a null initial valuestatic <T> Value<T>
value
(T initialValue) Creates a newValue
instance, usingValue.Notify.WHEN_CHANGED
.static <T> Value<T>
value
(T initialValue, Value.Notify notify) Creates a newValue
instancestatic <T> Value<T>
value
(T initialValue, T nullValue) Creates a newValue
instance, usingValue.Notify.WHEN_CHANGED
.static <T> Value<T>
value
(T initialValue, T nullValue, Value.Notify notify) Creates a newValue
instanceMethods inherited from interface is.codion.common.event.EventObserver
addDataListener, addListener, addWeakDataListener, addWeakListener, removeDataListener, removeListener, removeWeakDataListener, removeWeakListener
Methods inherited from interface is.codion.common.value.ValueObserver
equalTo, isNotNull, isNull, notEqualTo, nullable, optional
-
Method Details
-
accept
Sets the value- Specified by:
accept
in interfaceConsumer<T>
- Parameters:
value
- the value- Throws:
IllegalArgumentException
- in case the given value is invalid- See Also:
-
set
Sets the value. Note that if the value is equal to the current value according toObjects.equals(java.lang.Object, java.lang.Object)
the underlying value is still set, but no change event is triggered.- Parameters:
value
- the value- Returns:
- true if the underlying value changed
- Throws:
IllegalArgumentException
- in case the given value is invalid- See Also:
-
observer
ValueObserver<T> observer()Returns aValueObserver
notified each time this value changes.- Returns:
- a
ValueObserver
for this value
-
link
Creates a bidirectional link between this and the given original value, so that changes in one are reflected in the other. Note that after a call to this method this value is the same asoriginalValue
.- Parameters:
originalValue
- the original value to link this value to- Throws:
IllegalStateException
- in case the values are already linkedIllegalArgumentException
- in case the original value is not valid according to this values validators
-
unlink
Unlinks this value from the given original value- Parameters:
originalValue
- the original value to unlink from this one- Throws:
IllegalStateException
- in case the values are not linked
-
link
Creates a unidirectional link between this value and the given original value observer, so that changes in the original value are reflected in this one. Note that after a call to this method the value of this value is the same as the original value.- Parameters:
originalValue
- the original value to link this value to- Throws:
IllegalArgumentException
- in case the original value is not valid according to this values validators
-
unlink
Unlinks this value from the given original value observer- Parameters:
originalValue
- the original value to unlink
-
addValidator
Adds a validator to thisValue
. Adding the same validator again has no effect.- Parameters:
validator
- the validator- Returns:
- true if this value did not already contain the specified validator
- Throws:
IllegalArgumentException
- in case the current value is invalid according to the validator
-
removeValidator
Removes the given validator from this value- Parameters:
validator
- the validator- Returns:
- true if this value contained the specified validator
-
validate
Validate the given value using all validators- Parameters:
value
- the value to validate- Throws:
IllegalArgumentException
- in case the given value is invalid according to a validator
-
value
Creates a newValue
instance, wrapping a null initial value, usingValue.Notify.WHEN_CHANGED
.- Type Parameters:
T
- the value type- Returns:
- a Value for the given type
-
value
Creates a newValue
instance, wrapping a null initial value- Type Parameters:
T
- the value type- Parameters:
notify
- specifies when this value notifies its listeners- Returns:
- a Value for the given type
-
value
Creates a newValue
instance, usingValue.Notify.WHEN_CHANGED
.- Type Parameters:
T
- the value type- Parameters:
initialValue
- the initial value- Returns:
- a
Value
with given initial value
-
value
Creates a newValue
instance- Type Parameters:
T
- the value type- Parameters:
initialValue
- the initial valuenotify
- specifies when this value notifies its listeners- Returns:
- a
Value
with given initial value
-
value
Creates a newValue
instance, usingValue.Notify.WHEN_CHANGED
.- Type Parameters:
T
- the value type- Parameters:
initialValue
- the initial valuenullValue
- the actual value to use when the value is set to null- Returns:
- a
Value
with given initial value - Throws:
NullPointerException
- in casenullValue
is null
-
value
Creates a newValue
instance- Type Parameters:
T
- the value type- Parameters:
initialValue
- the initial valuenullValue
- the actual value to use when the value is set to nullnotify
- specifies when this value notifies its listeners- Returns:
- a
Value
with given initial value - Throws:
NullPointerException
- in casenullValue
is null
-