package de.gaalop.tba.cfgImport.optimization;
import de.gaalop.OptimizationException;
import de.gaalop.cfg.ControlFlowGraph;
import de.gaalop.tba.Plugin;
import de.gaalop.tba.UseAlgebra;
import de.gaalop.tba.cfgImport.optimization.maxima.MaximaOptimizer;
import de.gaalop.tba.cfgImport.optimization.maxima.ProcessBuilderMaximaConnection;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* Facade class for the optimization using maxima
* @author Christian Steinmetz
*/
public class OptMaxima implements OptimizationStrategyWithModifyFlag {
private MaximaOptimizer transformer;
public OptMaxima(String commandMaxima, Plugin plugin) {
transformer = new MaximaOptimizer(new ProcessBuilderMaximaConnection(commandMaxima), plugin);
}
@Override
public boolean transform(ControlFlowGraph graph, UseAlgebra usedAlgebra) throws OptimizationException {
transformer.transformGraph(graph);
return false; // don't do a second step, if it was not necessary for other optimizations
}
}