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,
org.apache.sis.storage.DataStore#listenersDefined 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 Localizednull 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–2015 The Apache Software Foundation. All rights reserved.