package Sequenic.T2ext.Maintenance; import java.util.AbstractSet; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import Sequenic.T2.Seq.Trace; import Sequenic.T2.StreamTraces.TraceFilter; public abstract class Reducer extends AbstractSet implements TraceFilter { public int rejected() { return rejected; } public int accepted() { return accepted; } private boolean collectRejected = false; private boolean collectAccepted = false; private int accepted = 0; private int rejected = 0; private List traces = new ArrayList(); public void collect(boolean rejected, boolean accepted) { collectAccepted = accepted; collectRejected = rejected; } protected void collect(Trace t, boolean accept) { if(accept) { accepted++; if(collectAccepted) traces.add(t); } else { rejected++; if(collectRejected) traces.add(t); } } @Override public void clear() { traces.clear(); accepted = 0; rejected = 0; } @Override public int size() { return traces.size(); } @Override public Iterator iterator() { return traces.iterator(); } }