アノテーションインターフェース ValidateOnExecution
@TargetSE({CONSTRUCTORSE,METHODSE,TYPESE,PACKAGESE})
@RetentionSE(RUNTIMESE)
@DocumentedSE
public @interface ValidateOnExecution
実行時に検証されるパラメーターと戻り値を持つ実行可能ファイル(メソッドまたはコンストラクター)を表します。実行可能(メソッド、コンストラクター)または型レベル(前者が優先)にすることができます。
特定の実行可能ファイルに存在しない場合、META-INF/validation.xml
からのデフォルト設定と最後に暗黙のデフォルト検証済み実行可能型(コンストラクターと非 getter)が考慮され、特定の実行可能ファイルが実行時に検証されるかどうかが決定されます。
次に、実行可能ファイルを検証するかどうかを決定するための正式なルールについて説明します。それらは降順で適用されます。
- 実行可能ファイルは、
@ValidateOnExecution
でアノテーションが付けられ、type
属性に実行可能型またはExecutableType.IMPLICIT
が含まれている場合に検証されます。type
属性に実行可能型もIMPLICIT
も含まれていない場合、実行可能ファイルは検証されません。 - それ以外の場合、宣言された型(クラス、インターフェース)に
@ValidateOnExecution
アノテーションが付けられ、type
属性に実行可能型が含まれている場合、実行可能ファイルが検証されます。type
属性にIMPLICIT
が含まれている場合、このルールは無視され、動作はValidateOnExecution
が存在しないのと同等になります。type
属性に実行可能型が含まれていない場合、実行可能ファイルは検証されません。 - それ以外の場合、グローバル実行可能ファイル検証設定に実行可能型が含まれていれば、実行可能ファイルが検証されます。グローバル設定に実行可能型が含まれていない場合、実行可能ファイルは検証されません。
- 上記のルールは、スーパークラスメソッドをオーバーライドするメソッドや、インターフェースメソッドを実装するメソッドには適用されません。この場合、メソッドは、オーバーライドまたは実装するメソッドの動作を継承します。オーバーライド / 実装メソッドが
ValidateOnExecution
アノテーションをホストしている場合、そのままの状態で、適合実装はValidationException
を発生させます。
上記のルールが一致しないことを確認するか、@ValidateOnExecution(NONE)
で実行可能ファイルにアノテーションを付けることにより、実行可能ファイルを検証から除外できることに注意してください。
- 導入:
- 1.1
- 作成者:
- Emmanuel Bernard
オプション要素の概要
オプション要素
要素の詳細
type
ExecutableType[] type呼び出されたときに検証される実行可能型のリスト。デフォルトでは、暗黙的に検出された型になります(ExecutableType.IMPLICIT
を参照)。- 戻り値:
- 検証する
ExecutableType
の配列
- デフォルト:
- {IMPLICIT}