1 /**
2 * Logback: the reliable, generic, fast and flexible logging framework.
3 * Copyright (C) 1999-2015, QOS.ch. All rights reserved.
4 *
5 * This program and the accompanying materials are dual-licensed under
6 * either the terms of the Eclipse Public License v1.0 as published by
7 * the Eclipse Foundation
8 *
9 * or (per the licensee's choosing)
10 *
11 * under the terms of the GNU Lesser General Public License version 2.1
12 * as published by the Free Software Foundation.
13 */
14 package ch.qos.logback.core.spi;
15
16 import java.util.Iterator;
17
18 import ch.qos.logback.core.Appender;
19
20 /**
21 * Interface for attaching appenders to objects.
22 *
23 * @author Ceki Gülcü
24 */
25 public interface AppenderAttachable<E> {
26 /**
27 * Add an appender.
28 */
29 void addAppender(Appender<E> newAppender);
30
31 /**
32 * Get an iterator for appenders contained in the parent object.
33 */
34 Iterator<Appender<E>> iteratorForAppenders();
35
36 /**
37 * Get an appender by name.
38 */
39 Appender<E> getAppender(String name);
40
41 /**
42 * Returns <code>true</code> if the specified appender is in list of
43 * attached, <code>false</code> otherwise.
44 */
45 boolean isAttached(Appender<E> appender);
46
47 /**
48 * Detach and processPriorToRemoval all previously added appenders.
49 */
50 void detachAndStopAllAppenders();
51
52 /**
53 * Detach the appender passed as parameter from the list of appenders.
54 */
55 boolean detachAppender(Appender<E> appender);
56
57 /**
58 * Detach the appender with the name passed as parameter from the list of
59 * appenders.
60 */
61 boolean detachAppender(String name);
62 }