Package nablarch.common.databind.csv
Class CsvDataBindConfig
java.lang.Object
nablarch.common.databind.csv.CsvDataBindConfig
- All Implemented Interfaces:
DataBindConfig
CSVのフォーマットを表すクラス。
デフォルト設定を使用する場合は、
独自の設定を行う場合は、
DEFAULTオブジェクトを使用する。独自の設定を行う場合は、
CsvDataBindConfig(char, String, char, boolean, boolean, String[], String[], Charset, boolean, QuoteMode, List)
を使用しオブジェクトを生成するか、DEFAULTオブジェクトのセッタを実行して値を設定する。
下記にデフォルトの設定値を示す。
列区切り文字 --> "," 行区切り文字 --> "\r\n"(CRLF) フィールド囲み文字 --> """ 空行を無視するか否か --> 無視する(true) ヘッダ行が必須か否か --> 必須(true) ヘッダーに出力するタイトル --> 空のString型配列 プロパティ名リスト --> 空のString型配列 文字コード --> UTF-8 空のフィールドをnullに変換するか否か --> 変換する(true) フィールド囲み文字で囲む フィールドを指定するモード --> NORMAL(フィールド囲み文字、フィールド区切り文字、改行が存在するフィールドが対象となる) フィールド囲み文字で囲む フィールドのリスト --> 空のリスト
- Author:
- Naoki Yamamoto
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enum出力時にフィールド囲み文字で囲むフィールドを指定するモードの定義。 -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final CsvDataBindConfigデフォルトのフォーマット定義static final CsvDataBindConfigEXCEL形式のCSVフォーマット定義static final CsvDataBindConfigRFC4180準拠のフォーマット定義static final CsvDataBindConfigタブ区切り(TSV)のフォーマット定義 -
Constructor Summary
ConstructorsConstructorDescriptionCsvDataBindConfig(char fieldSeparator, String lineSeparator, char quote, boolean ignoreEmptyLine, boolean requiredHeader, String[] headerTitles, String[] properties, Charset charset, boolean emptyToNull, CsvDataBindConfig.QuoteMode quoteMode, List<String> quotedColumnNames) CSVのフォーマット定義を生成する。CsvDataBindConfig(char fieldSeparator, String lineSeparator, char quote, boolean ignoreEmptyLine, boolean requiredHeader, String[] headerTitles, Charset charset, boolean emptyToNull, CsvDataBindConfig.QuoteMode quoteMode, List<String> quotedColumnNames) CSVのフォーマット定義を生成する。 -
Method Summary
Modifier and TypeMethodDescription文字コードを取得する。char列区切り文字を取得する。String[]ヘッダー行(タイトル行)に出力するタイトルのリスト。String[]getKeys()オブジェクトにマッピングする際に使用するキーのリストを取得する。行区切り文字を取得する。String[]プロパティ名リストを取得する。chargetQuote()フィールド囲み文字を取得する。出力時にフィールド囲み文字(getQuote())で囲むフィールドのリストを取得する。フィールド囲み文字で囲むフィールドを取得する。boolean空フィールドをnullに置き換えるか否か。boolean空行を無視するか否かを取得する。booleanヘッダー行(タイトル行)が必須か否か。voidverify()コンフィグの妥当性検証を行う。withCharset(String newCharset) 文字コードを設定する。withCharset(Charset newCharset) 文字コードを設定する。withEmptyToNull(boolean newEmptyToNull) 空フィールドをnullに置き換えるか否かを設定する。withFieldSeparator(char newFieldSeparator) 列区切り文字を設定する。withHeaderTitles(String... newHeaderTitles) ヘッダー行(タイトル行)に出力するタイトルを設定する。空行を無視する。withIgnoreEmptyLine(boolean newOption) 空行を無視するか否かを設定する。withLineSeparator(String newLineSeparator) 改行文字を設定する。withProperties(String... newProperties) プロパティ名リストを設定する。withQuote(char newQuote) フィールド囲み文字を設定する。withQuotedColumnNames(String... fieldNames) フィールド囲み文字(getQuote()で囲むフィールドのリストを設定する。withQuoteMode(CsvDataBindConfig.QuoteMode newQuoteMode) 出力時にフィールド囲み文字で囲むフィールドを設定する。ヘッダー行(タイトル行)を必須に設定する。withRequiredHeader(boolean newOption) ヘッダー行(タイトル行)を必須とするか否かを設定する。
-
Field Details
-
DEFAULT
デフォルトのフォーマット定義 -
RFC4180
RFC4180準拠のフォーマット定義 -
EXCEL
EXCEL形式のCSVフォーマット定義 -
TSV
タブ区切り(TSV)のフォーマット定義
-
-
Constructor Details
-
CsvDataBindConfig
public CsvDataBindConfig(char fieldSeparator, String lineSeparator, char quote, boolean ignoreEmptyLine, boolean requiredHeader, String[] headerTitles, Charset charset, boolean emptyToNull, CsvDataBindConfig.QuoteMode quoteMode, List<String> quotedColumnNames) CSVのフォーマット定義を生成する。- Parameters:
fieldSeparator- 列区切り文字lineSeparator- 行区切り文字(\r\n(CRLF) or \r(CR) or \n(LF)であること)quote- フィールド囲み文字ignoreEmptyLine- 空行を無視するか否かrequiredHeader- ヘッダ行(タイトル行)が必須か否かheaderTitles- ヘッダーに出力するタイトルcharset- 文字コードemptyToNull- 空のフィールドをnullに変換するかどうかquoteMode- 出力時にフィールド囲み文字で囲むフィールドを指定するモードquotedColumnNames- フィールド囲み文字で囲むフィールドのリスト- Throws:
IllegalArgumentException- 行区切り文字が「\r\n(CRLF)・\r(CR)・\n(LF)」以外の場合
-
CsvDataBindConfig
public CsvDataBindConfig(char fieldSeparator, String lineSeparator, char quote, boolean ignoreEmptyLine, boolean requiredHeader, String[] headerTitles, String[] properties, Charset charset, boolean emptyToNull, CsvDataBindConfig.QuoteMode quoteMode, List<String> quotedColumnNames) CSVのフォーマット定義を生成する。- Parameters:
fieldSeparator- 列区切り文字lineSeparator- 行区切り文字(\r\n(CRLF) or \r(CR) or \n(LF)であること)quote- フィールド囲み文字ignoreEmptyLine- 空行を無視するか否かrequiredHeader- ヘッダ行(タイトル行)が必須か否かheaderTitles- ヘッダーに出力するタイトルproperties- プロパティ名リストcharset- 文字コードemptyToNull- 空のフィールドをnullに変換するかどうかquoteMode- 出力時にフィールド囲み文字で囲むフィールドを指定するモードquotedColumnNames- フィールド囲み文字で囲むフィールドのリスト- Throws:
IllegalArgumentException- 行区切り文字が「\r\n(CRLF)・\r(CR)・\n(LF)」以外の場合
-
-
Method Details
-
getFieldSeparator
public char getFieldSeparator()列区切り文字を取得する。- Returns:
- 列区切り文字
-
withFieldSeparator
列区切り文字を設定する。- Parameters:
newFieldSeparator- 新しい列区切り文字- Returns:
- 新しい
CsvDataBindConfig
-
getLineSeparator
行区切り文字を取得する。- Returns:
- 行区切り文字
-
withLineSeparator
改行文字を設定する。 改行文字が(CR|LF|CRLF)以外の場合はエラーとする。- Parameters:
newLineSeparator- 改行文字- Returns:
- 新しい
CsvDataBindConfig
-
getQuote
public char getQuote()フィールド囲み文字を取得する。- Returns:
- フィールド囲み文字
-
withQuote
フィールド囲み文字を設定する。- Parameters:
newQuote- フィールド囲み文字- Returns:
- 新しい
CsvDataBindConfig
-
isIgnoreEmptyLine
public boolean isIgnoreEmptyLine()空行を無視するか否かを取得する。- Returns:
- 空行を無視する場合
true
-
withIgnoreEmptyLine
空行を無視する。- Returns:
- 新しい
CsvDataBindConfig
-
withIgnoreEmptyLine
空行を無視するか否かを設定する。- Parameters:
newOption- 空行を無視する場合true- Returns:
- 新しい
CsvDataBindConfig
-
isRequiredHeader
public boolean isRequiredHeader()ヘッダー行(タイトル行)が必須か否か。- Returns:
- ヘッダー行(タイトル行)が必須の場合
true
-
withRequiredHeader
ヘッダー行(タイトル行)を必須に設定する。- Returns:
- 新しい
CsvDataBindConfig
-
withRequiredHeader
ヘッダー行(タイトル行)を必須とするか否かを設定する。- Parameters:
newOption- ヘッダーが必須な場合true- Returns:
- 新しい
CsvDataBindConfig
-
getHeaderTitles
ヘッダー行(タイトル行)に出力するタイトルのリスト。- Returns:
- ヘッダー行に出力するタイトル
-
withHeaderTitles
ヘッダー行(タイトル行)に出力するタイトルを設定する。- Parameters:
newHeaderTitles- ヘッダー行(タイトル行)に出力するタイトル- Returns:
- 新しい
CsvDataBindConfig
-
getProperties
プロパティ名リストを取得する。- Returns:
- プロパティ名リスト
-
withProperties
プロパティ名リストを設定する。- Parameters:
newProperties- プロパティ名リスト- Returns:
- 新しい
CsvDataBindConfig
-
getKeys
オブジェクトにマッピングする際に使用するキーのリストを取得する。propertiesが設定されていれば、propertiesをキーとして返す。
propertiesが設定されていなければ、headerTitlesをキーとして返す。- Returns:
- キーのリスト
-
getCharset
文字コードを取得する。- Returns:
- 文字コード
-
withCharset
文字コードを設定する。- Parameters:
newCharset- 文字コード- Returns:
- 新しい
CsvDataBindConfig
-
withCharset
文字コードを設定する。- Parameters:
newCharset- 文字コード- Returns:
- 新しい
CsvDataBindConfig
-
isEmptyToNull
public boolean isEmptyToNull()空フィールドをnullに置き換えるか否か。- Returns:
- 置き換える場合は
true
-
withEmptyToNull
空フィールドをnullに置き換えるか否かを設定する。- Parameters:
newEmptyToNull- nullに置き換える場合はtrue- Returns:
- 新しい
CsvDataBindConfig
-
getQuoteMode
フィールド囲み文字で囲むフィールドを取得する。- Returns:
- フィールド囲み文字で囲むフィールド
-
withQuoteMode
出力時にフィールド囲み文字で囲むフィールドを設定する。- Parameters:
newQuoteMode- フィールド囲み文字で囲むフィールドを指定するモード- Returns:
- 新しい
CsvDataBindConfig
-
getQuotedColumnNames
出力時にフィールド囲み文字(getQuote())で囲むフィールドのリストを取得する。- Returns:
- フィールド囲み文字で囲むフィールドのリスト
-
withQuotedColumnNames
フィールド囲み文字(getQuote()で囲むフィールドのリストを設定する。getQuoteMode()がCsvDataBindConfig.QuoteMode.CUSTOMの場合に、 設定したフィールドがフィールド囲み文字で囲まれる。- Parameters:
fieldNames- フィールド囲み文字で囲むフィールド名称- Returns:
- 新しい
CsvDataBindConfig
-
verify
public void verify()コンフィグの妥当性検証を行う。 以下の場合に検証エラーとする。- ヘッダが必須でヘッダタイトルが未設定
- ヘッダが任意でプロパティ名が未設定
- ヘッダが必須でヘッダタイトルとプロパティ名のサイズが一致しない
-