package net.techreadiness.batch;
import org.springframework.batch.item.file.mapping.FieldSetMapper;
import org.springframework.batch.item.file.transform.FieldSet;
import org.springframework.validation.BindException;
public class CoreFieldSetMapper<T> implements FieldSetMapper<T> {
private Binder<T> binder;
private Class<T> clazz;
public CoreFieldSetMapper(Class<T> clazz) {
this.clazz = clazz;
}
@Override
public T mapFieldSet(FieldSet fieldSet) throws BindException {
try {
T bind = binder.bind(clazz.newInstance(), fieldSet);
if (bind instanceof BaseData) {
((BaseData) bind).setFieldSet(fieldSet);
}
return bind;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public Class<T> getClazz() {
return clazz;
}
public void setClazz(Class<T> clazz) {
this.clazz = clazz;
}
public Binder<T> getBinder() {
return binder;
}
public void setBinder(Binder<T> binder) {
this.binder = binder;
}
}