X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcondition.h;h=af8aa95faa282c364c515111eb93e33dad6c061e;hb=8dcb2ed5219429c1c7d543c422a7471c18917f55;hp=163c9c828f6d7499f5be57442e8fac5bfbb87486;hpb=eac6a71e79797e6d37b620a91acb3c0541f1c07e;p=poefilter.git diff --git a/source/condition.h b/source/condition.h index 163c9c8..af8aa95 100644 --- a/source/condition.h +++ b/source/condition.h @@ -20,7 +20,7 @@ public: virtual Condition *clone() 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; } + virtual Condition *merge(const std::vector &, const CompoundCondition &) const { return 0; } virtual bool is_viable() const { return true; } virtual void add_lines(std::list &) const = 0; }; @@ -43,14 +43,14 @@ protected: public: void add(Condition *); unsigned count() const { return conditions.size(); } - const Condition *get(unsigned) const; + const Condition &get(unsigned) const; virtual Condition *flatten() const; protected: Condition *dispatch_flatten(Condition *, Condition *) const; - Condition *merge_two(Condition *, Condition *, bool) const; - Condition *add_merged_to(Condition *, CompoundCondition *, bool) const; - Condition *merge_contents_to(CompoundCondition *, CompoundCondition *) const; + static Condition *merge_two(Condition *, Condition *, const CompoundCondition &, bool); + static Condition *add_merged_to(Condition *, CompoundCondition *, bool); + static Condition *merge_contents_to(CompoundCondition *, CompoundCondition *); virtual Condition *flatten(Condition *, Condition *) const = 0; virtual Condition *flatten(AndCondition *, Condition *) const = 0; virtual Condition *flatten(AndCondition *, AndCondition *) const = 0;