Package ch.qos.logback.core.spi

# Class AppenderAttachableImpl<E>

java.lang.Object
ch.qos.logback.core.spi.AppenderAttachableImpl<E>

All Implemented Interfaces:
  `AppenderAttachable<E>`

public class AppenderAttachableImpl<E> extends Object implements AppenderAttachable<E>
A ReentrantReadWriteLock based implementation of the `AppenderAttachable` interface.

Author:
  Ceki Gülcü

## Constructor Summary

Constructors
Constructor
Description
`AppenderAttachableImpl()`

## Method Summary

Modifier and Type
Method
Description
`void`
`addAppender(Appender<E> newAppender)`
Attach an appender.
`int`
`appendLoopOnAppenders(E e)`
Call the `doAppend` method on all attached appenders.
`void`
`detachAndStopAllAppenders()`
Remove and processPriorToRemoval all previously attached appenders.
`boolean`
`detachAppender(Appender<E> appender)`
Remove the appender passed as parameter form the list of attached appenders.
`boolean`
`detachAppender(String name)`
Remove the appender with the name passed as parameter form the list of appenders.
`Appender<E>`
`getAppender(String name)`
Look for an attached appender named as `name`.
`boolean`
`isAttached(Appender<E> appender)`
Returns `true` if the specified appender is in the list of attached appenders, `false` otherwise.
`Iterator<Appender<E>>`
`iteratorForAppenders()`
Get all attached appenders as an Enumeration.

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

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

## Constructor Details

### AppenderAttachableImpl

public AppenderAttachableImpl()

## Method Details

### addAppender

public void addAppender(Appender<E> newAppender)
Attach an appender. If the appender is already in the list in won't be added again.

Specified by:
  `addAppender` in interface `AppenderAttachable<E>`

### appendLoopOnAppenders

public int appendLoopOnAppenders(E e)
Call the `doAppend` method on all attached appenders.

### iteratorForAppenders

public Iterator<Appender<E>> iteratorForAppenders()
Get all attached appenders as an Enumeration. If there are no attached appenders `null` is returned.

Specified by:
  `iteratorForAppenders` in interface `AppenderAttachable<E>`
Returns:
  Iterator An iterator of attached appenders.

### getAppender

public Appender<E> getAppender(String name)
Look for an attached appender named as `name`.

Return the appender with that name if in the list. Return null otherwise.

Specified by:
  `getAppender` in interface `AppenderAttachable<E>`

### isAttached

public boolean isAttached(Appender<E> appender)
Returns `true` if the specified appender is in the list of attached appenders, `false` otherwise.

Specified by:
  `isAttached` in interface `AppenderAttachable<E>`
Since:
  1.2

### detachAndStopAllAppenders

public void detachAndStopAllAppenders()
Remove and processPriorToRemoval all previously attached appenders.

Specified by:
  `detachAndStopAllAppenders` in interface `AppenderAttachable<E>`

### detachAppender

public boolean detachAppender(Appender<E> appender)
Remove the appender passed as parameter form the list of attached appenders.

Specified by:
  `detachAppender` in interface `AppenderAttachable<E>`

### detachAppender

public boolean detachAppender(String name)
Remove the appender with the name passed as parameter form the list of appenders.

Specified by:
  `detachAppender` in interface `AppenderAttachable<E>`