org.seasar.remoting.common.connector.impl
クラス TargetSpecificURLBasedConnector

java.lang.Object
  拡張org.seasar.remoting.common.connector.impl.URLBasedConnector
      拡張org.seasar.remoting.common.connector.impl.TargetSpecificURLBasedConnector
すべての実装インタフェース:
Connector

public abstract class TargetSpecificURLBasedConnector
extends URLBasedConnector

ターゲットとなるオブジェクトごとに個別のURLを使用してリモートメソッド呼び出しを行うコネクタの抽象基底クラスです。

このコネクタはリモートオブジェクトの名前をスーパークラスのプロパティに設定されたベースURLからの相対URLとしてターゲットとなるリモートオブジェクトのURLを解決します。 このため,ベースURLがスラッシュ( / )で終了していない場合、予期しない結果になるかもしれないことに注意してください。

例を示します。
ベースURLが次のように設定されているとします。

      http://host/context/services/
 
リモートオブジェクトが次の名前であるとします。
 Foo
 
リモートオブジェクトのURLは次のようになります。
      http://host/context/services/Foo
 
ベースURLが次のようにスラッシュ( / )で終了していない場合は結果が異なります。
      http://host/context/services
 
リモートオブジェクトが次の名前であるとします。
 Foo
 
リモートオブジェクトのURLは次のようになります。
      http://host/context/Foo
 

作成者:
koichik

入れ子クラスの概要
protected static class TargetSpecificURLBasedConnector.LRUMap
          LRUマップ
エントリ数に上限があり、それを超えてエントリが追加された場合にはもっとも使用されていないエントリが取り除かれるマップの実装です。
 
フィールドの概要
protected  TargetSpecificURLBasedConnector.LRUMap cachedURLs
           
protected static int DEFAULT_MAX_CACHED_URLS
          リモートオブジェクトのURLをキャッシュする上限のデフォルト値
 
クラス org.seasar.remoting.common.connector.impl.URLBasedConnector から継承したフィールド
baseURL
 
コンストラクタの概要
TargetSpecificURLBasedConnector()
           
 
メソッドの概要
protected  URL getTargetURL(String remoteName)
          ターゲットとなるリモートオブジェクトのURLを返します。
 Object invoke(String remoteName, Method method, Object[] args)
          ターゲットとなるリモートオブジェクトのURLを解決し、サブクラス固有の方法でメソッド呼び出しを実行します。
protected abstract  Object invoke(URL targetURL, Method method, Object[] args)
          サブクラス固有の方法でリモートメソッドの呼び出しを実行し、その結果を返します。
 void setMaxCachedURLs(int maxCachedURLs)
          リモートオブジェクトのURLをキャッシュする上限を設定します。
 
クラス org.seasar.remoting.common.connector.impl.URLBasedConnector から継承したメソッド
getBaseURL, setBaseURL
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

DEFAULT_MAX_CACHED_URLS

protected static final int DEFAULT_MAX_CACHED_URLS
リモートオブジェクトのURLをキャッシュする上限のデフォルト値

関連項目:
定数フィールド値

cachedURLs

protected TargetSpecificURLBasedConnector.LRUMap cachedURLs
コンストラクタの詳細

TargetSpecificURLBasedConnector

public TargetSpecificURLBasedConnector()
メソッドの詳細

setMaxCachedURLs

public void setMaxCachedURLs(int maxCachedURLs)
リモートオブジェクトのURLをキャッシュする上限を設定します。

パラメータ:
maxCachedURLs - リモートオブジェクトのURLをキャッシュする上限です

invoke

public Object invoke(String remoteName,
                     Method method,
                     Object[] args)
              throws Throwable
ターゲットとなるリモートオブジェクトのURLを解決し、サブクラス固有の方法でメソッド呼び出しを実行します。

パラメータ:
remoteName - リモートオブジェクトの名前
method - 呼び出すメソッド
args - リモートオブジェクトのメソッド呼び出しに渡される引数値を格納するオブジェクト配列
戻り値:
リモートオブジェクトに対するメソッド呼び出しからの戻り値
例外:
Throwable - リモートオブジェクトに対するメソッド呼び出しからスローされた例外です

getTargetURL

protected URL getTargetURL(String remoteName)
                    throws MalformedURLException
ターゲットとなるリモートオブジェクトのURLを返します。 リモートオブジェクトのURLは、リモートオブジェクトの名前をベースURLからの相対URLとして解決します。

パラメータ:
remoteName - ターゲットとなるリモートオブジェクトの名前
戻り値:
ターゲットとなるリモートオブジェクトのURL
例外:
MalformedURLException - ベースURLとリモートオブジェクトの名前からURLを作成できなかった場合にスローされます

invoke

protected abstract Object invoke(URL targetURL,
                                 Method method,
                                 Object[] args)
                          throws Throwable
サブクラス固有の方法でリモートメソッドの呼び出しを実行し、その結果を返します。

パラメータ:
targetURL - ターゲットとなるリモートオブジェクトのURL
method - 呼び出すメソッド
args - リモートオブジェクトのメソッド呼び出しに渡される引数値を格納するオブジェクト配列
戻り値:
リモートオブジェクトに対するメソッド呼び出しからの戻り値
例外:
Throwable - リモートオブジェクトに対するメソッド呼び出しからスローされた例外です


Copyright © 2005-2006 The Seasar Foundation. All Rights Reserved.