クラス AbstractFallbackRequestAndResponseControlDirContextProcessor

java.lang.ObjectSE
org.springframework.ldap.control.AbstractRequestControlDirContextProcessor
org.springframework.ldap.control.AbstractFallbackRequestAndResponseControlDirContextProcessor
実装されているすべてのインターフェース:
DirContextProcessor
既知の直属サブクラス
PagedResultsDirContextProcessorSortControlDirContextProcessorVirtualListViewControlDirContextProcessor

public abstract class AbstractFallbackRequestAndResponseControlDirContextProcessor extends AbstractRequestControlDirContextProcessor
リクエスト制御とレスポンス制御を持つ標準 DirContextProcessor を実装する場合に便利な基本クラス。必要に応じて、サブクラスによって指定されたフォールバック実装を使用して、コントロールクラスの読み込みを処理します。リクエスト制御コンストラクターの呼び出しを処理します。コンストラクターの引数を指定するだけで済みます。また、レスポンスコントロールの後処理でほとんどの作業を処理し、実際の値を取得するためのテンプレートメソッドに委譲するだけです。つまり、カスタム DirContextProcessor の実装が容易になります。

 public class SortControlDirContextProcessor extends AbstractFallbackRequestAndResponseControlDirContextProcessor {
        String sortKey;

        private boolean sorted = false;

        private int resultCode = -1;

        public SortControlDirContextProcessor(String sortKey) {
                this.sortKey = sortKey;

                defaultRequestControl = "javax.naming.ldap.SortControl";
                defaultResponseControl = "com.sun.jndi.ldap.ctl.SortControl";
                fallbackRequestControl = "javax.naming.ldap.SortResponseControl";
                fallbackResponseControl = "com.sun.jndi.ldap.ctl.SortResponseControl";

                loadControlClasses();
        }

        public boolean isSorted() {
                return sorted;
        }

        public int getResultCode() {
                return resultCode;
        }

        public Control createRequestControl() {
                return super.createRequestControl(new Class[] { String[].class, boolean.class }, new Object[] {
                                new String[] { sortKey }, Boolean.valueOf(critical) });
        }

        protected void handleResponse(Object control) {
                Boolean result = (Boolean) invokeMethod("isSorted", responseControlClass, control);
                this.sorted = result.booleanValue();
                Integer code = (Integer) invokeMethod("getResultCode", responseControlClass, control);
                resultCode = code.intValue();
        }
 }
 
  • フィールドの詳細

    • responseControlClass

      protected ClassSE<?> responseControlClass
    • requestControlClass

      protected ClassSE<?> requestControlClass
    • critical

      protected boolean critical
    • defaultRequestControl

      protected StringSE defaultRequestControl
    • defaultResponseControl

      protected StringSE defaultResponseControl
    • fallbackRequestControl

      protected StringSE fallbackRequestControl
    • fallbackResponseControl

      protected StringSE fallbackResponseControl
  • コンストラクターの詳細

    • AbstractFallbackRequestAndResponseControlDirContextProcessor

      public AbstractFallbackRequestAndResponseControlDirContextProcessor()
  • メソッドの詳細

    • loadControlClasses

      protected void loadControlClasses()
    • setResponseControlClass

      public void setResponseControlClass(ClassSE<?> responseControlClass)
      ソート結果レスポンスの予想される ResponseControl のクラスを設定します。
      パラメーター:
      responseControlClass - 予想されるレスポンスコントロールのクラス。
    • setRequestControlClass

      public void setRequestControlClass(ClassSE<?> requestControlClass)
    • invokeMethod

      protected ObjectSE invokeMethod(StringSE method, ClassSE<?> clazz, ObjectSE control)
      Control でメソッドを呼び出すためのユーティリティメソッド。
      パラメーター:
      method - 呼び出すメソッドの名前
      clazz - メソッドが呼び出されるオブジェクトのクラス
      control - メソッドを呼び出すインスタンス
      戻り値:
      呼び出し結果(ある場合)
    • createRequestControl

      public ControlSE createRequestControl(ClassSE<?>[] paramTypes, ObjectSE[] params)
      params で指定されたコンストラクターパラメーターを使用してリクエストコントロールを作成します。
      パラメーター:
      paramTypes - コンストラクターパラメーターの型
      params - 実際のコンストラクターパラメーター
      戻り値:
      DirContextProcessor で使用するコントロール
    • postProcess

      public void postProcess(DirContextSE ctx) throws NamingExceptionSE
      インターフェースからコピーされた説明: DirContextProcessor
      提供された DirContext で後処理を実行します。
      パラメーター:
      ctx - DirContext インスタンス。
      例外:
      NamingExceptionSE - 基になる操作によってスローされた場合。
    • setCritical

      public void setCritical(boolean critical)
      このコントロールをクリティカルとして表示するかどうかを設定します。
      パラメーター:
      critical - コントロールが重要かどうか。
      導入:
      2.0
    • handleResponse

      protected abstract void handleResponse(ObjectSE control)