1 package jimm.datavision.gui.cmd; 2 import jimm.datavision.Nameable; 3 4 /** 5 * A Command knows how to perform an action, undo it, and redo it. It has 6 * a name that can be used for menu items. 7 * <p> 8 * The concrete implementor <code>CommandAdapter</code> treats the name 9 * as immutable; the <code>setName</code> method does nothing. 10 * 11 * @author Jim Menard, <a HREF="mailto:jimm@io.com">jimm@io.com</a> 12 */ 13 public interface Command extends Nameable { 14 15 abstract public void perform(); 16 abstract public void undo(); 17 abstract public void redo(); 18 19 } 20