- virtual bool operator==(const SortAction& sa) const{
- return (*_action) == (sa._action.get() == 0 ? sa : *sa._action);
+ bool operator==(const SortAction& sa) const{
+ return (*_action) == (*sa._action);
+ }
+
+ /**
+ * Compares sort actions.
+ */
+ bool operator==(const SortActionImpl& sa) const{
+ return (*_action) == sa;
+ }
+
+ /**
+ * Gives a string representation of the action, for output
+ */
+ std::string toString() const{
+ return _action->toString();
+ }
+
+ /**
+ * Gives access to the implementation
+ */
+ const SortActionImpl& impl() const{
+ return *_action;