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.List; 17 18 import ch.qos.logback.core.filter.Filter; 19 20 /** 21 * Interface for attaching filters to objects. 22 * 23 * @author Ceki Gülcü 24 */ 25 public interface FilterAttachable<E> { 26 /** 27 * Add a filter. 28 */ 29 void addFilter(Filter<E> newFilter); 30 31 void clearAllFilters(); 32 33 /** 34 * Get a copy of all the filters contained within this FilterAttachable object. 35 * 36 * @return all attached filters as a list 37 */ 38 List<Filter<E>> getCopyOfAttachedFiltersList(); 39 40 /** 41 * Loop through the filters in the chain. As soon as a filter decides on ACCEPT 42 * or DENY, then that value is returned. If all of the filters return NEUTRAL, 43 * then NEUTRAL is returned. 44 */ 45 FilterReply getFilterChainDecision(E event); 46 }