package core.filters; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import entities.LogEntry; public class ChainedLogFilter implements LogFilter { private List<LogFilter> filters; public ChainedLogFilter(List<LogFilter> filters) { this.filters = filters; } public ChainedLogFilter(LogFilter...filters) { this.filters = new ArrayList<LogFilter>(Arrays.asList(filters)); } public void addFilter(LogFilter filter) { this.filters.add(filter); } @Override public boolean accept(LogEntry log) { boolean result = true; for (LogFilter filter : this.filters) { if (filter == this) { continue; } result &= filter.accept(log); if (!result) { return false; } } return true; } }