All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.mygreen.supercsv.validation.CsvFieldValidator Maven / Gradle / Ivy

Go to download

CSVのJavaライブラリであるSuperCSVに、アノテーション機能を追加したライブラリです。

There is a newer version: 2.3
Show newest version
package com.github.mygreen.supercsv.validation;

import java.util.HashMap;
import java.util.Map;

import org.supercsv.util.CsvContext;

import com.github.mygreen.supercsv.cellprocessor.format.TextPrinter;

/**
 * フィールドに対するValidator
 * 
 * @since 2.0
 * @author T.TSUCHIE
 *
 */
@FunctionalInterface
public interface CsvFieldValidator {
    
    /**
     * メッセージ変数を取得する。
     * 

デフォルトの場合、下記の値が設定される。

*
    *
  • lineNumber : カラムの値に改行が含まれている場合を考慮した実際の行番号です。1から始まります。
  • *
  • rowNumber : CSVの行番号です。1から始まります。
  • *
  • columnNumber : CSVの列番号です。1から始まります。
  • *
  • label : カラムの見出し名です。
  • *
  • value : 実際のカラムの値です。
  • *
  • printer : カラムの値に対数するフォーマッタです。{@link TextPrinter#print(Object)}でvalue値を文字列に変換します。
  • *
* * @param field フィールド情報 * @return メッセージ変数のマップ。 */ default Map createMessageVariables(final CsvField field) { final CsvContext csvContext = field.getValidationContext().getCsvContext(); final Map variables = new HashMap<>(); variables.put("lineNumber", csvContext.getLineNumber()); variables.put("rowNumber", csvContext.getRowNumber()); variables.put("columnNumber", field.getColumnNumber()); variables.put("label", field.getLabel()); variables.put("validatedValue", field.getValue()); variables.put("printer", field.getColumnMapping().getFormatter()); return variables; } /** * フィールドの値の入力値検証を行います。 * @param bindingErrors エラー情報。 * @param field フィールド情報 */ void validate(CsvBindingErrors bindingErrors, CsvField field); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy