InternalObjectErrorBuilder.java
package com.gh.mygreen.xlsmapper.validation;
import java.util.Map;
import java.util.Optional;
/**
* {@link SheetBindingErrors}経由で呼び出される{@link ObjectError}のビルダクラス。
* <p>{@link #buildAndAddError()}でチェインでより使い安くする。</p>
*
* @since 2.0
* @author T.TSUCHIE
*
*/
public class InternalObjectErrorBuilder extends ObjectErrorBuilder {
private final SheetBindingErrors<?> errors;
/**
* ビルダのインスタンスを作成します。
* @param errors エラー情報
* @param objectName オブジェクト名
* @param codes メッセージコード。複数指定可能で、先頭にあるものほど優先度が高い。
*/
public InternalObjectErrorBuilder(final SheetBindingErrors<?> errors, final String objectName, final String[] codes) {
super(objectName, codes);
this.errors = errors;
}
@Override
public InternalObjectErrorBuilder variables(final Map<String, Object> variables) {
super.variables(variables);
return this;
}
@Override
public InternalObjectErrorBuilder variables(final String key, final Object value) {
super.variables(key, value);
return this;
}
@Override
public InternalObjectErrorBuilder defaultMessage(final String defaultMessage) {
super.defaultMessage(defaultMessage);
return this;
}
@Override
public InternalObjectErrorBuilder sheetName(final String sheetName) {
super.sheetName(sheetName);
return this;
}
@Override
public InternalObjectErrorBuilder label(final String label) {
super.label(label);
return this;
}
@Override
public InternalObjectErrorBuilder label(final Optional<String> label) {
super.label(label);
return this;
}
/**
* {@link ObjectError}のインスタンスを組み立て、{@link SheetBindingErrors}にエラーとして追加します。
* @return {@link SheetBindingErrors}のインスタンス
*/
public SheetBindingErrors<?> buildAndAddError() {
final ObjectError error = build();
errors.addError(error);
return errors;
}
}