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

3.1 ビジネスクラス

ビジネスクラスには、クライアントから入力したデータを処理するメソッドを作成します。ビジネスクラスを複数作成することも可能です。ビジネスクラスの例を示します。

package calc;
import com.fujitsu.uji.DispatchContext;
import com.fujitsu.uji.GenericHandler;

public class CalcHandler extends GenericHandler
{

    public boolean init() {
        return true;
    }

    public void add(DispatchContext context, BodyBean dataBean) {
        double result = dataBean.getVal1() + dataBean.getVal2();
        dataBean.setMessage("加算を実行しました。");
        dataBean.setResult(result);
        dataBean.setVerb("resmode");
        context.setResponseBean("body", dataBean);
    }

    public void sub(DispatchContext context, BodyBean dataBean) {
        double result = dataBean.getVal1() - dataBean.getVal2();
        dataBean.setMessage("減算を実行しました。");
        dataBean.setResult(result);
        dataBean.setVerb("resmode");
        context.setResponseBean("body", dataBean);
    }

    public void next(DispatchContext context, BodyBean dataBean) {
        dataBean.setVerb("reqmode");
        context.setResponseBean("body", dataBean);
    }

    public void startup(DispatchContext context) {
        BodyBean dataBean = new BodyBean();
        dataBean.setVerb("reqmode");
        context.setResponseBean("body", dataBean);
    }
}

ビジネスクラスはcom.fujitsu.uji.Handler インタフェースを実装して作成してください。簡単に作成するにはcom.fujitsu.uji.GenericHandlerクラスを継承して作成することもできます。GenericHandlerクラスはHandlerインタフェースの簡単な実装を提供します。

入力データを処理するメソッドの引数は、次のようにします。

public void someMethod(com.fujitsu.uji.DispatchContext context, [入力データのクラス名] data);

ただし、入力データがnullの場合に呼び出されるメソッドは、次のようにDispatchContextクラスのみを引数とします。

public void someMethod(com.fujitsu.uji.DispatchContext context);

クライアントから入力するデータには次の4種類があり、アプリケーション種別ごとに使用する種類が異なります。

種類

説明

使用できるアプリケーション種別(*)

Web

EJB

電子フォーム

データBean

データをJavaBeans形式のプロパティで保持するクラスです。詳細は“3.2 データBean”を参照してください。

XMLデータBean
(com.fujitsu.uji.xml.XmlDataBeanクラス)

データをXMLで保持するクラスです。詳細は“第6章 XMLデータの利用”を参照してください。

FormデータBean
(com.fujitsu.uji.formc.FormDataBeanクラス)

電子フォームアプリケーションにおいて、電子フォームのデータを保持するクラスです。詳細は“第5部 電子フォームアプリケーションの開発”を参照してください。

-

-

HashMap(java.util.HashMapクラス)

EJBセションBeanで使用します。詳細は“25.3.4 HashMapによるデータの入力”を参照してください。

-

-

(*)アプリケーション種別を以下のように省略して表記しています。
・Webアプリケーション → Web
・EJBセションBean → EJB
・電子フォームアプリケーション → 電子フォーム

欄内の記号は以下を表します。
○: その種類の入力データが使用できます。
- : その種類の入力データは使用できません。

メソッドの返り値の型は、アプリケーションの種別やメソッドの用途によって異なります。以下を参照してください。

Handlerインタフェースのinitメソッドをオーバライドし返り値を変更することによって、ビジネスクラスのライフサイクルを以下から選択できます。

ビジネスクラスの作成方法に関する各アプリケーション種別に固有の解説については、以下を参照してください。

注意

ビジネスクラスの引数として渡されるDispatchContextオブジェクトはApcoordinatorがリクエストごとに1つだけ生成するオブジェクトで、そのリクエストに関する情報を保持しています。例えばセションスコープに保存するなど、リクエストをまたいでDispatchContextを使用するとアプリケーションが正しく動かないので注意してください。