protected boolean thresholdsExceeded() {
    for (final WeatherStation ws : weatherStations) {
      if (currentRainAmountThresholdInMilliMetres <= ws.getTodaysRainfallMilliLitres()) {
        LOG.info("Threshold exceeded: today's rainfall " + ws.getTodaysRainfallMilliLitres()
            + "mm greater than threshold of " + currentRainAmountThresholdInMilliMetres + "mm");
        return true;
      }
      if (currentWindThresholdInKmph <= ws.getCurrentWindspeedKiloMetresPerHour()) {
        LOG.info("Threshold exceeded: current windspeed "
            + ws.getCurrentWindspeedKiloMetresPerHour() + "kph greater than threshold of "
            + currentWindThresholdInKmph + "kph");
        return true;
      }
      if (maxTempThresholdInCelcius <= ws.getCurrentTemperatureCelcius()) {
        LOG.info("Threshold exceeded: current temperature " + ws.getCurrentTemperatureCelcius()
            + "C greater than threshold of " + maxTempThresholdInCelcius + "C");
        return true;
      }
      if (minTempThresholdInCelcius >= ws.getCurrentTemperatureCelcius()) {
        LOG.info("Threshold exceeded: current temperature " + ws.getCurrentTemperatureCelcius()
            + "C less than threshold of " + minTempThresholdInCelcius + "C");
        return true;
      }
      if (rainDaysToLookBack > 0) {
        if (totalRainAmountThresholdInMilliMetres <= ws
            .getLastXDaysRainfallMilliLitres(rainDaysToLookBack)) {
          LOG.info("Threshold exceeded: last " + rainDaysToLookBack + " days rainfall "
              + ws.getLastXDaysRainfallMilliLitres(rainDaysToLookBack)
              + "mm greater than threshold of " + totalRainAmountThresholdInMilliMetres + "mm");
          return true;
        }
      }
      if (rainDaysToLookAhead > 0) {
        if (popThreshold <= ws.getNextXDaysPercentageOfPrecipitation(rainDaysToLookAhead)) {
          LOG.info("Threshold exceeded: next " + rainDaysToLookAhead + " days PoP "
              + ws.getNextXDaysPercentageOfPrecipitation(rainDaysToLookAhead)
              + "% greater than threshold of " + popThreshold + "%");
          return true;
        }
      }
    }
    return false;
  }