public class SpringValidatorAdapter extends ObjectSE implements SmartValidator, ValidatorEE
javax.validator.Validator を取り、それを Spring Validator として公開すると同時に、元の JSR-303 Validator インターフェース自体を公開するアダプター。 プログラムラッパーとして使用できます。CustomValidatorBean および LocalValidatorFactoryBean の基本クラスとしても機能します。
Spring Framework 5.0 以降、このアダプターは Bean 検証 1.1 および 2.0 と完全に互換性があります。
| コンストラクターと説明 |
|---|
SpringValidatorAdapter(ValidatorEE targetValidator) 指定された JSR-303 バリデーターの新しい SpringValidatorAdapter を作成します。 |
| 修飾子と型 | メソッドと説明 |
|---|---|
protected StringSE | determineErrorCode(ConstraintDescriptorEE<?> descriptor) 指定された制約記述子の Spring 報告エラーコードを決定します。 |
protected StringSE | determineField(ConstraintViolationEE<ObjectSE> violation) 指定された制約違反のフィールドを決定します。 |
ExecutableValidatorEE | forExecutables() |
protected ObjectSE[] | getArgumentsForConstraint(StringSE objectName, StringSE field, ConstraintDescriptorEE<?> descriptor) 指定されたフィールドの検証エラーの FieldError 引数を返します。 |
BeanDescriptorEE | getConstraintsForClass(ClassSE<?> clazz) |
protected ObjectSE | getRejectedValue(StringSE field, ConstraintViolationEE<ObjectSE> violation, BindingResult bindingResult)Spring エラー表現による露出のために、指定された制約違反の背後にある拒否された値を抽出します。 |
protected MessageSourceResolvable | getResolvableField(StringSE objectName, StringSE field) 指定されたフィールドの解決可能なラッパーを構築し、 MessageSource のフィールド名を解決できるようにします。 |
protected void | processConstraintViolations(SetSE<ConstraintViolationEE<ObjectSE>> violations, Errors errors) 指定された JSR-303 ConstraintViolations を処理し、対応するエラーを提供された Spring Errors オブジェクトに追加します。 |
boolean | supports(ClassSE<?> clazz) |
<T> T | unwrap(ClassSE<T> type) |
void | validate(ObjectSE target, Errors errors) 提供された target オブジェクトを検証します。これは、Validator.supports(Class) メソッドが通常 true を返す(または返すと想定される)ClassSE でなければなりません。 |
void | validate(ObjectSE target, Errors errors, ObjectSE... validationHints) |
<T> SetSE<ConstraintViolationEE<T>> | validate(T object, ClassSE<?>... groups) |
<T> SetSE<ConstraintViolationEE<T>> | validateProperty(T object, StringSE propertyName, ClassSE<?>... groups) |
<T> SetSE<ConstraintViolationEE<T>> | validateValue(ClassSE<T> beanType, StringSE propertyName, ObjectSE value, ClassSE<?>... groups) |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSEpublic SpringValidatorAdapter(ValidatorEE targetValidator)
targetValidator - ラップする JSR-303 バリデーター public void validate(@Nullable ObjectSE target, Errors errors)
Validatortarget オブジェクトを検証します。これは、Validator.supports(Class) メソッドが通常 true を返す(または返すと想定される)ClassSE でなければなりません。 提供された errors インスタンスを使用して、結果の検証エラーを報告できます。
target - 検証されるオブジェクト (null にすることができます)errors - 検証プロセスに関するコンテキスト状態 (非 null)ValidationUtilspublic void validate(@Nullable ObjectSE target, Errors errors, @Nullable ObjectSE... validationHints)
SmartValidatortarget オブジェクトを検証します。これは、Validator.supports(Class) メソッドが通常 true を返す ClassSE 型でなければなりません。 提供された errors インスタンスを使用して、結果の検証エラーを報告できます。
validate() のこのバリアントは、JSR-303 プロバイダーに対する検証グループなどの検証ヒントをサポートします(この場合、提供されるヒントオブジェクトは、型 Class のアノテーション引数である必要があります)。
メモ: 検証ヒントは、実際のターゲット Validator によって無視される場合があります。その場合、このメソッドは通常の Validator.validate(Object, Errors) 兄弟と同様に動作するはずです。
SmartValidator 内の validate target - 検証されるオブジェクト (null にすることができます)errors - 検証プロセスに関するコンテキスト状態 (非 null)validationHints - 検証エンジンに渡される 1 つ以上のヒントオブジェクト ValidationUtilsprotected void processConstraintViolations(SetSE<ConstraintViolationEE<ObjectSE>> violations, Errors errors)
Errors オブジェクトに追加します。violations - JSR-303 ConstraintViolation の結果 errors - 登録する Spring エラーオブジェクト protected StringSE determineField(ConstraintViolationEE<ObjectSE> violation)
デフォルトの実装は、文字列化されたプロパティパスを返します。
violation - 現在の JSR-303 ConstraintViolationErrors で使用)ConstraintViolation.getPropertyPath()EE, FieldError.getField()protected StringSE determineErrorCode(ConstraintDescriptorEE<?> descriptor)
デフォルトの実装は、記述子のアノテーション型の単純なクラス名を返します。構成された MessageCodesResolver は、オブジェクト名とフィールド名を含むエラーコードのバリエーションを自動的に生成することに注意してください。
descriptor - 現在の違反の JSR-303 ConstraintDescriptorErrors で使用)ConstraintDescriptor.getAnnotation()EE, MessageCodesResolverprotected ObjectSE[] getArgumentsForConstraint(StringSE objectName, StringSE field, ConstraintDescriptorEE<?> descriptor)
デフォルトの実装は、フィールド名を示す最初の引数を返します(getResolvableField(java.lang.String, java.lang.String) を参照)。その後、実際のすべての制約アノテーション属性(つまり、「メッセージ」、「グループ」、「ペイロード」を除く)を属性名のアルファベット順に追加します。
たとえば、次のようにオーバーライドできます。制約記述子からさらに属性を追加します。
objectName - ターゲットオブジェクトの名前 field - バインディングエラーの原因となったフィールド descriptor - JSR-303 制約記述子 DefaultMessageSourceResolvable.getArguments(), DefaultMessageSourceResolvable, DefaultBindingErrorProcessor.getArgumentsForBindError(java.lang.String, java.lang.String)protected MessageSourceResolvable getResolvableField(StringSE objectName, StringSE field)
MessageSource のフィールド名を解決できるようにします。 デフォルトの実装では、フィールドを示す最初の引数が返されます。この引数は、型が DefaultMessageSourceResolvable で、コードとして "objectName.field" と "field"、デフォルトのメッセージとしてプレーンフィールド名を持ちます。
objectName - ターゲットオブジェクトの名前 field - バインディングエラーの原因となったフィールド MessageSourceResolvable @Nullable protected ObjectSE getRejectedValue(StringSE field, ConstraintViolationEE<ObjectSE> violation, BindingResult bindingResult)
field - バインディングエラーの原因となったフィールド violation - 対応する JSR-303 ConstraintViolationbindingResult - 現在のフィールドの値を含むバッキングオブジェクトの Spring BindingResultConstraintViolation.getInvalidValue()EE, FieldError.getRejectedValue()public <T> SetSE<ConstraintViolationEE<T>> validate(T object, ClassSE<?>... groups)
ValidatorEE 内の validateEE public <T> SetSE<ConstraintViolationEE<T>> validateProperty(T object, StringSE propertyName, ClassSE<?>... groups)
ValidatorEE 内の validatePropertyEE public <T> SetSE<ConstraintViolationEE<T>> validateValue(ClassSE<T> beanType, StringSE propertyName, ObjectSE value, ClassSE<?>... groups)
ValidatorEE 内の validateValueEE public BeanDescriptorEE getConstraintsForClass(ClassSE<?> clazz)
ValidatorEE 内の getConstraintsForClassEE public <T> T unwrap(@Nullable ClassSE<T> type)
ValidatorEE 内の unwrapEE public ExecutableValidatorEE forExecutables()
ValidatorEE 内の forExecutablesEE