ページの先頭行へ戻る
 Apcoordinatorユーザーズガイド

12.3.4 利用者作成サービスアダプタ

AsyncServiceAdapterインタフェースを実装し、サービスアダプタを作成できます。

AsyncServiceFactoryインタフェースで指定したサービス名が、asyncマップで定義したuserタグのname属性と一致する場合に、利用者が作成した指定のサービスアダプタを生成します。

次は、MyAppcServiceというサービス名のアダプタを直接呼び出しするasyncマップの定義例です。

<asyncMap>
  <user name="MyAppcService" class="test.MyAppService"/>

次は、test.MyAppServiceクラスの定義例です。

package test;
import com.fujitsu.uji.async.*;
public class MyAppService implements AsyncServiceAdapter{
  public MyAppService(){
      ...
  }
  public void begin(Object parameter) throws AsyncServiceException{
      ...
  }
  public AsyncServiceID execute(Object data, Object parameter) throws AsyncServiceException{
      ...
  }
  public boolean hasResult(AsyncServiceID id) throws AsyncServiceException{
      ...
  }
  public Object getResult(AsyncServiceID id) throws AsyncServiceException{
      ...
  }
  public Object removeResult(AsyncServiceID id) throws AsyncServiceException{
      ...
  }
  ...

次は、上記のサービスを利用するプログラム例です。

  AsyncServiceFactory factory
   = (AsyncServiceFactory)InitialFactory.createFactory(context, InitialFactory.ASYNCSERVICEFACTORY);
  // userタグのname属性がMyAppcServiceの環境を参照しサービスアダプタインスタンスを生成する。
  AsyncServiceAdapter adapter = factory.createAsyncServiceAdapter("MyAppcService");
  adapter.begin(null);
  // executeメソッドを呼び出す。
  adapter.execute(null, null);
  ...

beginメソッド

本メソッドで呼び出す利用者アプリケーションの初期化を行います。

executeメソッド

利用者アプリケーションを実行します。

引数へは呼び出すアプリケーションで利用するパラメタを指定してください。

getResultメソッド

利用者アプリケーションの結果を参照します。

受け取る結果は、利用者が作成したアダプタの実装に依存します。

結果は、アダプタの実装、サービスの呼び出し方法、および、状態により異なります。

AsyncServiceResultListener

突き合せによる呼び出しを行なう場合に、AsyncServiceResultListenerを設定することにより、結果を受け取ることが可能です。

listenerへは、AsyncServiceResultEventが通知されます。通知イベントのgetValueメソッドにより得られるオブジェクトは、利用者の実装したgetResultメソッドが返すオブジェクトが返ります。