Skip to content

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;
   }
 }
 
Clone this wiki locally