frepple::Command Class Reference

Abstract base class for all commands. More...

#include <utils.h>

Inheritance diagram for frepple::Command:

frepple::Object frepple::CommandCreateOperationPlan frepple::CommandDeleteOperationPlan frepple::CommandErase frepple::CommandList frepple::CommandLoadLibrary frepple::CommandMoveOperationPlan frepple::CommandPlanSize frepple::CommandReadXMLFile frepple::CommandReadXMLString frepple::CommandSave frepple::CommandSavePlan frepple::CommandSetEnv frepple::CommandSolve frepple::CommandSystem module_python::CommandPython module_webservice::CommandWebservice List of all members.

Public Types

enum  inheritableBool { INHERIT = -1, YES = 0, NO = 1 }

Public Member Functions

 Command ()
virtual void endElement (XMLInput &pIn, const Attribute &pAttr, const DataElement &pElement)
virtual void execute ()=0
virtual string getDescription () const
bool getVerbose () const
void setVerbose (bool b)
virtual void undo ()
virtual bool undoable () const
virtual ~Command ()

Static Public Attributes

static const MetaCategory metadata

Friends

class CommandList

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 2610 of file utils.h.


Member Enumeration Documentation

This structure defines a boolean value that can be set to TRUE, FALSE or INHERITed from a higher level.

  • INHERIT: Inherit the value from a higher level list.
  • YES: true = 1
  • NO: false = 0
Enumerator:
INHERIT 
YES 
NO 

Definition at line 2620 of file utils.h.


Constructor & Destructor Documentation

frepple::Command::Command (  )  [inline]

Default constructor. The creation of a command should NOT execute the command yet. The execute() method needs to be called explicitly to do so.

Definition at line 2630 of file utils.h.

virtual frepple::Command::~Command (  )  [inline, virtual]

Definition at line 2659 of file utils.h.


Member Function Documentation

void frepple::Command::endElement ( XMLInput pIn,
const Attribute pAttr,
const DataElement pElement 
) [virtual]

Called while restoring the model from an XML-file. This is called when the corresponding close element tag is encountered, and the Data() member of pElement is also valid. NOTE: each object receives both its own beginElement so it can process its own element tag attributes, and its own endElement so it can process its own character data.

Implements frepple::Object.

Reimplemented in frepple::CommandSolve, frepple::CommandReadXMLFile, frepple::CommandReadXMLString, frepple::CommandSave, frepple::CommandSavePlan, frepple::CommandErase, frepple::CommandSetEnv, frepple::CommandList, frepple::CommandSystem, frepple::CommandLoadLibrary, and module_python::CommandPython.

Definition at line 55 of file utils/actions.cpp.

virtual void frepple::Command::execute (  )  [pure virtual]

bool frepple::Command::getVerbose (  )  const

Returns whether verbose output is required during the execution of the command.

Reimplemented in frepple::SolverMRP::SolverMRPdata.

Definition at line 43 of file utils/actions.cpp.

void frepple::Command::setVerbose ( bool  b  )  [inline]

Controls whether verbose output will be generated during execution.

Definition at line 2666 of file utils.h.

virtual void frepple::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::CommandSolve, frepple::CommandPlanSize, frepple::CommandCreateOperationPlan, frepple::CommandDeleteOperationPlan, frepple::CommandMoveOperationPlan, and frepple::CommandList.

Definition at line 2651 of file utils.h.

virtual bool frepple::Command::undoable (  )  const [inline, virtual]

Returns true if the execution of this command can be undone.

Reimplemented in frepple::CommandSolve, frepple::CommandPlanSize, frepple::CommandCreateOperationPlan, frepple::CommandDeleteOperationPlan, frepple::CommandMoveOperationPlan, and frepple::CommandList.

Definition at line 2655 of file utils.h.


Friends And Related Function Documentation

friend class CommandList [friend]

Definition at line 2612 of file utils.h.


Member Data Documentation


The documentation for this class was generated from the following files:
Documentation generated by  doxygen