LoadCatalogEnrichedGlassesFieldSetMapper.java
package com.sintia.ffl.admin.optique.catalogue.batch.reader.loadcatalog;
import com.sintia.ffl.admin.optique.catalogue.models.EnrichedGlassesCSV;
import org.springframework.batch.item.file.mapping.FieldSetMapper;
import org.springframework.batch.item.file.transform.FieldSet;
import org.springframework.validation.BindException;
public class LoadCatalogEnrichedGlassesFieldSetMapper implements FieldSetMapper<EnrichedGlassesCSV> {
@Override
public EnrichedGlassesCSV mapFieldSet(FieldSet fieldSet) throws BindException {
EnrichedGlassesCSV result = new EnrichedGlassesCSV();
result.setMaker(fieldSet.readString("maker"));
result.setProvider(fieldSet.readString("provider"));
result.setGlassOptoCode(fieldSet.readString("glassOptoCode"));
result.setClassCode(fieldSet.readString("glassClass"));
result.setClassCodeRepo(fieldSet.readString("glassClassRepo"));
result.setGlassName(fieldSet.readString("glassName"));
result.setGlassNameRepo(fieldSet.readString("glassNameRepo"));
result.setGeometry(fieldSet.readString("geometry"));
result.setGeometryRepo(fieldSet.readString("geometryRepo"));
result.setMaterial(fieldSet.readString("material"));
result.setMaterialRepo(fieldSet.readString("materialRepo"));
result.setSurfaceType("AS".equals(fieldSet.readString("surfaceType")));
result.setSurfaceTypeRepo("AS".equals(fieldSet.readString("surfaceTypeRepo")));
result.setHardened("DU".equals(fieldSet.readString("hardened")));
result.setHardenedRepo("DU".equals(fieldSet.readString("hardenedRepo")));
result.setAntiReflection("SAR".equals(fieldSet.readString("antiReflection")));
result.setAntiReflectionRepo("SAR".equals(fieldSet.readString("antiReflectionRepo")));
result.setPhotochromic("PR".equals(fieldSet.readString("photochromic")));
result.setPhotochromicRepo("PR".equals(fieldSet.readString("photochromicRepo")));
result.setRefractiveIndex(
!"".equals(fieldSet.readString("refractiveIndex"))
? Integer.valueOf(fieldSet.readString("refractiveIndex"))
: null);
result.setRefractiveIndexRepo(!"".equals(fieldSet.readString("refractiveIndexRepo"))
? Integer.valueOf(fieldSet.readString("refractiveIndexRepo"))
: null);
result.setTinted("CO".equals(fieldSet.readString("tinted")));
result.setTintedRepo("CO".equals(fieldSet.readString("tinted")));
result.setAction(fieldSet.readString("action"));
// We test first if the field expiryDate has a value, because otherwise we will
// have some IllegalArgumentException when the field is empty or when the
// value is not correct. And we will not be able to differentiate them.
if (!"".equals(fieldSet.readString("expiryDate"))) {
result.setExpiryDate(new java.sql.Date(fieldSet.readDate("expiryDate", "dd/MM/yyyy")
.getTime()).toLocalDate());
}
if (!"".equals(fieldSet.readString("startDate"))) {
result.setStartDate(new java.sql.Date(fieldSet.readDate("startDate", "dd/MM/yyyy")
.getTime()).toLocalDate());
}
result.setActionCodeDelta(fieldSet.readString("actionCodeDelta"));
result.setCorrectedData(fieldSet.readString("correctedData"));
result.setComment(fieldSet.readString("comment"));
return result;
}
}