package com.gh.mygreen.xlsmapper;
import java.awt.Point;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.apache.poi.ss.usermodel.Cell;
import com.gh.mygreen.xlsmapper.cellconvert.TypeBindException;
import com.gh.mygreen.xlsmapper.validation.SheetBindingErrors;
import com.gh.mygreen.xlsmapper.xml.AnnotationReader;
/**
* 読み込み処理中で持ち回すオブジェクトを保持するクラス。
*
* @author T.TSUCHIE
*/
public class LoadingWorkObject {
private AnnotationReader annoReader;
private final List<NeedProcess> needPostProcesses = new ArrayList<NeedProcess>();
private SheetBindingErrors errors;
public AnnotationReader getAnnoReader() {
return annoReader;
}
public void setAnnoReader(AnnotationReader annoReader) {
this.annoReader = annoReader;
}
public void addNeedPostProcess(NeedProcess needProcess) {
this.needPostProcesses.add(needProcess);
}
public List<NeedProcess> getNeedPostProcesses() {
return needPostProcesses;
}
public SheetBindingErrors getErrors() {
return errors;
}
public void setErrors(SheetBindingErrors errors) {
this.errors = errors;
}
public void addTypeBindError(final TypeBindException e, final Point position, final String fieldName, final String label) {
final Map<String, Object> vars = new LinkedHashMap<>(e.getMessageVars());
vars.put("validatedValue", e.getTargetValue());
this.errors.rejectSheetTypeBind(fieldName, e.getTargetValue(), e.getBindClass(), vars,
position, label);
}
public void addTypeBindError(final TypeBindException e, final Cell cell, final String fieldName, final String label) {
addTypeBindError(e, new Point(cell.getColumnIndex(), cell.getRowIndex()), fieldName, label);
}
}