package tirateima.controlador; import java.util.Stack; import tirateima.gui.variaveis.Variavel; /** * Remove uma variável e sua seta (se houver) do Tira-Teima * @author Vinícius * */ public class CommandRemoveVar extends Command { private Stack<Object> var_stack; public CommandRemoveVar(Stack<Object> var_stack) { this.var_stack = var_stack; } @Override public void execute(Controlador c) throws TiraTeimaLanguageException, ExecutionException { //pega o nome da variável String nome = (String)var_stack.pop(); //remove a seta se houver c.mostrador.armazenarSetaRemovida(c.mostrador.removerSeta(nome)); //remove a variável e coloca a variável em uma pilha de variáveis excluídas c.mostrador.armazenarVariavelRemovida(c.mostrador.removerVariavel(nome)); //restaura pilha var_stack.push(nome); } @Override public void revert(Controlador c) throws TiraTeimaLanguageException, ExecutionException { //restaura a última variável excluída c.mostrador.restaurarVariavelRemovida(); c.mostrador.restaurarSetaRemovida(); } }