]> git.tdb.fi Git - poefilter.git/blobdiff - source/rangecondition.h
Add equality comparison for conditions
[poefilter.git] / source / rangecondition.h
index a72fec2d1475db075baffbeb1ed46aa3979480e0..811a1aa48ffba85371d04249ef0ce0eef0f4cb36 100644 (file)
@@ -20,6 +20,7 @@ public:
        RangeCondition(Type, Type);
 
        virtual RangeCondition<T> *clone() const;
+       virtual bool equals(const Condition &) const;
        virtual bool can_merge(const Condition &, const CompoundCondition &) const;
        virtual RangeCondition<T> *merge(const std::vector<const Condition *> &, const CompoundCondition &) const;
        virtual bool is_viable() const { return min<=max; }
@@ -133,6 +134,16 @@ RangeCondition<T> *RangeCondition<T>::clone() const
        return new RangeCondition<T>(min, max);
 }
 
+template<typename T>
+bool RangeCondition<T>::equals(const Condition &other) const
+{
+       const RangeCondition<T> *other_range = dynamic_cast<const RangeCondition<T> *>(&other);
+       if(!other_range)
+               return false;
+
+       return (min==other_range->min && max==other_range->max);
+}
+
 template<typename T>
 bool RangeCondition<T>::can_merge(const Condition &other, const CompoundCondition &parent) const
 {