@Target(value={FIELD,ANNOTATION_TYPE}) @Retention(value=RUNTIME) @Documented @Repeatable(value=CsvMultiPad.List.class) @CsvConversion(value={}) public @interface CsvMultiPad
アノテーション CsvLeftPad
やCsvRightPad
より、柔軟に指定ができます。
size()
で、パディングするサイズを指定します。
size()
の値を超える場合、パディングは行いません。
padChar()
でパディング文字を指定することができます。
paddingProcessor()
で処理方式を指定します。
CharWidthPaddingProcessor
は、文字の幅(半角の長さ=1、全角の長さ=2)として書き込み時にパディングします。
CsvTrim
と併用する際には、処理結果が互いに変換対象となるため、
属性cases()
やgroups()
で適用するケースを分けるようにしてください。
@CsvBean
public class SampleCsv {
// 値が[10]の場合、結果は、[ 10]となります。
@CsvColumn(number=1)
@CsvMultiPad(size=5)
private Integer id;
// パディング文字を変更する場合
@CsvColumn(number=2)
@CsvMultiPad(size=5, padChar='_')
private Integer number;
// パディングする際の処理方法を指定する場合
@CsvColumn(number=2)
@CsvMultiPad(size=5, padChar=' ', paddingProcessor=CharWidthPaddingProcessor.class)
private String name;
// 書き込み時のみ適用する場合
@CsvColumn(number=4)
@CsvTrim(cases=BuildCase.Read)
@CsvMultiPad(size=20, cases=BuildCase.Write)
private String comment;
// getter/setterは省略
}
修飾子とタイプ | 必須要素と説明 |
---|---|
int |
size
パディングするサイズを指定します。
|
修飾子とタイプ | 任意要素と説明 |
---|---|
BuildCase[] |
cases
適用するケースを指定します。
|
boolean |
chopped
指定したカラムの長さを超えた場合、切り出すかどうか指定します。
|
Class<?>[] |
groups
グループのクラスを指定します。
|
int |
order
アノテーションの処理順序の定義。
|
char |
padChar
パディングする際の文字を指定します。
|
Class<? extends PaddingProcessor> |
paddingProcessor
パディングの処理方法を指定します。
|
boolean |
rightAlign
右寄せをするかどうか指定します。
|
public abstract int size
値は1以上を指定する必要があります。
カラムのサイズは考え型によってバイト数、文字幅など異なるため、
属性paddingProcessor()
によって、変更することができます。
public abstract boolean rightAlign
public abstract boolean chopped
public abstract Class<? extends PaddingProcessor> paddingProcessor
PaddingProcessor
を実装したクラス指定します。
public abstract BuildCase[] cases
public abstract Class<?>[] groups
処理ごとに適用するアノテーションを切り替えたい場合に指定します。
DefaultGroup
が適用され全ての処理に適用されます。Copyright © 2022 mygreen. All rights reserved.