package edu.stanford.nlp.util.logging; import java.util.ArrayList; import java.util.List; import edu.stanford.nlp.util.logging.Redwood.Record; /** * A log message handler designed for filtering. This is a convenience class to handle the common case of filtering messages. * * @author David McClosky */ public abstract class BooleanLogRecordHandler extends LogRecordHandler { /** * For BooleanLogRecordHandler, you should leave this alone and implement propagateRecord instead. */ public List<Record> handle(Record record) { boolean keep = propagateRecord(record); if (keep) { ArrayList<Record> records = new ArrayList<>(); records.add(record); return records; } else { return LogRecordHandler.EMPTY; } } /** * Given a record, return true if it should be propagated to later handlers. */ public abstract boolean propagateRecord(Record record); }