public boolean isCorrectConsecutiveDate(TaskQualityFormItem item) {
    if (item.getPassed()) {
      return (isPassedPreviousItem(item)) && (isLaterToPreviousItemDate(item));
    }

    return item.getDate() == null;
  }
  public boolean isLaterToPreviousItemDate(TaskQualityFormItem item) {
    Integer previousPosition = item.getPosition() - 1;
    if ((previousPosition >= 0) && (previousPosition < taskQualityFormItems.size())) {
      Date previousDate = taskQualityFormItems.get(previousPosition).getDate();
      return (previousDate != null)
          && (item.getDate() != null)
          && ((previousDate.before(item.getDate())) || (previousDate.equals(item.getDate())));
    }

    return true;
  }
 private void createTaskQualityFormItems() {
   Validate.notNull(qualityForm);
   for (QualityFormItem qualityFormItem : qualityForm.getQualityFormItems()) {
     TaskQualityFormItem taskQualityFormItem = TaskQualityFormItem.create(qualityFormItem);
     taskQualityFormItems.add(taskQualityFormItem);
   }
 }
  public boolean isPassedPreviousItem(TaskQualityFormItem item) {
    Integer previousPosition = item.getPosition() - 1;

    if ((previousPosition >= 0) && (previousPosition < taskQualityFormItems.size())) {
      return taskQualityFormItems.get(previousPosition).getPassed();
    }

    return true;
  }
 public boolean isCorrectConsecutivePassed(TaskQualityFormItem item) {
   return !item.getPassed() || (isPassedPreviousItem(item));
 }