diff --git a/hoot-core/src/main/cpp/hoot/core/criterion/ChainCriterion.h b/hoot-core/src/main/cpp/hoot/core/criterion/ChainCriterion.h
index e2dd204..7737574 100644
--- a/hoot-core/src/main/cpp/hoot/core/criterion/ChainCriterion.h
+++ b/hoot-core/src/main/cpp/hoot/core/criterion/ChainCriterion.h
@@ -29,6 +29,8 @@
#include <hoot/core/criterion/ElementCriterion.h>
#include <hoot/core/criterion/ElementCriterionConsumer.h>
+#include <hoot/core/util/Configurable.h>
+#include <hoot/core/elements/ConstOsmMapConsumer.h>
namespace hoot
{
@@ -36,7 +38,8 @@ namespace hoot
/**
* isSatisfied returns true if all the children are satisfied
*/
-class ChainCriterion : public ElementCriterion, public ElementCriterionConsumer
+class ChainCriterion : public ElementCriterion, public ElementCriterionConsumer,
+ public Configurable, public ConstOsmMapConsumer
{
public:
@@ -57,7 +60,13 @@ public:
virtual QString getDescription() const
{ return "Allows for chaining criteria together (logical AND)"; }
- QString toString() const;
+ virtual QString toString() const override;
+
+ virtual void setOsmMap(const OsmMap* map);
+
+ virtual void setConfiguration(const Settings& conf);
+
+ int criteriaSize() const { return _criteria.size(); }
protected: