null functions

These functions can generate null values. When using nulls in your binding recipes, ensure that you don't generate them in-line as inputs to other functions. This will lead to errors which interrupt your test. If you must use functions that generate null values, ensure that they are the only or last function in a chain.

If you need to mark a field to be undefined, but not set to null, then use the functions which know how to yield a VALUE.UNSET, which is a sigil constant within the VirtData runtime. These functions are correctly interpreted by conformant drivers like the SQL driver so that they will avoid inject the named field into an operation if it has this special value.

NullIfCloseTo🔗

Returns null if the input value is within range of the specified value.

  • double -> NullIfCloseTo(double: compareto, double: sigma) -> Double

NullIfEmpty🔗

Yields a null if the input String is empty. Throws an error if the input String is null.

  • String -> NullIfEmpty() -> String

NullIfEq🔗

Yeilds a null if the input value is equal to the specified value.

  • long -> NullIfEq(long: compareto) -> Long

  • double -> NullIfEq(double: compareto) -> Double

NullIfGe🔗

Yields a null if the input value is greater tha or equal to the specified value.

  • long -> NullIfGe(long: compareto) -> Long

  • double -> NullIfGe(double: compareto) -> Double

NullIfGt🔗

Yields a null if the input value is greater than the specified value.

  • long -> NullIfGt(long: compareto) -> Long

  • double -> NullIfGt(double: compareto) -> Double

NullIfLe🔗

Yields a null if the input value is less than or equal to the specified value.

  • long -> NullIfLe(long: compareto) -> Long

  • double -> NullIfLe(double: compareto) -> Double

NullIfLt🔗

Yields a null if the input value is equal to the specified value.

  • double -> NullIfLt(double: compareto) -> Double

  • long -> NullIfLt(long: compareto) -> Long

NullIfNullOrEmpty🔗

Yield a null value if the input String is either null or empty.

  • String -> NullIfNullOrEmpty() -> String

NullIfWithin🔗

Yields a null if the input value is within the specified range, inclusive.

  • double -> NullIfWithin(double: min, double: max) -> Double

NullOrLoad🔗

Reads a long variable from the input, hashes and scales it to the unit interval 0.0d - 1.0d, then uses the result to determine whether to return null object or a loaded value.

  • long -> NullOrLoad(double: ratio, String: varname) -> Object

NullOrPass🔗

Reads a long variable from the thread local variable map, hashes and scales it to the unit interval 0.0d - 1.0d, then uses the result to determine whether to return a null object or the input value.

  • Object -> NullOrPass(double: ratio, String: varname) -> Object

Unset🔗

Always yields the VALUE.unset value, which signals to any consumers that the value provided should be considered undefined for any operation. This is distinct from functions which return a null, which is considered an actual value to be acted upon. It is deemed an error for any downstream user of this library to do anything with VALUE.unset besides explicitly acting like it wasn't provided. That is the point of VALUE.unset. The purpose of having such a value in this library is to provide a value type to help bridge between functional flows and imperative run-times. Without such a value, it would be difficult to simulate value streams in which some of the time values are set and other times they are not.

  • long -> Unset() -> Object

UnsetIfCloseTo🔗

Yield VALUE.unset if the input value is close to the specified value by the sigma threshold. Otherwise, pass the input value along.

  • double -> UnsetIfCloseTo(double: compareto, double: sigma) -> Object

UnsetIfEmpty🔗

Yield VALUE.unset if the input String is empty. Throws an error if the input value is null. Otherwise, passes the original value along.

  • String -> UnsetIfEmpty() -> Object

UnsetIfEq🔗

Yield UNSET.vale if the input value is equal to the specified value. Otherwise, pass the input value along.

  • double -> UnsetIfEq(double: compareto) -> Double

  • long -> UnsetIfEq(long: compareto) -> Object

UnsetIfGe🔗

Yield VALUE.unset if the input value is greater than or equal to the specified value. Otherwise, pass the input value along.

  • long -> UnsetIfGe(long: compareto) -> Object

  • double -> UnsetIfGe(double: compareto) -> Object

UnsetIfGt🔗

Yield UNSET.value if the input value is greater than the specified value. Otherwise, pass the input value along.

  • long -> UnsetIfGt(long: compareto) -> Object

  • double -> UnsetIfGt(double: compareto) -> Object

UnsetIfLe🔗

Yield VALUE.unset if the input value is less than or equal to the specified value. Otherwise, pass the value along.

  • long -> UnsetIfLe(long: compareto) -> Object

  • double -> UnsetIfLe(double: compareto) -> Object

UnsetIfLt🔗

Yield VALUE.unset if the provided value is less than the specified value, otherwise, pass the original value;

  • long -> UnsetIfLt(long: compareto) -> Object

  • double -> UnsetIfLt(double: compareto) -> Object

UnsetIfNullOrEmpty🔗

Yields UNSET.value if the input value is null or empty. Otherwise, passes the original value along.

  • String -> UnsetIfNullOrEmpty() -> Object

UnsetIfStringEq🔗

Yields UNSET.value if the input value is equal to the specified value. Throws an error if the input value is null. Otherwise, passes the original value along.

  • String -> UnsetIfStringEq(String: compareto) -> Object

UnsetIfStringNe🔗

Yields UNSET.value if the input String is not equal to the specified String value. Throws an error if the input value is null. Otherwise, passes the original value along.

  • String -> UnsetIfStringNe(String: compareto) -> Object

UnsetIfWithin🔗

Yields UNSET.value if the input value is within the specified range, inclusive. Otherwise, passes the original value along.

  • double -> UnsetIfWithin(double: min, double: max) -> Object

UnsetOrLoad🔗

Reads a long variable from the input, hashes and scales it to the unit interval 0.0d - 1.0d, then uses the result to determine whether to return UNSET.value or a loaded value.

  • long -> UnsetOrLoad(double: ratio, String: varname) -> Object

UnsetOrPass🔗

Reads a long variable from the thread local variable map, hashes and scales it to the unit interval 0.0d - 1.0d, then uses the result to determine whether to return UNSET.value or the input value.

  • Object -> UnsetOrPass(double: ratio, String: varname) -> Object