code: private boolean validateWindows(Rule rule) {
  		int sumOfExpressionWindows = 0;
  
  		for (Expression expression : rule.getExpressions()) {
  			long expressionWindow = expression.getWindow().toMillis();
  
  			for (Clause clause : expression.getClauses()) {
  				for (DetectionPoint point : clause.getMonitorPoints()) {
  					/* check whether the window of a MonitorPoint
  					 * is greater than its parent Expression */
  					if (expressionWindow < point.getThreshold().getInterval().toMillis()) {
  						return false;
  					}
  				}
  			}
  			sumOfExpressionWindows += expressionWindow;
  		}
  
  		/* checks whether the sum of expression windows is greater than the rule window */
  		return rule.getWindow().toMillis() >= sumOfExpressionWindows;
  	}
docs: /*
  Ensures that the windows of the Rule, Expressions, and MonitorPoints don't conflict
  with each other.