X-Git-Url: http://git.tdb.fi/?p=poefilter.git;a=blobdiff_plain;f=source%2Fcondition.h;h=9d945c78eec8ffa3c123fb4ea9e8fdb3e42ef978;hp=af8aa95faa282c364c515111eb93e33dad6c061e;hb=7d7eaf754af04f81bb1e7a8872272ea15e01d0c4;hpb=8dcb2ed5219429c1c7d543c422a7471c18917f55 diff --git a/source/condition.h b/source/condition.h index af8aa95..9d945c7 100644 --- a/source/condition.h +++ b/source/condition.h @@ -18,6 +18,7 @@ public: virtual ~Condition() { } virtual Condition *clone() const = 0; + virtual bool equals(const Condition &) const = 0; virtual Condition *flatten() const { return clone(); } virtual bool can_merge(const Condition &, const CompoundCondition &) const { return false; } virtual Condition *merge(const std::vector &, const CompoundCondition &) const { return 0; } @@ -39,6 +40,7 @@ public: protected: void clone_to(CompoundCondition &) const; + bool sub_equals(const CompoundCondition &) const; public: void add(Condition *); @@ -64,6 +66,7 @@ class AndCondition: public CompoundCondition { public: virtual AndCondition *clone() const; + virtual bool equals(const Condition &) const; protected: virtual Condition *flatten(Condition *, Condition *) const; virtual Condition *flatten(AndCondition *, Condition *) const; @@ -81,6 +84,7 @@ class OrCondition: public CompoundCondition { public: virtual OrCondition *clone() const; + virtual bool equals(const Condition &) const; protected: virtual Condition *flatten(Condition *, Condition *) const; virtual Condition *flatten(AndCondition *, Condition *) const; @@ -109,6 +113,7 @@ public: LinkedColorsCondition(const Colors &); virtual LinkedColorsCondition *clone() const; + virtual bool equals(const Condition &) const; virtual void add_lines(std::list &) const; };