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 }