Class ResultValue<T>
- java.lang.Object
-
- com.identityworksllc.iiq.common.vo.ResultValue<T>
-
- Type Parameters:
T- The type of the result value
- All Implemented Interfaces:
Supplier<T>
public class ResultValue<T> extends Object implements Supplier<T>
Represents a value along with a list of stamped log messages, supporting various log levels.This class is designed to encapsulate a result value of type T and a list of
StampedMessageobjects that record messages at different log levels (INFO, DEBUG, ERROR, TRACE, WARN). It provides methods to add messages at each log level, check if a log level is enabled, and retrieve the value or messages.The log level can be set to control which messages are recorded. Messages are only added if the current log level is at least as high as the level of the message being added.
-
-
Constructor Summary
Constructors Constructor Description ResultValue()Default constructor.ResultValue(T value, List<StampedMessage> messages, boolean valueSet)Jackson constructor for deserialization.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddebug(String message, Object... args)Adds a DEBUG level message with formatting, if DEBUG is enabled.voiddebug(Supplier<String> value)Adds a DEBUG level message using a supplier, if DEBUG is enabled.voiderror(String message, Object... args)Adds an ERROR level message with formatting, if ERROR is enabled.voiderror(Supplier<String> value)Adds an ERROR level message using a supplier, if ERROR is enabled.Tget()Returns the result value.List<StampedMessage>getMessages()Returns the list of stamped messages.TgetValue()Returns the result value.booleanhasMessages()Returns true if there are any messages.voidinfo(String message, Object... args)Adds an INFO level message with formatting, if INFO is enabled.voidinfo(Supplier<String> value)Adds an INFO level message using a supplier, if INFO is enabled.booleanisDebugEnabled()Returns true if DEBUG level messages are enabled.booleanisErrorEnabled()Returns true if ERROR level messages are enabled.booleanisInfoEnabled()Returns true if INFO level messages are enabled.booleanisTraceEnabled()Returns true if TRACE level messages are enabled.booleanisValueSet()Returns true if the result value has been set.booleanisWarnEnabled()Returns true if WARN level messages are enabled.TorElse(T other)Returns the result value, or the provided alternative if the value is not set.TorElseThrow(sailpoint.tools.GeneralException e)Returns the result value, or throws the provided exception if the value is not set.voidsetLogLevel(LogLevel logLevel)Sets the log level for this result.voidsetLogLevel(String logLevelConfig)Sets the log level based on a configuration key.voidsetValue(T value)Sets the result value.voidtrace(String message, Object... args)Adds a TRACE level message with formatting, if TRACE is enabled.voidtrace(Supplier<String> value)Adds a TRACE level message using a supplier, if TRACE is enabled.voidwarn(String message, Object... args)Adds a WARN level message with formatting, if WARN is enabled.voidwarn(Supplier<String> value)Adds a WARN level message using a supplier, if WARN is enabled.
-
-
-
Constructor Detail
-
ResultValue
public ResultValue()
Default constructor.Initializes with an empty message list and INFO log level.
-
ResultValue
public ResultValue(T value, List<StampedMessage> messages, boolean valueSet)
Jackson constructor for deserialization.- Parameters:
value- The result valuemessages- The list of stamped messagesvalueSet- Flag indicating if the value has been set
-
-
Method Detail
-
debug
public void debug(Supplier<String> value)
Adds a DEBUG level message using a supplier, if DEBUG is enabled.- Parameters:
value- The message supplier
-
debug
public void debug(String message, Object... args)
Adds a DEBUG level message with formatting, if DEBUG is enabled.- Parameters:
message- The message format stringargs- The arguments for formatting
-
error
public void error(Supplier<String> value)
Adds an ERROR level message using a supplier, if ERROR is enabled.- Parameters:
value- The message supplier
-
error
public void error(String message, Object... args)
Adds an ERROR level message with formatting, if ERROR is enabled.- Parameters:
message- The message format stringargs- The arguments for formatting
-
getMessages
public List<StampedMessage> getMessages()
Returns the list of stamped messages.- Returns:
- The list of messages
-
hasMessages
public boolean hasMessages()
Returns true if there are any messages.- Returns:
- True if messages exist, false otherwise
-
info
public void info(Supplier<String> value)
Adds an INFO level message using a supplier, if INFO is enabled.- Parameters:
value- The message supplier
-
info
public void info(String message, Object... args)
Adds an INFO level message with formatting, if INFO is enabled.- Parameters:
message- The message format stringargs- The arguments for formatting
-
isDebugEnabled
public boolean isDebugEnabled()
Returns true if DEBUG level messages are enabled.- Returns:
- True if DEBUG is enabled
-
isErrorEnabled
public boolean isErrorEnabled()
Returns true if ERROR level messages are enabled.- Returns:
- True if ERROR is enabled
-
isInfoEnabled
public boolean isInfoEnabled()
Returns true if INFO level messages are enabled.- Returns:
- True if INFO is enabled
-
isTraceEnabled
public boolean isTraceEnabled()
Returns true if TRACE level messages are enabled.- Returns:
- True if TRACE is enabled
-
isValueSet
public boolean isValueSet()
Returns true if the result value has been set.This allows us to distinguish between a value that is unset and a value that is explicitly set to null.
- Returns:
- True if the value is set, false otherwise
-
isWarnEnabled
public boolean isWarnEnabled()
Returns true if WARN level messages are enabled.- Returns:
- True if WARN is enabled
-
orElse
public T orElse(T other)
Returns the result value, or the provided alternative if the value is not set.- Parameters:
other- The alternative value to return if the result value is not set- Returns:
- The result value or the alternative
-
orElseThrow
public T orElseThrow(sailpoint.tools.GeneralException e) throws sailpoint.tools.GeneralException
Returns the result value, or throws the provided exception if the value is not set.- Parameters:
e- The exception to throw if the result value is not set- Returns:
- The result value
- Throws:
sailpoint.tools.GeneralException- if the result value is not set
-
setLogLevel
public final void setLogLevel(LogLevel logLevel)
Sets the log level for this result.- Parameters:
logLevel- The log level to set
-
setLogLevel
public final void setLogLevel(String logLevelConfig)
Sets the log level based on a configuration key.- Parameters:
logLevelConfig- The configuration key for the log level
-
setValue
public final void setValue(T value)
Sets the result value.- Parameters:
value- The value to set
-
trace
public void trace(Supplier<String> value)
Adds a TRACE level message using a supplier, if TRACE is enabled.- Parameters:
value- The message supplier
-
trace
public void trace(String message, Object... args)
Adds a TRACE level message with formatting, if TRACE is enabled.- Parameters:
message- The message format stringargs- The arguments for formatting
-
warn
public void warn(Supplier<String> value)
Adds a WARN level message using a supplier, if WARN is enabled.- Parameters:
value- The message supplier
-
-