+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 **);