com.github.mygreen.supercsv.validation.CsvFieldError Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of super-csv-annotation Show documentation
Show all versions of super-csv-annotation Show documentation
CSVのJavaライブラリであるSuperCSVに、アノテーション機能を追加したライブラリです。
package com.github.mygreen.supercsv.validation;
import java.util.HashMap;
import java.util.Map;
import org.supercsv.cellprocessor.ift.CellProcessor;
/**
* フィールドに対するエラー情報。
*
* @since 2.0
* @author T.TSUCHIE
*
*/
public class CsvFieldError extends CsvError {
/** serialVersionUID */
private static final long serialVersionUID = -7775352881004606689L;
private final boolean processingFailure;
private final String field;
public CsvFieldError(final String objectName, final String field, final boolean processingFailure,
final String[] codes, final Map variables, final String defaultMessage) {
super(objectName, codes, variables, defaultMessage);
this.processingFailure = processingFailure;
this.field = field;
}
/**
* {@link CellProcessor}内で発生したエラーかどうか。
* {@link CellProcessor}で例外がスローされると、型変換されず、検証対象のBeanに値が設定されないないため、
* 後から{@link CsvValidator}で値を検証する際に検証をスキップする判定に利用する。
*
* @return trueの場合、{@link CellProcessor}内で発生したエラー。
*/
public boolean isProcessingFailure() {
return processingFailure;
}
/**
* フィールド名を取得する。
* @return Beanにされたフィールドの名称を返す。
*/
public String getField() {
return field;
}
public static final class Builder {
private final String objectName;
private final String field;
private final String[] codes;
private boolean processingFailure;
private Map variables = new HashMap<>();
private String defaultMessage;
public Builder(final String objectName, final String field, final String[] codes) {
this.objectName = objectName;
this.field = field;
this.codes = codes;
}
public Builder processingFailure(final boolean processingFailure) {
this.processingFailure = processingFailure;
return this;
}
public Builder variables(final Map variables) {
this.variables.putAll(variables);
return this;
}
public Builder variables(final String key, final Object value) {
this.variables.put(key, value);
return this;
}
public Builder defaultMessage(final String defaultMessage) {
this.defaultMessage = defaultMessage;
return this;
}
public CsvFieldError build() {
return new CsvFieldError(objectName, field, processingFailure, codes, variables, defaultMessage);
}
}
}