/** Validate course_completed entries (course_completed.csv) */ public void validateCourseCompleted() { String file = "course_completed.csv"; // CHECK ALL ENTRIES FOR BLANK FIELDS for (int i = 0; i < entries.size(); i++) { boolean rowHasMissingFields = false; // Line Number. First row (index 0) is data row. So +2 to get line number. int line = i + 2; ArrayList<String> rowMessageList = new ArrayList<>(); String[] row = entries.get(i); rowHasMissingFields = tool.rowHasMissingFields(row, rowMessageList); if (rowHasMissingFields) { blacklistedEntries.add(row); String[] message = rowMessageList.toArray(new String[0]); errorList.add(new BootstrapError(file, line, message)); } } // STEP 2: CHECK ALL FOR invalidExamDate invalidStart, invalidEnd for (int i = 0; i < entries.size(); i++) { boolean rowHasInvalidUserId = false; boolean rowHasInvalidCourse = false; boolean rowHasDuplicatePrimaryKey = false; int line = i + 2; ArrayList<String> rowMessageList = new ArrayList<>(); String[] row = entries.get(i); // if not already blacklisted due to error if (!blacklistedEntries.contains(row)) { rowHasInvalidUserId = tool.rowHasInvalidUserId(row, rowMessageList); rowHasInvalidCourse = tool.rowHasInvalidCourse(row, rowMessageList); // if there are duplicates, the latest/bottomest row will be accepted. // The earlier rows will be errored. String foreignKey = "userid"; String primaryKey = "code"; // rowHasDuplicatePrimaryKey = // tool.rowHasDuplicatePrimaryKey(foreignKey,primaryKey,row,rowMessageList); /* * NO NEED TO TEST FOR DUPLICATES */ // Blacklist row if any of the validations blacklistedEntries are "true" if (rowHasInvalidCourse || rowHasInvalidUserId || rowHasDuplicatePrimaryKey) { blacklistedEntries.add(row); // add row to blackList String[] message = rowMessageList.toArray(new String[0]); errorList.add(new BootstrapError(file, line, message)); } } } // end of 2nd for-loop // STEP 2: CHECK ALL FOR invalidExamDate invalidStart, invalidEnd for (int i = 0; i < entries.size(); i++) { boolean rowHasInvalidCourseCompleted = false; int line = i + 2; ArrayList<String> rowMessageList = new ArrayList<>(); String[] row = entries.get(i); // if not already blacklisted due to error if (!blacklistedEntries.contains(row)) { rowHasInvalidCourseCompleted = tool.rowHasInvalidCourseCompleted(row, rowMessageList); // Blacklist row if any of the validations blacklistedEntries are "true" if (rowHasInvalidCourseCompleted) { blacklistedEntries.add(row); // add row to blackList String[] message = rowMessageList.toArray(new String[0]); errorList.add(new BootstrapError(file, line, message)); } } } // end of 3rd for-loop // method ends }