JAVAソース生成plugin vol.3


前回の最後にFormクラスのvalidateメソッドの自動生成について触れましたが、今回はvalidator拡張の種類について説明します。セッティングsheetにより、基本的な妥当性検査用のソースは自動生成されます。
しかしながら、より詳細なチェックを行う場合は、自動生成されたvalidateソースを開発者が拡張する必要があります。EzServletではvalidate拡張用メソッドが用意されていますので、その種類と内容について実際のコードを書きながら説明したいと思います。


1.EzServletの妥当性検査クラス
 EzServletでは妥当性検査用クラスとして、EzValidateUtilクラスが用意されています。
 自動生成されるFromクラスでは、このクラスがstatic importされています。
 EzValidateUtilクラスのstaticメソッドは、以下の5種類のメソッドが存在します。

(1) characterメソッド 文字妥当性チェックを行うメソッドです。
(2) numericメソッド 数値妥当性チェックを行うメソッドです。   
(3) dateメソッド 日付妥当性チェックを行うメソッドです。
(4) timeメソッド 時間妥当性チェックを行うメソッドです。
(5) fileメソッド ファイル妥当性チェックを行うメソッドです。

 セッティングsheetに妥当性検査の設定を行うと上記のいづれかを利用したチェックコードが自動生成されます。
 それでは各メソッドの拡張機能について説明します。


2.各メソッドの拡張機能
 (1) characterメソッド

// 全角文字のみ入力可能なチェックコードは以下の通りです。
character(EzMessage).name(入力項目のプロパティキー).digit(入力文字数).emSize().validate(入力値); 

    拡張機能1:入力必須桁数を指定する方法
    character(...).digit(入力必須桁数,最大入力桁数)

    拡張機能2:プロジェクト禁文字を入力可能にする方法
    character(...).allowedProhibition()

    拡張機能3:入力許可文字を追加する方法
    character(...).include(char)

    拡張機能4:入力禁止文字を追加する方法
    character(...).exclude(char)

    拡張機能5:入力可文字列を限定する方法
    character(...).compareWords(String...)


 (2) numericメソッド   

// 数値(少数含む)入力可能なチェックコードは以下の通りです。
numeric(EzMessage).name(入力項目のプロパティキー).digit(整数桁).scale(少数桁).validate(入力値);  

    拡張機能1:整数入力必須桁数を指定する方法
    numeric(...).digit(入力必須桁数,最大入力桁数)

    拡張機能2:少数入力必須桁数を指定する方法
    numeric(...).scale(入力必須桁数,最大入力桁数)

    拡張機能3:入力可な値の範囲を設定する方法
    numeric(...).range(double, double)

    拡張機能4:入力フォーマットを設定する方法
    numeric(...).format(String) 例:format("0,000.###")

    拡張機能5:0を未入力扱いにする方法
    numeric(...).excludeZero()


 (3) dateメソッド  

// 日付(yyyyMMdd)チェックコードは以下の通りです。
date(EzMessage).name(入力項目のプロパティキー).validate(入力値);  

    拡張機能1:入力フォーマットを設定する方法
    date(...).format(String) 例:format("yyyy/MM/dd")

    拡張機能2:年月(yyyyMM)の妥当性検査をする方法
    date(...).yearMonth()


 (4) timeメソッド   

// 時間(hhmmss)チェックコードは以下の通りです。
time(EzMessage).name(入力項目のプロパティキー).validate(入力値); 

    拡張機能1:入力フォーマットを設定する方法
    time(...).format(String) 例:format("hh:mm:ss")

    拡張機能2:時分(hhMM)の妥当性検査をする方法
    time(...).hourMinutes()


 (5) fileメソッド   

// UploadFileのチェックコードは以下の通りです。
file(EzMessage).name(入力項目のプロパティキー).validate(java.io.File);  

    拡張機能1:Upload可能なファイルサイズ(Byte)を指定する方法
    file(...).size(long)

    拡張機能2:UPLOAD可ファイル拡張子を指定する方法
    file(...).includeExtentions(String...)


これらの拡張機能によって、かなりの妥当性検査は網羅することが出来るかと思います。
現在は、もう一つだけメソッド(条件付必須)を追加する予定ですが、拡張機能にこんなのがあると良い(便利)とおもうものがありましたら気軽に言ってください。
前向きに検討しようと思います。


尚、条件付必須は以下のようにする予定です。
character(...).ifRequiredrequiredIf(boolean)


【追記】
条件付必須のチェックメソッドrequiredIf(boolean)が完成しましたので、利用方法を説明します。
下記のvalidateコードがを例に説明したいと思います。

// 「メールアドレス」項目に対して「半角」チェックをないます。
character(ezMessage).name(VC.MAIL).digit(100).alphabet().number().validate(this.mail);
// 「携帯メールアドレス」項目に対して「半角」チェックをないます。
character(ezMessage).name(VC.TEL_MAIL).digit(100).alphabet().number().validate(this.telMail);

上記validateコードに「メールアドレスに入力が無い場合は、携帯メールアドレスを入力必須」にするチェックを追加すると以下のようになります。

// 「メールアドレス」項目に対して「半角」チェックをないます。
character(ezMessage).name(VC.MAIL).digit(100).alphabet().number().validate(this.mail);
// 「携帯メールアドレス」項目に対して「半角」チェックをないます。
character(ezMessage).name(VC.TEL_MAIL).digit(100).alphabet().number()
.requiredIf(this.mail.equals("")).validate(this.telMail);

これだけでok...簡単ですね(^^)