View Javadoc
1   package com.github.mygreen.supercsv.builder;
2   
3   import com.github.mygreen.supercsv.annotation.conversion.CsvFixedSize;
4   import com.github.mygreen.supercsv.cellprocessor.conversion.PaddingProcessor;
5   import com.github.mygreen.supercsv.cellprocessor.conversion.SimplePaddingProcessor;
6   
7   /**
8    * 固定長のカラムのアノテーション{@link CsvFixedSize} を元に作成した情報。
9    *
10   * @since 2.5
11   * @author T.TSUCHIE
12   *
13   */
14  public class FixedSizeColumnProperty {
15  
16      private static final PaddingProcessor DEFAULT_PADDING_PROCESSOR = new SimplePaddingProcessor();
17  
18      /**
19       * 固定長カラムのサイズを指定します。
20       * <p>値は1以上を指定する必要があります。</p>
21       * <p>サイズは考え型によってバイト数、文字幅など異なるため、
22       *    属性{@link #paddingProcessor()}によって、変更することができます。
23       * </p>
24       *
25       * @return 固定長カラムのサイズ。
26       */
27      private final int size;
28  
29      /**
30       * パディングする際の文字を指定します。
31       * <br>読み込み時には、トリム対象の文字となります。
32       *
33       */
34      private char padChar = ' ';
35  
36      /**
37       * パディング時に指定したカラムの長さを超えた場合、切り出すかどうか指定します。
38       * <p>trueの場合、指定したカラムの長さを超えた場合切り出します。
39       * <p>falseの場合、指定したカラムの長さを超えた場合何もしません。
40       *
41       */
42      private boolean chopped = false;
43  
44      /**
45       * パディングの処理方法を指定します。
46       */
47      private PaddingProcessor paddingProcessor = DEFAULT_PADDING_PROCESSOR;
48  
49      /**
50       * 右寄せをするかどうか指定します。
51       * <br>読み込み時のトリム時は、逆の意味になるので注意。
52       * <br>falseの場合は、左詰めです。
53       */
54      private boolean rightAlign = false;
55  
56      /**
57       * 固定長カラムのサイズを指定するコンストラクタ。
58       * 
59       * @param size 固定長カラムのサイズ。1以上を指定する必要があります。
60       * @throws IllegalArgumentException sizeが0以下の時にスローされます。
61       */
62      public FixedSizeColumnProperty(int size) {
63          if (size <= 0) {
64              throw new IllegalArgumentException("size shoud be greater than or equals 1 (>=1).");
65          }
66          this.size = size;
67      }
68  
69      public int getSize() {
70          return size;
71      }
72  
73      public char getPadChar() {
74          return padChar;
75      }
76  
77      public void setPadChar(char padChar) {
78          this.padChar = padChar;
79      }
80  
81      public boolean isChopped() {
82          return chopped;
83      }
84  
85      public void setChopped(boolean chopped) {
86          this.chopped = chopped;
87      }
88  
89      public PaddingProcessor getPaddingProcessor() {
90          return paddingProcessor;
91      }
92  
93      public void setPaddingProcessor(PaddingProcessor paddingProcessor) {
94          this.paddingProcessor = paddingProcessor;
95      }
96  
97      public boolean isRightAlign() {
98          return rightAlign;
99      }
100 
101     public void setRightAlign(boolean rightAlign) {
102         this.rightAlign = rightAlign;
103     }
104 }