/**
* Logback: the reliable, generic, fast and flexible logging framework.
* Copyright (C) 1999-2015, QOS.ch. All rights reserved.
*
* This program and the accompanying materials are dual-licensed under
* either the terms of the Eclipse Public License v1.0 as published by
* the Eclipse Foundation
*
* or (per the licensee's choosing)
*
* under the terms of the GNU Lesser General Public License version 2.1
* as published by the Free Software Foundation.
*/
package ch.qos.logback.access.spi;
import java.util.Iterator;
import java.util.List;
import ch.qos.logback.core.Appender;
import ch.qos.logback.core.ContextBase;
import ch.qos.logback.core.filter.Filter;
import ch.qos.logback.core.spi.AppenderAttachable;
import ch.qos.logback.core.spi.AppenderAttachableImpl;
import ch.qos.logback.core.spi.FilterAttachable;
import ch.qos.logback.core.spi.FilterAttachableImpl;
import ch.qos.logback.core.spi.FilterReply;
/**
* A minimal context implementation used by certain logback-access components,
* mainly SocketServer.
*
* @author Sébastien Pennec
*/
public class AccessContext extends ContextBase implements AppenderAttachable<IAccessEvent>, FilterAttachable<IAccessEvent> {
AppenderAttachableImpl<IAccessEvent> aai = new AppenderAttachableImpl<IAccessEvent>();
FilterAttachableImpl<IAccessEvent> fai = new FilterAttachableImpl<IAccessEvent>();
public void callAppenders(IAccessEvent event) {
aai.appendLoopOnAppenders(event);
}
@Override
public void addAppender(Appender<IAccessEvent> newAppender) {
aai.addAppender(newAppender);
}
@Override
public void detachAndStopAllAppenders() {
aai.detachAndStopAllAppenders();
}
@Override
public boolean detachAppender(Appender<IAccessEvent> appender) {
return aai.detachAppender(appender);
}
@Override
public boolean detachAppender(String name) {
return aai.detachAppender(name);
}
@Override
public Appender<IAccessEvent> getAppender(String name) {
return aai.getAppender(name);
}
@Override
public boolean isAttached(Appender<IAccessEvent> appender) {
return aai.isAttached(appender);
}
@Override
public Iterator<Appender<IAccessEvent>> iteratorForAppenders() {
return aai.iteratorForAppenders();
}
@Override
public void addFilter(Filter<IAccessEvent> newFilter) {
fai.addFilter(newFilter);
}
@Override
public void clearAllFilters() {
fai.clearAllFilters();
}
@Override
public List<Filter<IAccessEvent>> getCopyOfAttachedFiltersList() {
return fai.getCopyOfAttachedFiltersList();
}
@Override
public FilterReply getFilterChainDecision(IAccessEvent event) {
return fai.getFilterChainDecision(event);
}
}