package de.gaalop.tba.cfgImport.optimization.maxima; import de.gaalop.cfg.EmptyControlFlowVisitor; import de.gaalop.cfg.StoreResultNode; import de.gaalop.dfg.Variable; import java.util.LinkedList; /** * Collects all StoreResultNodes in a Control Flow Graph * @author Christian Steinmetz */ public class StoreResultNodesCollector extends EmptyControlFlowVisitor { private LinkedList<Variable> variables; public StoreResultNodesCollector() { variables = new LinkedList<Variable>(); } public LinkedList<Variable> getVariables() { return variables; } @Override public void visit(StoreResultNode node) { variables.add(node.getValue()); super.visit(node); } /** * Determines, if a variable is a store result variable * @param name The name of the variable * @return <value>true</value>, if it is a store result variable, <value>false</value> otherwise */ public boolean containsStoreResultVariableName(String name) { for (Variable var : variables) { if (var.getName().equals(name)) { return true; } } return false; } }