package Sequenic.T2ext.Selection; import java.util.HashSet; import java.util.Set; import Sequenic.T2.Coverage.BasicPath; import Sequenic.T2.Seq.Trace; import Sequenic.T2ext.Instrumenter.ObservedPath; public class MarginalSelector { private final Set obsPaths = new HashSet(); private final static boolean debug = false; /** * Returns true if this path has not been encountered before. */ public boolean select(ObservedPath p) { if(debug) { if(!obsPaths.contains(p.getEqObject())) System.out.print("ORIGINAL PATH: "+p.getMethodUname() + ": " +p.getNodes()+"\n"); else if(Math.random()<0.01) System.out.println(p.getMethodUname() + ": " +p.getNodes()); } return obsPaths.add(p.getEqObject()); } public boolean select(BasicPath p) { return obsPaths.add(p); } public boolean select(Trace t) { boolean s = false; for(BasicPath p : t.coverage()) s |= select(p); return s; } }