Package ch.qos.logback.core.spi

## Interface FilterAttachable<E>

All Known Subinterfaces:
  `Appender<E>`

All Known Implementing Classes:
  `AbstractServerSocketAppender`, `AbstractSocketAppender`, `AbstractSSLSocketAppender`, `AccessContext`, `AppenderBase`, `AsyncAppender`, `AsyncAppenderBase`, `ConsoleAppender`, `CyclicBufferAppender`, `FileAppender`, `FilterAttachableImpl`, `ListAppender`, `LogbackValve`, `NOPAppender`, `OutputStreamAppender`, `RequestLogImpl`, `RollingFileAppender`, `ServerSocketAppender`, `ServerSocketAppender`, `SiftingAppender`, `SiftingAppender`, `SiftingAppenderBase`, `SMTPAppender`, `SMTPAppender`, `SMTPAppenderBase`, `SocketAppender`, `SocketAppender`, `SSLServerSocketAppender`, `SSLServerSocketAppender`, `SSLServerSocketAppenderBase`, `SSLSocketAppender`, `SSLSocketAppender`, `SyslogAppender`, `SyslogAppenderBase`, `UnsynchronizedAppenderBase`

    public interface FilterAttachable<E>

Interface for attaching filters to objects.

Author:
  Ceki Gülcü

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `addFilter​(Filter<E> newFilter)` Add a filter.
`void` `clearAllFilters()`
`java.util.List<Filter<E>>` `getCopyOfAttachedFiltersList()` Get a copy of all the filters contained within this FilterAttachable object.
`FilterReply` `getFilterChainDecision​(E event)` Loop through the filters in the chain.

### Method Detail

#### addFilter

    void addFilter​(Filter<E> newFilter)

Add a filter.

#### clearAllFilters

    void clearAllFilters()

#### getCopyOfAttachedFiltersList

    java.util.List<Filter<E>> getCopyOfAttachedFiltersList()

Get a copy of all the filters contained within this FilterAttachable object.

Returns:
  all attached filters as a list

#### getFilterChainDecision

    FilterReply getFilterChainDecision​(E event)

Loop through the filters in the chain. As soon as a filter decides on ACCEPT or DENY, then that value is returned. If all of the filters return NEUTRAL, then NEUTRAL is returned.