クラス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
    既知のコントロール・ファクトリを使用してコントロールを作成します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • 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内にラップされてから再スローされます。