パッケージ jakarta.validation

インターフェース Configuration<T extends Configuration<T>>

  • 型パラメーター:
    T - この契約のプロバイダー固有の特殊化の型

    public interface Configuration<T extends Configuration<T>>
    構成情報を受け取り、適切な Jakarta Bean Validation プロバイダーを選択し、適切な ValidatorFactory をビルドします。

    使用法:

     //provided by one of the Validation bootstrap methods
     Configuration<?> configuration =
         ValidatorFactory = configuration
             .messageInterpolator( new CustomMessageInterpolator() )
             .buildValidatorFactory();
     

    デフォルトでは、構成情報は META-INF/validation.xml から取得されます。1 つ以上の Configuration メソッドを使用して、XML ファイルから取得した構成を上書きすることが可能です。

    ValidationProviderResolver は構成時に指定されます(ValidationProvider を参照)。明示的にリクエストされていない場合は、デフォルトの ValidationProviderResolver が使用されます。

    プロバイダーは次の方法で選択されます。

    • 特定のプロバイダーが Validation.byProvider(Class) を使用してプログラムでリクエストされた場合、リクエストされたプロバイダークラスを実装する最初のプロバイダーを見つけて使用します。
    • META-INF/validation.xml で特定のプロバイダーがリクエストされた場合は、リクエストされたプロバイダークラスを実装する最初のプロバイダーを見つけて使用します。
    • それ以外の場合は、ValidationProviderResolver によって返された最初のプロバイダーを使用します

    実装はスレッドセーフであることを意図していません。

    作成者:
    Emmanuel Bernard, Gunnar Morling, Hardy Ferentschik, Guillaume Smet
    • メソッドの詳細

      • ignoreXmlConfiguration

        T ignoreXmlConfiguration()
        このメソッドが呼び出された場合、META-INF/validation.xml ファイルのデータを無視します。

        このメソッドは通常、META-INF/validation.xml 自体を解析し、Configuration メソッドを介して情報を渡すコンテナーに役立ちます。

        戻り値:
        チェーン方式パターンに従う this
      • messageInterpolator

        T messageInterpolator​(MessageInterpolator interpolator)
        使用するメッセージ補間を定義します。設定ベースのメッセージ補間よりも優先されます。

        null が渡されると、デフォルトのメッセージ補間が使用されます(XML で定義されているか、仕様のデフォルトです)。

        パラメーター:
        interpolator - メッセージ補間機能の実装
        戻り値:
        チェーン方式パターンに従う this 
      • traversableResolver

        T traversableResolver​(TraversableResolver resolver)
        使用される通過可能なリゾルバーを定義します。構成ベースの走査可能なリゾルバーよりも優先されます。

        null が渡された場合、デフォルトの走査可能なリゾルバーが使用されます(XML または仕様のデフォルトで定義されています)。

        パラメーター:
        resolver - 走査可能なリゾルバーの実装
        戻り値:
        チェーン方式パターンに従う this 
      • constraintValidatorFactory

        T constraintValidatorFactory​(ConstraintValidatorFactory constraintValidatorFactory)
        制約バリデータファクトリを定義します。構成ベースの制約ファクトリよりも優先されます。

        null が渡された場合、デフォルトの制約バリデーターファクトリが使用されます(XML または仕様のデフォルトで定義されています)。

        パラメーター:
        constraintValidatorFactory - 制約ファクトリの実装
        戻り値:
        チェーン方式パターンに従う this 
      • parameterNameProvider

        T parameterNameProvider​(ParameterNameProvider parameterNameProvider)
        パラメーター名プロバイダーを定義します。構成ベースのプロバイダーよりも優先されます。

        null が渡された場合、デフォルトのパラメーター名プロバイダーが使用されます(XML または仕様のデフォルトで定義されています)。

        パラメーター:
        parameterNameProvider - パラメーター名プロバイダーの実装
        戻り値:
        チェーン方式パターンに従う this
        導入:
        1.1
      • clockProvider

        T clockProvider​(ClockProvider clockProvider)
        クロックプロバイダーを定義します。構成ベースのプロバイダーよりも優先されます。

        null が渡された場合、デフォルトのクロックプロバイダーが使用されます(XML または仕様のデフォルトで定義)。

        パラメーター:
        clockProvider - クロックプロバイダーの実装
        戻り値:
        チェーン方式パターンに従う this
        導入:
        2.0
      • addValueExtractor

        T addValueExtractor​(ValueExtractor<?> extractor)
        値抽出機能を追加します。サービスローダーを通じて検出された、または XML 構成で指定された同じ型および型パラメーターの抽出よりも優先されます。
        パラメーター:
        extractor - 値抽出の実装
        戻り値:
        チェーン方式パターンに従う this
        例外:
        ValueExtractorDeclarationException - 同じ型と型パラメーターに複数のエクストラクターが追加された場合
        導入:
        2.0
      • addMapping

        T addMapping​(InputStreamSE stream)
        Jakarta Bean Validation XML 形式で制約マッピングを記述するストリームを追加します。

        ValidatorFactory が構築された後、ストリームはクライアント API によって閉じられる必要があります。Jakarta Bean Validation プロバイダーはストリームを閉じてはなりません。

        パラメーター:
        stream - XML マッピングストリーム。指定されたストリームは、マーク / リセット契約をサポートする必要があります(InputStream.markSupported() を参照)。そうでない場合は、Jakarta Bean Validation プロバイダーによってマーク / リセット契約をサポートするストリームにラップされます。
        戻り値:
        チェーン方式パターンに従う this 
        例外:
        IllegalArgumentExceptionSE - stream が null の場合
      • addProperty

        T addProperty​(StringSE name,
                      StringSE value)
        プロバイダー固有のプロパティを追加します。このプロパティは、XML 構成プロパティと同等です。基になるプロバイダーがプロパティの処理方法を知らない場合は、確認なしでそれを無視する必要があります。

        メモ: この型安全でない方法を使用することは、一般的には推奨されません。

        可能な場合は、Configuration サブクラスを介して特定のプロバイダーによって提供される型安全な同等のものを使用する方が適切です。

         ValidatorFactory factory = Validation.byProvider(ACMEProvider.class)
             .configure()
                 .providerSpecificProperty(ACMEState.FAST)
             .buildValidatorFactory();
         
        このメソッドは通常、META-INF/validation.xml 自体を解析し、Configuration オブジェクトに状態を注入するコンテナーによって使用されます。

        特定の名前のプロパティがこのメソッドと XML 構成の両方で定義されている場合、プログラムで設定された値が優先されます。

        null が値として渡される場合、XML で定義された値が使用されます。XML で値が定義されていない場合、プロパティは未設定と見なされます。

        パラメーター:
        name - プロパティ名
        value - プロパティ値
        戻り値:
        チェーン方式パターンに従う this 
        例外:
        IllegalArgumentExceptionSE - name が null の場合
      • getDefaultMessageInterpolator

        MessageInterpolator getDefaultMessageInterpolator()
        仕様で定義されているデフォルトの MessageInterpolator に続く MessageInterpolator インターフェースの実装を返します。
        • ValidationMessages リソースバンドルを使用してキーをロードする
        • Locale.getDefault() を使用
        戻り値:
        仕様に準拠したデフォルトの MessageInterpolator 実装
      • getDefaultTraversableResolver

        TraversableResolver getDefaultTraversableResolver()
        仕様で定義されているデフォルトの TraversableResolver に続く TraversableResolver インターフェースの実装を返します。
        • ランタイム環境で Java Persistence が使用可能な場合、Java Persistence がプロパティをロード済みと見なすと、プロパティは到達可能と見なされます。
        • ランタイム環境で Java Persistence が使用できない場合、すべてのプロパティは到達可能と見なされます
        • すべてのプロパティはカスケード可能と見なされます。
        戻り値:
        仕様に準拠したデフォルトの TraversableResolver 実装
      • getDefaultConstraintValidatorFactory

        ConstraintValidatorFactory getDefaultConstraintValidatorFactory()
        仕様で定義されているデフォルトの ConstraintValidatorFactory に続く ConstraintValidatorFactory インターフェースの実装を返します。
        戻り値:
        仕様に準拠したデフォルトの ConstraintValidatorFactory 実装
      • getDefaultParameterNameProvider

        ParameterNameProvider getDefaultParameterNameProvider()
        仕様で定義されているデフォルトの ParameterNameProvider に続く ParameterNameProvider インターフェースの実装を返します。
        • 実行可能ファイルのクラスファイルにパラメーター名情報が含まれている場合、検証済みの実行可能ファイルの定義で提供されている実際のパラメーター名を返します
        • それ以外の場合は、arg&lt;PARAMETER_INDEX&gt; の形式で名前を返します。PARAMETER_INDEX は、最初のパラメーターの 0 から始まります。arg0arg1 など
        戻り値:
        仕様に準拠したデフォルトの ParameterNameProvider 実装
        導入:
        1.1
      • getDefaultClockProvider

        ClockProvider getDefaultClockProvider()
        仕様で定義されているデフォルトの ClockProvider に続く ClockProvider インターフェースの実装を返します。
        • 現在のシステム時刻とデフォルトのタイムゾーンを表す監視を返します。
        戻り値:
        仕様に準拠したデフォルトの ClockProvider 実装
        導入:
        2.0
      • getBootstrapConfiguration

        BootstrapConfiguration getBootstrapConfiguration()
        META-INF/validation.xml ファイルに保存されている構成情報を返します。

        :
        実装では、このオブジェクトを遅延してビルドして解析を遅延させることをお勧めします。

        戻り値:
        BootstrapConfiguration のインスタンスを返します。このメソッドは null を返しません。META-INF/validation.xml がない場合、返されたインスタンスの異なる getter はそれぞれ null を返し、空のセットまたはマップを返します。
        導入:
        1.1