モジュール java.naming
パッケージ javax.naming.ldap

クラスControlFactory

java.lang.Object
javax.naming.ldap.ControlFactory

public abstract class ControlFactory extends Object
このabstractクラスは、LDAPv3コントロールの作成に使用するファクトリを表示します。 LDAPv3コントロールはRFC 2251で定義されています。

サービス・プロバイダが応答コントロールを受信すると、このプロバイダはコントロール・ファクトリを使って、特定または任意のコントロール・クラスを返します。

導入されたバージョン:
1.3
関連項目:
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    コントロール・ファクトリの新しいインスタンスを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    abstract Control
    コントロール・ファクトリを使用するコントロールを作成します。
    static Control
    既知のコントロール・ファクトリを使用してコントロールを作成します。

    クラス java.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • ControlFactory

      protected ControlFactory()
      コントロール・ファクトリの新しいインスタンスを作成します。
  • メソッドの詳細

    • getControlInstance

      public abstract Control getControlInstance(Control ctl) throws NamingException
      コントロール・ファクトリを使用するコントロールを作成します。

      このファクトリは、サービス・プロバイダが、LDAPプロトコルから読み取るコントロールを特殊なコントロール・クラスとして返すときに使用します。 このメカニズムを使用しなければ、プロバイダはBERエンコード形式のデータだけを含むコントロールを返します。

      一般に、ctlは、BERエンコード・データを含む基本的なコントロールです。 ファクトリは、特殊なコントロールを実装するのに使用されますが、通常は、BERエンコード・データをデコードして、型保証された安全な方法で該当データにアクセスするメソッドを提供します。

      たとえば、ファクトリは基本的なコントロールのBERエンコード・データを使用してVirtualListReplyControlのインスタンスを返す場合があります。

      このファクトリが指定引数を使ってコントロールを作成できない場合、nullを返します。 例外がスローされるのは、このコントロール・ファクトリだけが使用され、ほかのコントロール・ファクトリが使用されないときだけです。 これは、たとえば、コントロールのBERデータが、指定されたOIDを持つとみなされているコントロールと一致しない場合に、発生するかもしれません。 このメソッドはNamingExceptionをスローするため、内部的に生成される例外を伝達する必要がある場合は、NamingExceptionにラップする必要があります。

      パラメータ:
      ctl - null以外のコントロール。
      戻り値:
      nullの可能性のあるコントロール。
      例外:
      NamingException - ctlが、コントロールの作成に使用できなくなる無効なデータを含んでいる場合。 OIDによって識別されるコントロールを生成できる場合、ファクトリは例外だけをスローするが、無効なBERデータなどがあればスローできない。
    • getControlInstance

      public static Control getControlInstance(Control ctl, Context ctx, Hashtable<?,?> env) throws NamingException
      既知のコントロール・ファクトリを使用してコントロールを作成します。

      コントロールを作成するには、次の規則が使用されます。

      • 環境のLdapContext.CONTROL_FACTORIESプロパティに指定されたコントロール・ファクトリを使用してから、ctxに関連付けられているプロバイダ・リソース・ファイルの同一プロパティに指定されたコントロール・ファクトリを使用する。 このプロパティの値は、コロンで区切られたファクトリ・クラス名のリストである。ファクトリ・クラスは、リストに指定された順番に使用される。コントロールの作成に最初に成功したファクトリが実際に使用される。 どのファクトリもロードできない場合は、ctlを返す。 コントロール作成中に、例外が発生したら、例外は呼出し側に引き渡される。

      コントロール・ファクトリはpublicですが、また引数を取らないpublicコンストラクタを持つ必要があります。 ファクトリが名前付きモジュールにある場合は、そのモジュールがjava.namingモジュールにエクスポートするパッケージ内にある必要があります。

      パラメータ:
      ctl - OIDおよびBERデータを含むnull以外のコントロール・オブジェクト。
      ctx - コントロールが作成されるnullの可能性があるコンテキスト。 nullの場合は、この情報は利用できない。
      env - nullの可能性のあるコンテキスト環境。 LdapContext.CONTROL_FACTORIESプロパティの値を検索するのに使用される。
      戻り値:
      ctlを使って生成されたコントロール・オブジェクト、または上記のアルゴリズムを使ってコントロール・オブジェクトを生成できない場合はctl
      例外:
      NamingException - ネーミング例外が、コントロール・オブジェクトを作成しようとするときに発生した場合。 アクセスされたファクトリの1つが例外をスローすると、その例外は呼出し側に送られる。 ファクトリおよびオブジェクト・クラスのロード中またはインスタンス生成中にエラーが発生すると、その例外はNamingExceptionの内部にラップされてから再度スローされる。