class ThresholdTrigger extends StatefulCondition {

   @Override
   public boolean isSatisfiable(ConditionContext context) {
	   for(Model model: context.getModels()) {
    	  if(model.getAttribute(attributeName) != null && sourcePredicate.apply(model.getAddress())) {
            context.logger().trace("Trigger [{}] is satisfiable because at least one model supports [{}] and matches [{}]", this, attributeName, sourcePredicate);
            return true;
         }
      }
      context.logger().trace("Trigger [{}] is not satisfiable because at no models support [{}] or no models match [{}]", this, attributeName, sourcePredicate);
      return false;
   }

   public  ThresholdTrigger(String attributeName, double threshold, double sensitivity, TriggerOn triggerOn, Predicate<Address> source);

}