@StableMinor(version="12.4", sinceVersion="12.2") @FunctionalInterface public interface IMonitorValuesProvider extends Serializable
IMonitorValuesProvider
implementations
should guarantee that no unnecessary processing is performed (even more
when it is costly) in its constructor. To be more efficient, any
processing that can be postponed to
getValues(SessionConfig, IMonitorField, ITransaction)
should do so.
It is important to notice that getValues(SessionConfig, IMonitorField, ITransaction)
may be called more than once for more than one field. Thus,
implementations are highly advised to cache the results.
This interface is not considered to be thread-safe (it may be called from different threads concurrently). Implementations must guarantee thread-safety.
To ease development, AbstractMonitorValuesProvider
can be used as a base implementation.
It provides both, thread-safety and value caching.
Modifier and Type | Method and Description |
---|---|
List<? extends Serializable> |
getValues(SessionConfig sessionConfig,
IMonitorField field,
ITransaction transaction)
Returns the values for the given field.
If this value provider does not provide values for the given field, it must return null .Note that returning a null value is not the same
as returning an empty list. |
List<? extends Serializable> getValues(SessionConfig sessionConfig, IMonitorField field, ITransaction transaction) throws Exception
null
.null
value is not the same
as returning an empty list. When returning an empty list,
it is implied that the field has an explicit null
value.
When a null
value is returned, then other value providers will be
called. If a non-null
value is returned (even an empty list),
then other value providers will not be called.
It is important to notice also that the given session config is not
the session of the user that generated the monitoring event. Instead,
it is a system user
session.
As well as session config, the given transaction is not related
to the transaction that generated the event (if any).
sessionConfig
- the current session.field
- the desired field.transaction
- the current transaction.Exception
- if some error occur.LumisXP 12.4.0.200625 - Copyright © 2006–2020 Lumis EIP Tecnologia da Informação LTDA. All Rights Reserved.