X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fchoicecondition.h;h=6e2954dbf04790ea6ebfb1a3530463880dcf2b93;hb=715006802a65fa5f541f2f4bcccbdd62d1a2bf09;hp=5a453290d2315387cdaae76debd9d86cd8144322;hpb=fc27eb63c05d915d606e17992ecd5b7f68478101;p=poefilter.git diff --git a/source/choicecondition.h b/source/choicecondition.h index 5a45329..6e2954d 100644 --- a/source/choicecondition.h +++ b/source/choicecondition.h @@ -20,7 +20,7 @@ public: virtual Condition *clone() const; virtual bool can_merge(const Condition &, const CompoundCondition &) const; virtual void add_lines(std::list &) const; - virtual void add_merged_lines(const std::list &, const CompoundCondition &, std::list &) const; + virtual void add_merged_lines(const std::vector &, const CompoundCondition &, std::list &) const; }; @@ -42,37 +42,37 @@ struct BaseTypeTraits typedef ChoiceCondition BaseTypeCondition; -template -ChoiceCondition::ChoiceCondition(Type v): +template +ChoiceCondition::ChoiceCondition(Type v): value(v) { } -template -Condition *ChoiceCondition::clone() const +template +Condition *ChoiceCondition::clone() const { - return new ChoiceCondition(value); + return new ChoiceCondition(values); } -template -bool ChoiceCondition::can_merge(const Condition &other, const CompoundCondition &parent) const +template +bool ChoiceCondition::can_merge(const Condition &other, const CompoundCondition &parent) const { - return dynamic_cast *>(&other) && dynamic_cast(&parent); + return dynamic_cast *>(&other) && dynamic_cast(&parent); } -template -void ChoiceCondition::add_lines(std::list &st) const +template +void ChoiceCondition::add_lines(std::list &st) const { const char *keyword = Traits::get_keyword(); FilterStatement::add_line(st, Msp::format("%s \"%s\"", keyword, value)); } -template -void ChoiceCondition::add_merged_lines(const std::list &conditions, const CompoundCondition &parent, std::list &st) const +template +void ChoiceCondition::add_merged_lines(const std::vector &conditions, const CompoundCondition &parent, std::list &st) const { if(dynamic_cast(&parent)) { std::string line = Traits::get_keyword(); - for(std::list::const_iterator i=conditions.begin(); i!=conditions.end(); ++i) + for(std::vector::const_iterator i=conditions.begin(); i!=conditions.end(); ++i) line += Msp::format(" \"%s\"", static_cast *>(*i)->value); FilterStatement::add_line(st, line); }