import com.github.mygreen.supercsv.io.CsvAnnotationBeanReader;
import com.github.mygreen.supercsv.io.CsvAnnotationBeanWriter;
import com.github.mygreen.supercsv.io.CsvAnnotationBeanReader<T>;
import com.github.mygreen.supercsv.io.CsvAnnotationBeanWriter<T>;
import com.github.mygreen.supercsv.io.CsvValidationException;
import com.github.mygreen.supercsv.validation.CsvConstraintViolation;
import com.github.mygreen.supercsv.validation.CsvValidationResult;
public class Person {
@CsvLength(max=10)
private String name;
@CsvNumberRange(min=1, max=99)
private int age;
}
public List<Person> readAndValidateCsvFile(String filePath) {
try(CsvAnnotationBeanReader<Person> csvReader = new CsvAnnotationBeanReader<>(Person.class, new FileReader(filePath))) {
CsvValidationResult<Person> validationResult = csvReader.readWithValidation();
if(validationResult.getErrorMessages().isEmpty()) {
return validationResult.getBeans();
} else {
List<CsvConstraintViolation<Person>> violations = validationResult.getCsvConstraintViolations();
for(CsvConstraintViolation<Person> violation : violations) {
System.err.println(violation.getMessage());
}
return Collections.emptyList();
}
e.printStackTrace();
return Collections.emptyList();
}
}
public void writeAndValidateCsvFile(List<Person> persons, String filePath) {
try(CsvAnnotationBeanWriter<Person> csvWriter = new CsvAnnotationBeanWriter<>(Person.class, new FileWriter(filePath))) {
CsvValidationResult<Person> validationResult = csvWriter.writeWithValidation(persons);
if(validationResult.getErrorMessages().isEmpty()) {
} else {
List<CsvConstraintViolation<Person>> violations = validationResult.getCsvConstraintViolations();
for(CsvConstraintViolation<Person> violation : violations) {
System.err.println(violation.getMessage());
}
}
e.printStackTrace();
}
}