v0.2.53..v0.2.54 changeset GeometryTypeCriterion.cpp
Garret Voltz edited this page Mar 31, 2020
·
1 revision
diff --git a/hoot-core/src/main/cpp/hoot/core/criterion/GeometryTypeCriterion.cpp b/hoot-core/src/main/cpp/hoot/core/criterion/GeometryTypeCriterion.cpp
index c117965..4e76076 100644
--- a/hoot-core/src/main/cpp/hoot/core/criterion/GeometryTypeCriterion.cpp
+++ b/hoot-core/src/main/cpp/hoot/core/criterion/GeometryTypeCriterion.cpp
@@ -32,7 +32,7 @@
namespace hoot
{
-QStringList GeometryTypeCriterion::getCriterionClassNamesByType(const GeometryType& type)
+QStringList GeometryTypeCriterion::getCriterionClassNamesByGeometryType(const GeometryType& type)
{
QStringList classNamesByType;
std::vector<std::string> classNames =
@@ -40,16 +40,14 @@ QStringList GeometryTypeCriterion::getCriterionClassNamesByType(const GeometryTy
for (size_t i = 0; i < classNames.size(); i++)
{
const std::string className = classNames[i];
- if (Factory::getInstance().hasBase<GeometryTypeCriterion>(className))
+
+ ElementCriterionPtr crit(
+ Factory::getInstance().constructObject<ElementCriterion>(className));
+ std::shared_ptr<GeometryTypeCriterion> geometryTypeCrit =
+ std::dynamic_pointer_cast<GeometryTypeCriterion>(crit);
+ if (geometryTypeCrit && geometryTypeCrit->getGeometryType() == type)
{
- std::shared_ptr<GeometryTypeCriterion> geometryTypeCrit =
- std::dynamic_pointer_cast<GeometryTypeCriterion>(
- std::shared_ptr<ElementCriterion>(
- Factory::getInstance().constructObject<ElementCriterion>(className)));
- if (geometryTypeCrit && geometryTypeCrit->getGeometryType() == type)
- {
- classNamesByType.append(QString::fromStdString(className));
- }
+ classNamesByType.append(QString::fromStdString(className));
}
}
return classNamesByType;
@@ -88,7 +86,7 @@ GeometryTypeCriterion::GeometryType GeometryTypeCriterion::typeFromString(
}
else
{
- throw GeometryType::Unknown;
+ return GeometryType::Unknown;
}
}