virtual Condition *flatten(OrCondition *, Condition *) const;
virtual Condition *flatten(OrCondition *, AndCondition *) const;
virtual Condition *flatten(OrCondition *, OrCondition *) const;
+public:
+ virtual bool can_merge(const Condition &, const CompoundCondition &) const;
+ virtual AndCondition *merge(const std::vector<const Condition *> &, const CompoundCondition &) const;
+private:
+ static bool merge(const AndCondition &, const AndCondition &, const CompoundCondition &, AndCondition **);
public:
virtual bool is_viable() const;
virtual void add_lines(std::list<FilterStatement> &) const;