IsEmptyConfig.java

package com.gh.mygreen.xlsmapper.util;



/**
 * {@link IsEmptyBuilder}の設定を組み立てるクラス。
 * 
 * @since 1.0
 * @author T.TSUCHIE
 *
 */
public class IsEmptyConfig {
    
    /**
     * 数値の場合、0を空として扱うか。
     */
    private boolean zeroAsEmpty;
    
    /**
     * 配列の場合、値も対象とするかどうか。
     */
    private boolean testArrayElement;
    
    /**
     * Collectionの場合、値も対象とするかどうか。
     */
    private boolean testCollectionElement;
    
    /**
     * Mapの場合、値も対象とするかどうか。
     */
    private boolean testMapValue;
    
    /**
     * ransientが付与されたフィールドも対象とするかどうか。
     */
    private boolean testTransient;
    
    /**
     * インスタンスを作成する。
     * @return
     */
    public static IsEmptyConfig create() {
        return new IsEmptyConfig();
    }
    
    /**
     * コンストラクタ
     */
    public IsEmptyConfig() {
        
        this.zeroAsEmpty = true;
        this.testArrayElement = true;
        this.testCollectionElement = true;
        this.testMapValue = true;
        this.testTransient = false;
    }
    
    /**
     * 数値の0を空として扱うかどうか。
     * @return true:0を空として扱う。初期値はtrueです。
     */
    public boolean isZeroAsEmpty() {
        return zeroAsEmpty;
    }
    
    /**
     * 数値の0を空として扱うかどうか設定します。
     * @param zeroAsEmpty 数値の0を空として扱うかどうか。
     * @return 自身のインスタンス
     */
    public IsEmptyConfig withZeroAsEmpty(boolean zeroAsEmpty) {
        this.zeroAsEmpty = zeroAsEmpty;
        return this;
        
    }
    
    /**
     * 配列の値も検証対象とするかどうか。
     * @return true:配列の値も検証対象とする。初期値はtrueです。
     */
    public boolean isTestArrayElement() {
        return testArrayElement;
    }
    
    /**
     * 配列の値も検証対象とするかどうかを設定します設定します。
     * @param testArrayElement 配列の値も検証対象とするかどうか
     * @return 自身のインスタンス
     */
    public IsEmptyConfig withTestArrayElement(boolean testArrayElement) {
        this.testArrayElement = testArrayElement;
        return this;
    }
    
    /**
     * Collectionの値も検証対象とするかどうか。
     * @return true:Collectionの値も検証対象とする。初期値はtrueです。
     */
    public boolean isTestCollectionElement() {
        return testCollectionElement;
    }
    
    /**
     * Collectionの値も検証対象とするかどうかを設定します設定します。
     * @param testCollectionElement Collectionの値も検証対象とするかどうか
     * @return 自身のインスタンス
     */
    public IsEmptyConfig withTestCollectionElement(boolean testCollectionElement) {
        this.testCollectionElement = testCollectionElement;
        return this;
    }
    
    /**
     * Mapの値も検証対象とするかどうか。
     * @return true:Mapの値も検証対象とする。初期値はtrueです。
     */
    public boolean isTestMapValue() {
        return testMapValue;
    }
    
    /**
     * Mapの値も検証対象とするかどうかを設定します設定します。
     * @param testMapValue Mapの値も検証対象とするかどうか
     * @return 自身のインスタンス
     */
    public IsEmptyConfig withTestMapValue(boolean testMapValue) {
        this.testMapValue = testMapValue;
        return this;
    }
    
    /**
     * transientが付与されたフィールドも対象とするかどうか。
     * @return true:場合テスト対象となります。初期値はfalseです。
     */
    public boolean isTestTransient() {
        return testTransient;
    }
    
    /**
     * transientが付与されたフィールドも対象とするかどうか設定します。
     * @param testTransient transientが付与されたフィールドも対象とするかどうか。
     * @return 自身のインスタンス
     */
    public IsEmptyConfig withTestTransient(boolean testTransient) {
        this.testTransient = testTransient;
        return this;
    }
    
}