-
Notifications
You must be signed in to change notification settings - Fork 74
v0.2.47..v0.2.48 changeset SetTagValueVisitor.cpp
Garret Voltz edited this page Sep 27, 2019
·
1 revision
diff --git a/hoot-core/src/main/cpp/hoot/core/visitors/SetTagValueVisitor.cpp b/hoot-core/src/main/cpp/hoot/core/visitors/SetTagValueVisitor.cpp
index acbba6e..291319c 100644
--- a/hoot-core/src/main/cpp/hoot/core/visitors/SetTagValueVisitor.cpp
+++ b/hoot-core/src/main/cpp/hoot/core/visitors/SetTagValueVisitor.cpp
@@ -44,26 +44,47 @@ SetTagValueVisitor::SetTagValueVisitor()
setConfiguration(conf());
}
-SetTagValueVisitor::SetTagValueVisitor(const QString& key, const QString& value, bool appendToExistingValue,
- const QString& criterionName, bool overwriteExistingTag,
- bool negateCriterion) :
+SetTagValueVisitor::SetTagValueVisitor(const QStringList& keys, const QStringList& values,
+ bool appendToExistingValue, const QString& criterionName,
+ const bool overwriteExistingTag, const bool negateCriterion) :
+_keys(keys),
+_vals(values),
_appendToExistingValue(appendToExistingValue),
_overwriteExistingTag(overwriteExistingTag),
_negateCriterion(negateCriterion)
{
- _k.append(key);
- _v.append(value);
+ if (_keys.size() != _vals.size())
+ {
+ throw IllegalArgumentException(
+ "set.tag.value.visitor keys and values must be the same length. Keys size: " +
+ QString::number(_keys.size()) + ", values size: " + QString::number(_vals.size()));
+ }
+
+ _setCriterion(criterionName);
+}
+
+SetTagValueVisitor::SetTagValueVisitor(const QString& key, const QString& value,
+ bool appendToExistingValue, const QString& criterionName,
+ const bool overwriteExistingTag, const bool negateCriterion) :
+_appendToExistingValue(appendToExistingValue),
+_overwriteExistingTag(overwriteExistingTag),
+_negateCriterion(negateCriterion)
+{
+ _keys.append(key);
+ _vals.append(value);
_setCriterion(criterionName);
}
void SetTagValueVisitor::setConfiguration(const Settings& conf)
{
ConfigOptions configOptions(conf);
- _k = configOptions.getSetTagValueVisitorKey();
- _v = configOptions.getSetTagValueVisitorValue();
- if (_k.size() != _v.size())
+ _keys = configOptions.getSetTagValueVisitorKeys();
+ _vals = configOptions.getSetTagValueVisitorValues();
+ if (_keys.size() != _vals.size())
{
- throw IllegalArgumentException("set.tag.value.visitor key and value must be the same length.");
+ throw IllegalArgumentException(
+ "set.tag.value.visitor keys and values must be the same length. Keys size: " +
+ QString::number(_keys.size()) + ", values size: " + QString::number(_vals.size()));
}
_appendToExistingValue = configOptions.getSetTagValueVisitorAppendToExistingValue();
_overwriteExistingTag = configOptions.getSetTagValueVisitorOverwrite();
@@ -94,13 +115,13 @@ void SetTagValueVisitor::_setCriterion(const QString& criterionName)
}
}
-void SetTagValueVisitor::_setTag(const ElementPtr& e, const QString& k, const QString& v)
+void SetTagValueVisitor::setTag(const ElementPtr& e, const QString& k, const QString& v)
{
- if (k.isEmpty())
+ if (_keys.isEmpty())
{
throw IllegalArgumentException("You must set the key in the SetTagValueVisitor class.");
}
- if (v.isEmpty())
+ if (_vals.isEmpty())
{
throw IllegalArgumentException("You must set the value in the SetTagValueVisitor class.");
}
@@ -147,9 +168,9 @@ void SetTagValueVisitor::_setTag(const ElementPtr& e, const QString& k, const QS
void SetTagValueVisitor::visit(const std::shared_ptr<Element>& e)
{
- for (int i = 0; i < _k.size(); i++)
+ for (int i = 0; i < _keys.size(); i++)
{
- _setTag(e, _k[i], _v[i]);
+ setTag(e, _keys[i], _vals[i]);
}
}