+
+
+class SortActionImpl{
+ public:
+
+ virtual ~SortActionImpl(){};
+
+ /**
+ * Applies the action on the GeneOrder and returning it.
+ */
+ virtual GeneOrder& operator()(GeneOrder& go) const = 0;
+
+ /**
+ * Compares sort actions.
+ */
+ virtual bool operator==(const SortActionImpl& sa) const = 0;
+
+ /**
+ * Gives a string representation of the action, for output
+ */
+ virtual std::string toString() const = 0;
+};
+