<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.8</version>
</dependency>
public interface CSVValidator {
boolean validate(CSVRecord csvRecord);
}
public class EmptyFieldValidator implements CSVValidator {
@Override
public boolean validate(CSVRecord csvRecord) {
for (String field : csvRecord) {
if (field.isEmpty()) {
return false;
}
}
return true;
}
}
public class CSVValidatorFramework {
private List<CSVValidator> validators;
public CSVValidatorFramework() {
this.validators = new ArrayList<>();
}
public void addValidator(CSVValidator validator) {
this.validators.add(validator);
}
public boolean validateCSV(File csvFile) throws IOException {
Iterable<CSVRecord> records = CSVFormat.DEFAULT.parse(new FileReader(csvFile));
for (CSVRecord record : records) {
for (CSVValidator validator : validators) {
if (!validator.validate(record)) {
return false;
}
}
}
return true;
}
}
public class Main {
public static void main(String[] args) {
CSVValidatorFramework validatorFramework = new CSVValidatorFramework();
validatorFramework.addValidator(new EmptyFieldValidator());
File csvFile = new File("example.csv");
try {
boolean isValid = validatorFramework.validateCSV(csvFile);
if (isValid) {
System.out.println("CSV file is valid.");
} else {
System.out.println("CSV file is not valid.");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}