S
- The type of the source of warnings.public class WarningListeners<S> extends Object implements Localized
WarningListener
instances and provides convenience methods for emitting warnings.
The convenience warning(…)
methods can build LogRecord
from an exception or from a string.
In the default implementation, all warning(…)
methods delegate to warning(LogRecord)
,
thus providing a single point that subclasses can override for intercepting all warnings.
The default behavior is:
WarningListener
is registered,
then all listeners are notified and the warning is not logged.
getLogger()
.WarningListeners
instance can be safely used by many threads without synchronization
on the part of the caller. Subclasses should make sure that any overridden methods remain safe to call
from multiple threads.WarningListener
,
DataStore.listeners
Defined in the sis-utility
module
Constructor and Description |
---|
WarningListeners(S source)
Creates a new instance with initially no listener.
|
Modifier and Type | Method and Description |
---|---|
void |
addWarningListener(WarningListener<? super S> listener)
Adds a listener to be notified when a warning occurred.
|
Locale |
getLocale()
The locale to use for formatting warning messages, or
null for the default locale. |
Logger |
getLogger()
Returns the logger where to send the warnings.
|
boolean |
hasListeners()
Returns
true if this object contains at least one listener. |
void |
removeWarningListener(WarningListener<? super S> listener)
Removes a previously registered listener.
|
void |
warning(LogRecord record)
Reports a warning represented by the given log record.
|
void |
warning(String message,
Exception exception)
Reports a warning represented by the given message and exception.
|
public WarningListeners(S source)
source
- The declared source of warnings. This is not necessarily the real source,
but this is the source that the implementor wants to declare as public API.public Locale getLocale()
null
for the default locale.
If the source
object given to the constructor implements the Localized
interface,
then this method delegates to its getLocale()
method. Otherwise this method returns null
.getLocale
in interface Localized
null
if not explicitly defined.CompoundFormat.getLocale()
public Logger getLogger()
source
object. Subclasses should override this method if they
can provide a fixed logger instance (typically a static final constant).public void warning(LogRecord record)
getLogger()
otherwise.record
- The warning as a log record.public void warning(String message, Exception exception)
message
and exception
shall be non-null.
warning(LogRecord)
method will send the record to the
logger, but without the stack trace. This is done that way because stack
traces consume lot of space in the logging files, while being considered implementation details in the context
of WarningListeners
(on the assumption that the logging message provides sufficient information).
If the stack trace is desired, then users can either:
warning(LogRecord)
directly, orwarning(LogRecord)
and invoke LogRecord.setThrown(Throwable)
explicitely, ormessage
- The message to log, or null
if none.exception
- The exception to log, or null
if none.public void addWarningListener(WarningListener<? super S> listener) throws IllegalArgumentException
Level.WARNING
.listener
- The listener to add.IllegalArgumentException
- If the given listener is already registered.public void removeWarningListener(WarningListener<? super S> listener) throws NoSuchElementException
listener
- The listener to remove.NoSuchElementException
- If the given listener is not registered.public boolean hasListeners()
true
if this object contains at least one listener.true
if this object contains at least one listener, false
otherwise.Copyright © 2010–2014 The Apache Software Foundation. All rights reserved.