/** * It creates a CPviz trace generator around proper select choice point object. * * @param search it specifies search method used for depth-first-search. * @param select it specifies how the select choice points are being generated. * @param vars it specifies variables which are being traced. * @param treeFilename it specifies the file name for search tree trace (default tree.xml). * @param visFilename it specifies the file name for variable trace (default vis.xml). */ public TraceGenerator( Search<T> search, SelectChoicePoint<T> select, Var[] vars, String treeFilename, String visFilename) { this(select, vars, treeFilename, visFilename); if (search.getConsistencyListener() == null) { search.setConsistencyListener(this); } else { ConsistencyListener current = search.getConsistencyListener(); search.setConsistencyListener(this); setChildrenListeners(current); } if (search.getExitChildListener() == null) { search.setExitChildListener(this); } else { ExitChildListener<T> current = search.getExitChildListener(); search.setExitChildListener(this); setChildrenListeners(current); } if (search.getExitListener() == null) { search.setExitListener(this); } else { ExitListener current = search.getExitListener(); search.setExitListener(this); setChildrenListeners(current); } }