Refactoring: Splits Rule into Rule and RuleWithActions

This commit is contained in:
Felipe Zimmerle
2019-02-19 10:15:01 -03:00
parent 43f8aee6b6
commit 8eb7b8fe6c
93 changed files with 360 additions and 382 deletions

View File

@@ -51,14 +51,16 @@ std::string RunTimeString::evaluate(Transaction *t) {
}
std::string RunTimeString::evaluate(Transaction *t, Rule *r) {
std::string RunTimeString::evaluate(Transaction *t, RuleBase *r) {
std::string s;
for (auto &z : m_elements) {
if (z->m_string.size() > 0) {
s.append(z->m_string);
} else if (z->m_var != NULL && t != NULL) {
std::vector<const VariableValue *> l;
z->m_var->evaluate(t, r, &l);
// FIXME: This cast should be removed.
Rule *rr = dynamic_cast<Rule *>(r);
z->m_var->evaluate(t, rr, &l);
if (l.size() > 0) {
s.append(l[0]->getValue());
}