public class DelegatingSignalHandler extends AbstractSignalHandler
Modifier and Type | Field and Description |
---|---|
private java.util.Map<Signal,java.util.Set<SignalHandler>> |
handlers
Holds the registered signal handlers.
|
private static org.slf4j.Logger |
logger
Log signals processing.
|
private java.util.List<Signal> |
received
List holding received signals.
|
Constructor and Description |
---|
DelegatingSignalHandler()
Create a new delegating signal handler.
|
DelegatingSignalHandler(SignalHandler... handlers)
Create a new delegating signal handler and register the
given handlers as delegates.
|
Modifier and Type | Method and Description |
---|---|
java.util.List<Signal> |
getReceivedSignals()
Get the list of received signals.
|
java.util.Collection<Signal> |
getSupportedSignals()
Get all signals that are supported by this handler.
|
void |
handleSignal(Signal signal)
Handler the given signal by invoking
SignalHandler.handleSignal(Signal)
on each registered signal handler. |
boolean |
hasReceived(Signal signal)
Check if the given signal has been received by this signal handler.
|
boolean |
hasReceivedSignals()
Check if any signals has been received by this handler.
|
void |
registerSignalHandler(SignalHandler handler)
Register a signal handler to delegate to.
|
boolean |
supports(Signal signal)
Check if at least one handler has been registered for the given signal.
|
void |
unregisterSignalHandler(SignalHandler handler)
Unregister a signal handler.
|
addSignal, removeSignal
private static final org.slf4j.Logger logger
private java.util.Map<Signal,java.util.Set<SignalHandler>> handlers
private final java.util.List<Signal> received
public DelegatingSignalHandler()
registerSignalHandler(SignalHandler)
.public DelegatingSignalHandler(SignalHandler... handlers)
handlers
- An array with signal handlers that signal should
be delegated topublic java.util.Collection<Signal> getSupportedSignals()
SignalHandler
getSupportedSignals
in interface SignalHandler
getSupportedSignals
in class AbstractSignalHandler
public boolean supports(Signal signal)
supports
in interface SignalHandler
supports
in class AbstractSignalHandler
signal
- The signal to checkpublic void handleSignal(Signal signal)
SignalHandler.handleSignal(Signal)
on each registered signal handler. The order of the invokation is not
predictable.signal
- The signal to handleUnsupportedSignalException
- If no handler has been registered for the
given signalpublic void registerSignalHandler(SignalHandler handler)
handler
- The handler to registerpublic void unregisterSignalHandler(SignalHandler handler)
handler
- The handler to unregisterpublic boolean hasReceivedSignals()
public java.util.List<Signal> getReceivedSignals()
public boolean hasReceived(Signal signal)
signal
- The signal to check for