ビジネスクラスには、クライアントから入力したデータを処理するメソッドを作成します。ビジネスクラスを複数作成することも可能です。ビジネスクラスの例を示します。
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 | データをXMLで保持するクラスです。詳細は“第6章 XMLデータの利用”を参照してください。 | ○ | ○ |
HashMap(java.util.HashMapクラス) | EJBセションBeanで使用します。詳細は“24.3.4 HashMapによるデータの入力”を参照してください。 | - | ○ |
(*)アプリケーション種別を以下のように省略して表記しています。
・Webアプリケーション → Web
・EJBセションBean → EJB
欄内の記号は以下を表します。
○:使用できます。
- :使用できません。
メソッドの返り値の型は、アプリケーションの種別やメソッドの用途によって異なります。以下を参照してください。
Webアプリケーション: 15.3 Webcoordinatorアプリケーションのファイル
EJBセションBean: 第24章 セションBeanの開発
Handlerインタフェースのinitメソッドをオーバライドし返り値を変更することによって、ビジネスクラスのライフサイクルを以下から選択できます。
initメソッドがtrueを返す場合: 最初にビジネスクラスが呼び出されたときにインスタンスが作成され、以降セションが終了するまで同じインスタンスが使用されます。この場合、セションが終了するときにビジネスクラスのdestroyメソッドが呼び出されます。
initメソッドがfalseを返す場合: クライアントからのリクエストのたびにインスタンスが作成されます。
ビジネスクラスの作成方法に関する各アプリケーション種別に固有の解説については、以下を参照してください。
Webアプリケーション: 15.3 Webcoordinatorアプリケーションのファイル
EJBセションBean: 第24章 セションBeanの開発
注意
ビジネスクラスの引数として渡されるDispatchContextオブジェクトはApcoordinatorがリクエストごとに1つだけ生成するオブジェクトで、そのリクエストに関する情報を保持しています。例えばセションスコープに保存するなど、リクエストをまたいでDispatchContextを使用するとアプリケーションが正しく動かないので注意してください。