PEXA Modelについて

チュートリアル

定義ファイル

機能一覧

リファレンス

目次


はじめに

このドキュメントは、モデル定義から呼び出せるHelperクラスについてのリファレンスです。

ModelFrameworkでのHelperクラスは、全て現象型に対してリンクします。以下の二種類があります。

  • Procedure:現象型の値を動的に導出するための仕組みです。
  • ProcedureSource:Procedure自体にパラメータを渡すためのクッションとなる仕組みです。
  • Trigger:現象型に対する値の設定に連動した処理を行うための仕組みです。


Procedure

プラグインポイント:
Model定義のprocedureセクション

実装すべきインタフェース:
pexa.share.concept.Procedure

抽象基底クラス:
pexa.share.concept.base.AbstractProcedureImpl

処理を実装すべきメソッド:

/**
 * 観測値を返す。
 * @param source  手続きを呼び出した観測対象
 * @return 観測値(存在しない場合はnull)
 * @throws FatalException
 * @throws RemoteException
 */
public Object getValue(Observable source) throws FatalException, RemoteException;

説明:
Model定義のprocedureセクションで指定するHelperクラスです。
Procedure機能についての説明はこちらを参照してください。

ProcedureのHelperクラスは、現象型の値を取得するためのプログラムです。
実装すべきメソッドの引数として、自身が属しているデータモデルのインスタンスが渡されるので、その内容などを元にしてマッピングされている現象型の値を導出して、返値として返します。


ProcedureSource

プラグインポイント:
Model定義のprocedureセクション

実装すべきインタフェース:
pexa.share.concept.ProcedureSource

抽象基底クラス:
無し

処理を実装すべきメソッド:

/**
 * Procedureを生成する
 * @param resource 呼出元であるResourceオブジェクト
 * @param ptype このProcedureSourceがひも付いている現象型
 * @param parameter 任意のパラメータ文字列
 * @return 生成したProcedureのインスタンス
 * @throws FatalException Procedure生成に失敗
 */
public Procedure getProcedure(Resource resource, PhenomenonType ptype, String parameter) throws FatalException;

説明:
Model定義のprocedureセクションで指定するHelperクラスです。
ProcedureSourceによるProcedure呼出についての説明はこちらを参照してください。

ProcedureSourceのHelperクラスは、コンストラクタにパラメータ文字列を渡してProcedureインスタンスをnewして返すためのプログラムです。
このパラメータ文字列は、Procedure内部で処理の切り分けを行うための手がかりとして渡されますので、一つのProcedureクラスに複数の値導出ルールを実装しておくことも可能です。

実装すべきメソッドの引数として、呼出元データモデルを表すResourceオブジェクト、マッピングされている現象型、パラメータ文字列が渡されるので、 それらを参照しながらProcedureのインスタンスを生成して返値として返します。

!!!注意!!!
Procedureは業務仕様そのものであるので、一つのProcedureは素直に一つの業務ルールを実装すべきです。
エンジニアの都合で一つのProcedureが複数の業務仕様を兼ねた実装とするのは極力避けてください。


Trigger

プラグインポイント:
Model定義のtriggerセクション

実装すべきインタフェース:
pexa.share.concept.Trigger

抽象基底クラス:
無し

処理を実装すべきメソッド:

/**
 * トリガーを実行する
 * @param target トリガーが起動された更新対象
 * @param setValue 設定値
 * @param beforeValue 以前に設定された値(存在しない場合はnull)
 * @param condition 条件(存在しない場合はnull)
 * @throws UpdateObservationException 回復可能なトリガー実行エラー
 * @throws FatalException 回復不能なトリガー実行エラー
 */
void execute(Updatable target, Object setValue, Object beforeValue, Object[] addValues, Object[] removeValues, Observable condition)
  throws UpdateObservationException, FatalException, RemoteException;

説明:
Model定義のtriggerセクションで指定するHelperクラスです。
Trigger機能についての説明はこちらを参照してください。

TriggerのHelperクラスは、現象型の値が設定された際の連動処理を実装する為のクラスです。
実装すべきメソッドの引数として、自身が属しているデータモデルのインスタンスが渡されるので、そのモデルに対して別の値を設定するような処理を実装してください。。

!!!注意!!!
このTriggerクラス内で行っても良い処理は、引数で渡されたデータモデル(Updatable)そのものに対する処理だけです。
他のデータモデルをこのクラス内で自分で検索して更新するような処理は絶対にしないで下さい。


更新情報

  • 最終更新者 : $Author: morishita $
  • 最終更新日時 : $Date:: 2008-02-14 23:13:19 #$
  • バージョン : $Revision: 1609 $



Copyright © 2006, Atrris Corporation