/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package controller; import java.util.HashMap; import java.util.Stack; /** * * @author nobody */ public class CommandInvoker { private HashMap commands; private Stack undoStack; public CommandInvoker() { commands = new HashMap<>(); undoStack = new Stack<>(); } public void addCommand(Object key,CommandInterface value) { commands.put(key,value); } public void executeCommand(Object key) { commands.get(key).execute(); if (false) { undoStack.push(commands.get(key)); } } public void undoCommand() { if(!undoStack.isEmpty()) { undoStack.pop().undo(); } } }