Package org.springframework.context.event

# Class SourceFilteringListener

java.lang.Object
org.springframework.context.event.SourceFilteringListener

All Implemented Interfaces:
  `EventListener`, `ApplicationListener<ApplicationEvent>`, `GenericApplicationListener`, `SmartApplicationListener`, `org.springframework.core.Ordered`

public class SourceFilteringListener extends Object implements GenericApplicationListener
`ApplicationListener` decorator that filters events from a specified event source, invoking its delegate listener for matching `ApplicationEvent` objects only.

Can also be used as base class, overriding the `onApplicationEventInternal(org.springframework.context.ApplicationEvent)` method instead of specifying a delegate listener.

Since:
  2.0.5
Author:
  Juergen Hoeller, Stephane Nicoll

## Field Summary

### Fields inherited from interface org.springframework.core.Ordered

`HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`SourceFilteringListener(Object source)`
Create a SourceFilteringListener for the given event source, expecting subclasses to override the `onApplicationEventInternal(org.springframework.context.ApplicationEvent)` method (instead of specifying a delegate listener).
``
`SourceFilteringListener(Object source, ApplicationListener<?> delegate)`
Create a SourceFilteringListener for the given event source.

## Method Summary

Modifier and Type
Method
Description
`String`
`getListenerId()`
Return an optional identifier for the listener.
`int`
`getOrder()`
Determine this listener's order in a set of listeners for the same event.
`void`
`onApplicationEvent(ApplicationEvent event)`
Handle an application event.
`protected void`
`onApplicationEventInternal(ApplicationEvent event)`
Actually process the event, after having filtered according to the desired event source already.
`boolean`
`supportsEventType(org.springframework.core.ResolvableType eventType)`
Determine whether this listener actually supports the given event type.
`boolean`
`supportsSourceType(Class<?> sourceType)`
Determine whether this listener actually supports the given source type.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.springframework.context.ApplicationListener

`supportsAsyncExecution`

### Methods inherited from interface org.springframework.context.event.GenericApplicationListener

`supportsEventType`

## Constructor Details

### SourceFilteringListener

public SourceFilteringListener(Object source, ApplicationListener<?> delegate)
Create a SourceFilteringListener for the given event source.

Parameters:
  `source` - the event source that this listener filters for, only processing events from this source
  `delegate` - the delegate listener to invoke with event from the specified source

### SourceFilteringListener

protected SourceFilteringListener(Object source)
Create a SourceFilteringListener for the given event source, expecting subclasses to override the `onApplicationEventInternal(org.springframework.context.ApplicationEvent)` method (instead of specifying a delegate listener).

Parameters:
  `source` - the event source that this listener filters for, only processing events from this source

## Method Details

### onApplicationEvent

public void onApplicationEvent(ApplicationEvent event)
Description copied from interface: `ApplicationListener`
Handle an application event.

Specified by:
  `onApplicationEvent` in interface `ApplicationListener<ApplicationEvent>`
Parameters:
  `event` - the event to respond to

### supportsEventType

public boolean supportsEventType(org.springframework.core.ResolvableType eventType)
Description copied from interface: `GenericApplicationListener`
Determine whether this listener actually supports the given event type.

Specified by:
  `supportsEventType` in interface `GenericApplicationListener`
Parameters:
  `eventType` - the event type (never `null`)

### supportsSourceType

public boolean supportsSourceType(@Nullable Class<?> sourceType)
Description copied from interface: `SmartApplicationListener`
Determine whether this listener actually supports the given source type.

The default implementation always returns `true`.

Specified by:
  `supportsSourceType` in interface `SmartApplicationListener`
Parameters:
  `sourceType` - the source type, or `null` if no source

### getOrder

public int getOrder()
Description copied from interface: `SmartApplicationListener`
Determine this listener's order in a set of listeners for the same event.

The default implementation returns `Ordered.LOWEST_PRECEDENCE`.

Specified by:
  `getOrder` in interface `org.springframework.core.Ordered`
Specified by:
  `getOrder` in interface `SmartApplicationListener`

### getListenerId

public String getListenerId()
Description copied from interface: `SmartApplicationListener`
Return an optional identifier for the listener.

The default value is an empty String.

Specified by:
  `getListenerId` in interface `SmartApplicationListener`
See Also:
  - `EventListener.id()`
  - `ApplicationEventMulticaster.removeApplicationListeners(java.util.function.Predicate<org.springframework.context.ApplicationListener<?>>)`

### onApplicationEventInternal

protected void onApplicationEventInternal(ApplicationEvent event)
Actually process the event, after having filtered according to the desired event source already.

The default implementation invokes the specified delegate, if any.

Parameters:
  `event` - the event to process (matching the specified source)