/*****************************************************************************
* Limpet - the Lightweight InforMation ProcEssing Toolkit
* http://limpet.info
*
* (C) 2015-2016, Deep Blue C Technologies Ltd
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the Eclipse Public License v1.0
* (http://www.eclipse.org/legal/epl-v10.html)
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*****************************************************************************/
package info.limpet;
import java.util.List;
/** encapsulation of some change to data
*
* @author ian
*
*/
public interface ICommand<T extends IStoreItem> extends IChangeListener, IStoreItem
{
String getDescription();
void execute();
void undo();
void redo();
boolean canUndo();
boolean canRedo();
List<T> getOutputs();
List<T> getInputs();
boolean getDynamic();
void setDynamic(boolean dynamic);
String NEW_DATASET_MESSAGE = "Provide name for new dataset";
}