Interface LogProperty.ValidatedResult<T>

Type Parameters:
T - property type.
All Superinterfaces:
LogProperty.Result<T>
All Known Subinterfaces:
LogProperty.RequiredResult<T>, LogProperty.Result.Success<T>
All Known Implementing Classes:
LogProperty.Result.Error, LogProperty.Result.Missing
Enclosing interface:
LogProperty

A LogProperty.Result that is safe to pull a value out of - either because it can never actually be missing (LogProperty.RequiredResult: a LogProperty.Result.Success or an LogProperty.Result.Error, both already resolved one way or the other) or because a caller has explicitly acknowledged the possibility of a still-LogProperty.Result.Missing result by running it through LogProperty.Result.validate(Validator), LogProperty.Result.validateIfError(Validator), or LogProperty.Result.validateNow(Class).

LogProperty.Result itself deliberately does not declare value()/ valueOrNull()/optional() - a bare LogProperty.Result returned by LogProperty.ofString() and friends forces a caller through one of those validation paths before it can pull a value out, instead of blindly calling value() on a result that might still be LogProperty.Result.Missing.