frepple::utils::Command Class Reference
Abstract base class for all commands. More...
#include <utils.h>

Public Types | |
enum | inheritableBool { INHERIT = -1, YES = 0, NO = 1 } |
Public Member Functions | |
Command () | |
virtual void | execute ()=0 |
Command * | getNext () const |
Command * | getPrev () const |
bool | getVerbose () const |
void | setVerbose (bool b) |
virtual void | undo () |
virtual bool | undoable () const |
virtual | ~Command () |
Static Public Attributes | |
static const MetaCategory * | metadataInstruction |
Friends | |
class | CommandList |
class | frepple::CommandMoveOperationPlan |
Detailed Description
Abstract base class for all commands.
All changes in the system state are expected to be wrapped in a command object. The execute() and undo() methods update the model.
Adhering to this principle makes it easy to trace, time and log changes appropriately.
Command objects can't be persisted.
Definition at line 3734 of file utils.h.
Member Enumeration Documentation
Constructor & Destructor Documentation
frepple::utils::Command::Command | ( | ) | [inline] |
virtual frepple::utils::Command::~Command | ( | ) | [inline, virtual] |
Member Function Documentation
virtual void frepple::utils::Command::execute | ( | ) | [pure virtual] |
This method is used to actually execute the action.
A couple of notes on how this method should be implemented by the subclasses:
- Calling the method multiple times is harmless and results in the same state change as calling it only once.
Implemented in frepple::CommandReadXMLFile, frepple::CommandReadXMLString, frepple::CommandSave, frepple::CommandSavePlan, frepple::CommandPlanSize, frepple::CommandErase, frepple::CommandCreateOperationPlan, frepple::CommandDeleteOperationPlan, frepple::CommandMoveOperationPlan, frepple::SolverMRP::SolverMRPdata, frepple::utils::CommandList, frepple::utils::CommandLoadLibrary, frepple::utils::CommandPython, and module_webservice::CommandWebservice.
Command* frepple::utils::Command::getNext | ( | ) | const [inline] |
Command* frepple::utils::Command::getPrev | ( | ) | const [inline] |
bool frepple::utils::Command::getVerbose | ( | ) | const |
Returns whether verbose output is required during the execution of the command.
Reimplemented in frepple::SolverMRP::SolverMRPdata.
Definition at line 46 of file utils/actions.cpp.
void frepple::utils::Command::setVerbose | ( | bool | b | ) | [inline] |
virtual void frepple::utils::Command::undo | ( | ) | [inline, virtual] |
This method is undoing the state change of the execute() method.
Reversing the action is not possible for all commands. Command subclasses should override the undo() and undoable() method in case they are reversible.
A couple of notes on how this method should be implemented by the subclasses:
- Calling the undo() method is harmless if the execute() hasn't been called yet.
- Calling the undo() method multiple times is harmless and results in the same state change as calling it only once.
Reimplemented in frepple::CommandPlanSize, frepple::CommandCreateOperationPlan, frepple::CommandDeleteOperationPlan, frepple::CommandMoveOperationPlan, and frepple::utils::CommandList.
virtual bool frepple::utils::Command::undoable | ( | ) | const [inline, virtual] |
Returns true if the execution of this command can be undone.
Reimplemented in frepple::CommandPlanSize, frepple::CommandCreateOperationPlan, frepple::CommandDeleteOperationPlan, frepple::CommandMoveOperationPlan, and frepple::utils::CommandList.
Friends And Related Function Documentation
friend class CommandList [friend] |
friend class frepple::CommandMoveOperationPlan [friend] |
Member Data Documentation
const MetaCategory * frepple::utils::Command::metadataInstruction [static] |
The documentation for this class was generated from the following files:
Documentation generated for frePPLe by
