XlsArrayOption.java
- package com.gh.mygreen.xlsmapper.annotation;
- import java.lang.annotation.Documented;
- import java.lang.annotation.ElementType;
- import java.lang.annotation.Retention;
- import java.lang.annotation.RetentionPolicy;
- import java.lang.annotation.Target;
- import com.gh.mygreen.xlsmapper.AnnotationInvalidException;
- /**
- * {@link XlsArrayCells}、{@link XlsLabelledArrayCells}、{@link XlsArrayColumns}の書き込み時の配列・リストの操作を指定するためのアノテーションです。
- *
- * @since 2.0
- * @author T.TSUCHIE
- *
- */
- @Target({ElementType.METHOD, ElementType.FIELD})
- @Retention(RetentionPolicy.RUNTIME)
- @Documented
- public @interface XlsArrayOption {
- /**
- * 書き込み時にJavaオブジェクトの配列・リストのサイズに対して、属性size()の値が小さく、足りない場合の操作を指定します。
- *
- * <pre class="highlight"><code class="java">
- * {@literal @XlsSheet(name="Users")}
- * // 書き込むデータ
- * String[] data = String[]{"や", "ま", "だ", " ", "た", "ろ", "う"};
- *
- * // マッピングの定義
- * public class SampleSheet {
- *
- * // ラベルの右側 + 横方向の隣接するセル
- * {@literal @XlsLabelledArrayCells(columnName="ふりがな", type=LabelledCellType.Right, size=6)}
- * {@literal @XlsArrayOption(overOperation=OverOperation.Error)}
- * private {@literal List<String>} nameRuby;
- *
- * }
- * </code></pre>
- *
- * <div class="picture">
- * <img src="doc-files/ArrayOption_overOperation.png" alt="">
- * <p>属性overOperationの概要</p>
- * </div>
- *
- *
- * @return {@link OverOperation#Break}の場合、足りないセルがあるとそこで処理を終了します。
- */
- OverOperation overOpration() default OverOperation.Break;
- /**
- * 書き込み時にJavaオブジェクトの配列・リストのサイズに対して、属性size()の値が大きく、余っている場合の操作を指定します。
- *
- * <pre class="highlight"><code class="java">
- * {@literal @XlsSheet(name="Users")}
- * // 書き込むデータ
- * String[] data = String[]{"あ", "べ", " ", "あ", "い"};
- *
- * // マッピングの定義
- * public class SampleSheet {
- *
- * // ラベルの右側 + 横方向の隣接するセル
- * {@literal @XlsLabelledArrayCells(columnName="ふりがな", type=LabelledCellType.Right, size=6)}
- * {@literal @XlsArrayOption(remainedOperation=RemainedOperation.Clear)}
- * private {@literal List<String>} nameRuby;
- *
- * }
- * </code></pre>
- *
- * <div class="picture">
- * <img src="doc-files/ArrayOption_remainedOperation.png" alt="">
- * <p>属性remainedOperationの概要</p>
- * </div>
- *
- *
- * @return {@link RemainedOperation#None}の場合、余っているセルがあっても何もしません。
- */
- RemainedOperation remainedOperation() default RemainedOperation.None;
- /**
- * アノテーション {@link XlsArrayCells}や{@link XlsLabelledArrayCells}で、
- * 書き込み時に、配列やリストのデータサイズ数に対して、属性size()の値が小さい場合の操作を指定します。
- *
- * @since 2.0
- * @author T.TSUCHIE
- *
- */
- public enum OverOperation {
- /**
- * 隣接するセルへの書き込みを中断します。
- */
- Break,
- /**
- * 書き込み処理の前に、例外 {@link AnnotationInvalidException}をスローします。
- */
- Error
- ;
- }
- /**
- * アノテーション {@link XlsArrayCells}や{@link XlsLabelledArrayCells}で、
- * 書き込み時に、配列やリストのデータサイズ数に対して、属性size()の値が大きい場合の操作を指定します。
- *
- * @since 2.0
- * @author T.TSUCHIE
- *
- */
- public enum RemainedOperation {
- /**
- * 隣接するセルへの書き込み、その後、何もしません。
- */
- None,
- /**
- * 隣接するセルへの書き込み、その後、余っているセルの値をクリアします。
- */
- Clear
- ;
- }
- }