#define __SORTACTION_H__
#include <tr1/memory>
+#include <string>
class GeneOrder;
/**
* Abstraction of a sort action, all child actions has to be immutable.
*/
SortAction(SortAction* sa): _action(sa){
}
+
+ SortAction(const SortAction& sa): _action(sa._action){
+ }
+
+ virtual const SortAction& operator=(const SortAction& sa){
+ if (this != &sa)
+ _action = sa._action;
+ return *this;
+ }
virtual ~SortAction(){};
virtual bool operator==(const SortAction& sa) const{
return (*_action) == (sa._action.get() == 0 ? sa : *sa._action);
}
+
+ /**
+ * Gives a string representation of the action, for output
+ */
+ virtual std::string toString() const{
+ return _action->toString();
+ }
private:
ActionPointer _action;