jp.co.fujitsu.reffi.client.nexaweb.controller
クラス ParameterMapping

java.lang.Object
  上位を拡張 jp.co.fujitsu.reffi.client.nexaweb.controller.ParameterMapping

public class ParameterMapping
extends Object

[概 要]

MVC各レイヤを伝播するパラメータオブジェクトです。

[詳 細]

Nexaweb Runtimeから提供される情報、フレームワークが動作する為の情報、ビジネスロジックから 参照が必要な情報が格納されます。
イベント発生時にコントローラによってインスタンス生成され、 アクション→コントローラ→モデル→コントローラ→アクション→コントローラ
と伝播して、イベントハンドリングが終了した後に破棄されます。

従来のMCO開発スタイルの場合、イベントソースエレメントを判定するには以下の定型文を記述します。

 ClientSession clientSession = getSession();
 EventHandler eventHandler = clientSession.getEventHandler();
 ClientEvent clientEvent = eventHandler.getEvent();
 Element eventSourceElement = clientEvent.getSourceElement();
 
Reffiを使用したMVC開発スタイルでは以下のようになります。
 Element eventSourceElement = parameterMapping.getEventSourceElement();
 
又、put(Object, Object)を使用することで、 ビジネスロジック固有のパラメータを格納することが出来ます。
MVCの各フックポイントでこのクラスの同一インスタンスを参照することで、 「アクションレイヤで設定したパラメータをモデルレイヤで参照する」 といった処理を、広いスコープの変数を用意することなく実装出来ます。

[備 考]

Reffiによって自動的にset系メソッドがコールされ、情報が設定されます。

[環 境] JDK 6.0 Update 11

Copyright (c) 2008-2009 FUJITSU Japan All rights reserved.

作成者:
Project Reffi

フィールドの概要
static String ACTION_CLASS_NAME
          具象イベントハンドラ名マッピングのキー定数です。
static String ACTION_INSTANCE
          実行されるアクションのインスタンスを示すキー定数です。
static String CLIENT_EVENT
          Nexawebクライアントイベントマッピングのキー定数です。
static String CLIENT_EVENT_PARAMETERS
          起動されたイベントが持つパラメータ複製を示すキー定数です。
static String CLIENT_SESSION
          Nexawebクライアントセッションマッピングのキー定数です。
static String EVENT_SOURCE_ELEMENT
          イベントを起こしたエレメントマッピングのキー定数です。
static String EVENT_SOURCE_ELEMENT_ID
          イベントを起動したエレメントのIDを示すキー定数です。
static String EVENT_SOURCE_ELEMENT_NAME
          イベントを起動したエレメントの名前を示すキー定数です。
static String EVENT_SOURCE_WINDOW
          イベントを発生させたエレメントが所属するウィンドウレベルエレメントを示すキー定数です。
static String EVENT_TYPE
          起動されたイベントタイプを示すキー定数です。
static String HEADER_ID_CREATION
          XALの動的ID生成ヘッダ付加キー定数です。
static String MODEL_CLASSES
          コントローラによって実行されるモデルクラス群のキー定数です。
static String MODEL_FINISHED_NUM
          モデルの終了数を示す定数です。
static String MODEL_RESERVED_NUM
          モデルの登録数を示す定数です。
static String QUERY_STRING
          起動されたイベントのクエリ文字列を示すキー定数です。
static String RUN_MODELS_AND_NO_WAIT
          モデル連続実行時、一モデルの終了を待つかどうかのフラグを示すキー定数です。
static String UI_DOCUMENT
          UI DOMマッピングのキー定数です。
static String VALIDATORS
          実行されるバリデータ群のキー定数です。
 
コンストラクタの概要
ParameterMapping()
          [概 要] デフォルトコンストラクタです。
 
メソッドの概要
 ParameterMapping clone()
          [概 要] このクラスオブジェクトの複製を返却します。
 Object get(Object key)
          [概 要] クライアントMVCレイヤ内で追加されたパラメータを取得します。
 Action getActionInstance()
          [概 要] アクション取得 [詳 細] 登録されているアクションを取得します。
 ClientEvent getClientEvent()
          [概 要] Nexawebクライアントイベントオブジェクトを取得します。
 String getClientEventParameter(String key)
          [概 要] クライアントイベントパラメータマップから、引数keyに対応する値を取得します。
 Map<String,String> getClientEventParameters()
          [概 要] クライアントイベントパラメータマップを取得します。
 ClientSession getClientSession()
          [概 要] Nexawebクライアントセッションオブジェクトを取得します。
 Element getEventSourceElement()
          [概 要] イベントを起動したソースエレメントを取得します。
 String getEventSourceElementId()
          [概 要] イベントを発生させたエレメントのIDを取得します。
 String getEventSourceElementName()
          [概 要] イベントを発生させたエレメントの名前を取得します。
 Element getEventSourceWindow()
          [概 要] イベントソースウィンドウ取得 [詳 細] 登録されているウィンドウを取得します。
 String getEventType()
          [概 要] イベント発生時のイベントタイプ文字列を取得します。
 boolean getIdCreation()
          [概 要] 現在設定されているXAL要求での動的ID付与の実施可否フラグを取得します。
 List<Class<? extends Model>> getModelClasses()
          [概 要] モデルクラス一覧取得 [詳 細] 登録されているモデルクラス一覧を取得します。
 int getModelFinishedNum()
          [概 要] 終了モデル数取得 [詳 細] 終了したモデル数を取得します。
 int getModelReservedNum()
          [概 要] 登録モデル数取得 [詳 細] 登録したモデル数を取得します。
 String getQueryString()
          [概 要] イベント発生時のクエリ文字列を取得します。
 Document getUiDocument()
          [概 要] Nexaweb画面にレンダリングされているDOM Documentを取得します。
 List<CustomValidator> getValidators()
          [概 要] バリデータ一覧取得 [詳 細] 登録されているバリデータ一覧を取得します。
 boolean isRunModelsAndNoWait()
          [概 要] 複数予約されたモデルの実行動作を取得します。
 void put(Object key, Object value)
          [概 要] クライアントMVCレイヤ内で自由に使用出来るパラメータを追加します。
 void setActionInstance(Action action)
          [概 要] アクション登録 [詳 細] 実行するアクションを登録します。
 void setClientEvent(ClientEvent clientEvent)
          [概 要] Nexawebクライアントイベントオブジェクトを設定します。
 void setClientEventParameters(Map<String,String> clientEventParameters)
          [概 要] クライアントイベントパラメータマップを設定します。
 void setClientSession(ClientSession clientSession)
          [概 要] Nexawebクライアントセッションオブジェクトを設定します。
 void setEventSourceElement(Element eventSourceElement)
          [概 要] イベントを起動したソースエレメントを設定します。
 void setEventSourceElementId(String eventSourceElementId)
          [概 要] イベントを発生させたエレメントのIDを設定します。
 void setEventSourceElementName(String eventSourceElementName)
          [概 要] イベントを発生させたエレメントの名前を設定します。
 void setEventSourceWindow(Element eventSourceWindow)
          [概 要] イベントソースウィンドウ登録 [詳 細] イベントが実行されたエレメントが所属するウィンドウを登録します。
 void setEventType(String eventType)
          [概 要] イベント発生時のイベントタイプ文字列を設定します。
 void setIdCreation(boolean idCreation)
          [概 要] XAL要求で動的ID付与の実施可否フラグを設定します。
 void setModelClasses(List<Class<? extends Model>> modelClasses)
          [概 要] モデルクラス登録 [詳 細] 実行するモデルクラスを登録します。
 void setModelFinishedNum(int modelFinishedNum)
          [概 要] 終了モデル数設定 [詳 細] 終了したモデル数を設定します。
 void setModelReservedNum(int modelReservedNum)
          [概 要] 登録モデル数設定 [詳 細] 登録したモデル数を設定します。
 void setQueryString(String queryString)
          [概 要] イベント発生時のクエリ文字列を設定します。
 void setRunModelsAndNoWait(boolean runModelsAndNoWait)
          [概 要] 複数予約されたモデルの実行動作を設定します。
 void setUiDocument(Document uiDocument)
          [概 要] Nexaweb画面にレンダリングされているDOM Documentを設定します。
 void setValidators(List<CustomValidator> validators)
          [概 要] バリデータ登録 [詳 細] 実行するバリデータ一覧を登録します。
 
クラス java.lang.Object から継承されたメソッド
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

ACTION_CLASS_NAME

public static final String ACTION_CLASS_NAME
具象イベントハンドラ名マッピングのキー定数です。

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

CLIENT_SESSION

public static final String CLIENT_SESSION
Nexawebクライアントセッションマッピングのキー定数です。

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

CLIENT_EVENT

public static final String CLIENT_EVENT
Nexawebクライアントイベントマッピングのキー定数です。

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

UI_DOCUMENT

public static final String UI_DOCUMENT
UI DOMマッピングのキー定数です。

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

EVENT_SOURCE_ELEMENT

public static final String EVENT_SOURCE_ELEMENT
イベントを起こしたエレメントマッピングのキー定数です。

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

HEADER_ID_CREATION

public static final String HEADER_ID_CREATION
XALの動的ID生成ヘッダ付加キー定数です。

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

MODEL_CLASSES

public static final String MODEL_CLASSES
コントローラによって実行されるモデルクラス群のキー定数です。

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

MODEL_RESERVED_NUM

public static final String MODEL_RESERVED_NUM
モデルの登録数を示す定数です。

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

MODEL_FINISHED_NUM

public static final String MODEL_FINISHED_NUM
モデルの終了数を示す定数です。

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

VALIDATORS

public static final String VALIDATORS
実行されるバリデータ群のキー定数です。

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

ACTION_INSTANCE

public static final String ACTION_INSTANCE
実行されるアクションのインスタンスを示すキー定数です。

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

EVENT_SOURCE_WINDOW

public static final String EVENT_SOURCE_WINDOW
イベントを発生させたエレメントが所属するウィンドウレベルエレメントを示すキー定数です。

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

RUN_MODELS_AND_NO_WAIT

public static final String RUN_MODELS_AND_NO_WAIT
モデル連続実行時、一モデルの終了を待つかどうかのフラグを示すキー定数です。

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

CLIENT_EVENT_PARAMETERS

public static final String CLIENT_EVENT_PARAMETERS
起動されたイベントが持つパラメータ複製を示すキー定数です。

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

QUERY_STRING

public static final String QUERY_STRING
起動されたイベントのクエリ文字列を示すキー定数です。

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

EVENT_TYPE

public static final String EVENT_TYPE
起動されたイベントタイプを示すキー定数です。

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

EVENT_SOURCE_ELEMENT_NAME

public static final String EVENT_SOURCE_ELEMENT_NAME
イベントを起動したエレメントの名前を示すキー定数です。

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

EVENT_SOURCE_ELEMENT_ID

public static final String EVENT_SOURCE_ELEMENT_ID
イベントを起動したエレメントのIDを示すキー定数です。

関連項目:
定数フィールド値
コンストラクタの詳細

ParameterMapping

public ParameterMapping()

[概 要]

デフォルトコンストラクタです。

[詳 細]

parametersフィールドMap領域を初期化します。

[備 考]

メソッドの詳細

put

public void put(Object key,
                Object value)

[概 要]

クライアントMVCレイヤ内で自由に使用出来るパラメータを追加します。

[詳 細]

ParameterMappingオブジェクトに対して、key=valueの形式で値を登録します。

[備 考]

一イベントハンドリング間のビジネスロジックに必要な、任意のパラメータ を格納する為に使用します。

パラメータ:
key - マッピングキー
value - マッピング値

get

public Object get(Object key)

[概 要]

クライアントMVCレイヤ内で追加されたパラメータを取得します。

[詳 細]

[備 考]

パラメータ:
key - マッピングキー
戻り値:
マッピング値

setClientSession

public void setClientSession(ClientSession clientSession)

[概 要]

Nexawebクライアントセッションオブジェクトを設定します。

[詳 細]

[備 考]

パラメータ:
clientSession - Nexawebクライアントセッションオブジェクト

getClientSession

public ClientSession getClientSession()

[概 要]

Nexawebクライアントセッションオブジェクトを取得します。

[詳 細]

[備 考]

戻り値:
Nexawebクライアントセッションオブジェクト

setClientEvent

public void setClientEvent(ClientEvent clientEvent)

[概 要]

Nexawebクライアントイベントオブジェクトを設定します。

[詳 細]

[備 考]

パラメータ:
clientEvent - Nexawebクライアントイベントオブジェクト

getClientEvent

public ClientEvent getClientEvent()

[概 要]

Nexawebクライアントイベントオブジェクトを取得します。

[詳 細]

[備 考]

ClientEventを取得できるようにするには、ClientConfig.setDuplicateActionInvoke(boolean)にて にてtrueを設定する必要があります。デフォルトではこのフラグはfalseと設定されており、falseの場合nullが返ります。
これはNexaweb4.5.20以降、任意起動スレッドからClientEventが取得できない実装となっており、 ClientConfig.setDuplicateActionInvoke(boolean)をfalseと設定している場合、 アクションの多重起動を抑制するため別スレッドにてアクションを実行します。そのためClientEventを 取得することができません。

戻り値:
Nexawebクライアントイベントオブジェクト

setUiDocument

public void setUiDocument(Document uiDocument)

[概 要]

Nexaweb画面にレンダリングされているDOM Documentを設定します。

[詳 細]

[備 考]

このDOMオブジェクトは/uiから始まります。

パラメータ:
uiDocument - 画面レンダリングされているDOM Document

getUiDocument

public Document getUiDocument()

[概 要]

Nexaweb画面にレンダリングされているDOM Documentを取得します。

[詳 細]

[備 考]

このDOMオブジェクトは/uiから始まります。

戻り値:
画面レンダリングされているDOM Document

setEventSourceElement

public void setEventSourceElement(Element eventSourceElement)

[概 要]

イベントを起動したソースエレメントを設定します。

[詳 細]

[備 考]

パラメータ:
eventSourceElement - イベントソースエレメント

getEventSourceElement

public Element getEventSourceElement()

[概 要]

イベントを起動したソースエレメントを取得します。

[詳 細]

[備 考]

戻り値:
イベントソースエレメント

setIdCreation

public void setIdCreation(boolean idCreation)

[概 要]

XAL要求で動的ID付与の実施可否フラグを設定します。

[詳 細]

[備 考]

パラメータ:
idCreation - 実施可否 (trueで実施)

getIdCreation

public boolean getIdCreation()

[概 要]

現在設定されているXAL要求での動的ID付与の実施可否フラグを取得します。

[詳 細]

[備 考]

戻り値:
設定済み実施可否フラグ

setModelClasses

public void setModelClasses(List<Class<? extends Model>> modelClasses)

[概 要]

モデルクラス登録

[詳 細]

実行するモデルクラスを登録します。

[備 考]

パラメータ:
modelClasses - 実行するモデルクラス

getModelClasses

public List<Class<? extends Model>> getModelClasses()

[概 要]

モデルクラス一覧取得

[詳 細]

登録されているモデルクラス一覧を取得します。

[備 考]

戻り値:
登録されているモデルクラス一覧

setModelReservedNum

public void setModelReservedNum(int modelReservedNum)

[概 要]

登録モデル数設定

[詳 細]

登録したモデル数を設定します。

[備 考]

パラメータ:
modelReservedNum - 登録するモデル数

getModelReservedNum

public int getModelReservedNum()

[概 要]

登録モデル数取得

[詳 細]

登録したモデル数を取得します。

[備 考]

戻り値:
登録したモデル数

setModelFinishedNum

public void setModelFinishedNum(int modelFinishedNum)

[概 要]

終了モデル数設定

[詳 細]

終了したモデル数を設定します。

[備 考]

パラメータ:
modelFinishedNum - 終了したモデル数

getModelFinishedNum

public int getModelFinishedNum()

[概 要]

終了モデル数取得

[詳 細]

終了したモデル数を取得します。

[備 考]

戻り値:
終了したモデル数

setValidators

public void setValidators(List<CustomValidator> validators)

[概 要]

バリデータ登録

[詳 細]

実行するバリデータ一覧を登録します。

[備 考]

パラメータ:
validators - 実行するバリデータ一覧

getValidators

public List<CustomValidator> getValidators()

[概 要]

バリデータ一覧取得

[詳 細]

登録されているバリデータ一覧を取得します。

[備 考]

戻り値:
登録されているバリデータ一覧

setActionInstance

public void setActionInstance(Action action)

[概 要]

アクション登録

[詳 細]

実行するアクションを登録します。

[備 考]

パラメータ:
action - 実行するアクション

getActionInstance

public Action getActionInstance()

[概 要]

アクション取得

[詳 細]

登録されているアクションを取得します。

[備 考]

パラメータ:
登録されているアクション -

setEventSourceWindow

public void setEventSourceWindow(Element eventSourceWindow)

[概 要]

イベントソースウィンドウ登録

[詳 細]

イベントが実行されたエレメントが所属するウィンドウを登録します。

[備 考]

パラメータ:
window - イベント実行されたエレメントが所属するウィンドウ

getEventSourceWindow

public Element getEventSourceWindow()

[概 要]

イベントソースウィンドウ取得

[詳 細]

登録されているウィンドウを取得します。

[備 考]

戻り値:
イベント実行されたエレメントが所属するウィンドウ

isRunModelsAndNoWait

public boolean isRunModelsAndNoWait()

[概 要]

複数予約されたモデルの実行動作を取得します。

[詳 細]

モデル群がコントローラに連続実行される際、モデルの処理結果を待たずに 次のモデルを実行するかどうかのフラグを取得します。

[備 考]

モデルをシーケンシャルに実行しない場合、モデルは登録された順序で実行されますが レスポンスを待たずに次のモデルが実行されます。

戻り値:
シーケンシャルに実行しない場合はtrue、それ以外はfalse

setRunModelsAndNoWait

public void setRunModelsAndNoWait(boolean runModelsAndNoWait)

[概 要]

複数予約されたモデルの実行動作を設定します。

[詳 細]

モデル群がコントローラに実行される際、モデルの処理結果を待たずに 次モデルを実行するかどうかのフラグを設定します。

[備 考]

モデルをシーケンシャルに実行しない場合、モデルは登録された順序で実行されますが レスポンスを待たずに次のモデルが実行されます。

パラメータ:
runModelsAndNoWait - シーケンシャルに実行しない場合はtrue、それ以外はfalse

getClientEventParameters

public Map<String,String> getClientEventParameters()

[概 要]

クライアントイベントパラメータマップを取得します。

[詳 細]

ClientEvent#getParameter(String key)が対象とするリソースと同義のマップを返却します。
取得するMapは以下のような形式になります。
{id=nx:8886-1045, event=onActiveLost, oppositeSubcomponent=, active=false, oppositeId=nx:8886-1035}

[備 考]

Nexaweb 4.5.20から、パフォーマンス向上の為、任意のスレッドから ClientEventオブジェクトを参照することが出来ません(設定で可)。
このメソッドを使用することで、同様の情報を取得することが出来ます。

戻り値:
クライアントイベントパラメータマップ

setClientEventParameters

public void setClientEventParameters(Map<String,String> clientEventParameters)

[概 要]

クライアントイベントパラメータマップを設定します。

[詳 細]

ClientEvent#getParameter(String key)が対象とするリソースと同義のマップを設定します。

[備 考]

パラメータ:
clientEventParameters - クライアントイベントパラメータマップ

getClientEventParameter

public String getClientEventParameter(String key)

[概 要]

クライアントイベントパラメータマップから、引数keyに対応する値を取得します。

[詳 細]

ClientEvent.getParameter(String)と同様の機能を提供します。

[備 考]

Nexaweb 4.5.20から、パフォーマンス向上の為、任意のスレッドから ClientEventオブジェクトを参照することが出来ません(設定で可)。
このメソッドを使用することで、同様の情報を取得することが出来ます。

パラメータ:
key - クライアントイベントパラメータマップのキー
戻り値:
引数keyに対する値

getQueryString

public String getQueryString()

[概 要]

イベント発生時のクエリ文字列を取得します。

[詳 細]

ClientEvent.getQueryString()と同様の処理を行います。
取得するクエリ文字列は以下のような形式になります。
oppositeSubcomponent=&event=onActiveLost&oppositeId=nx%3a8886-1035&active=false&id=nx%3a8886-1045

[備 考]

Nexaweb 4.5.20から、パフォーマンス向上の為、任意のスレッドから ClientEventオブジェクトを参照することが出来ません(設定で可)。
このメソッドを使用することで、同様の情報を取得することが出来ます。

戻り値:
イベント発生時のクエリ文字列

setQueryString

public void setQueryString(String queryString)

[概 要]

イベント発生時のクエリ文字列を設定します。

[詳 細]

[備 考]

パラメータ:
queryString - イベント発生時のクエリ文字列

getEventType

public String getEventType()

[概 要]

イベント発生時のイベントタイプ文字列を取得します。

[詳 細]

ClientEventパラメータのeventキーに対する値を返却します。

[備 考]

Nexaweb 4.5.20から、パフォーマンス向上の為、任意のスレッドから ClientEventオブジェクトを参照することが出来ません(設定で可)。
このメソッドを使用することで、同様の情報を取得することが出来ます。

戻り値:
イベント発生時のイベントタイプ文字列

setEventType

public void setEventType(String eventType)

[概 要]

イベント発生時のイベントタイプ文字列を設定します。

[詳 細]

ClientEventパラメータのeventキーに対する値を設定します。

[備 考]

パラメータ:
eventType - イベント発生時のイベントタイプ文字列

getEventSourceElementName

public String getEventSourceElementName()

[概 要]

イベントを発生させたエレメントの名前を取得します。

[詳 細]

ClientEvent.getSource().getAttribute("name")と同等の処理を行います。

[備 考]

Nexaweb 4.5.20から、パフォーマンス向上の為、任意のスレッドから ClientEventオブジェクトを参照することが出来ません(設定で可)。
このメソッドを使用することで、同様の情報を取得することが出来ます。

戻り値:
イベントを発生させたエレメントのname属性値

setEventSourceElementName

public void setEventSourceElementName(String eventSourceElementName)

[概 要]

イベントを発生させたエレメントの名前を設定します。

[詳 細]

[備 考]

パラメータ:
eventSourceElementName - イベントを発生させたエレメントのname属性値

getEventSourceElementId

public String getEventSourceElementId()

[概 要]

イベントを発生させたエレメントのIDを取得します。

[詳 細]

ClientEvent.getSource().getAttribute("id")と同等の処理を行います。

[備 考]

Nexaweb 4.5.20から、パフォーマンス向上の為、任意のスレッドから ClientEventオブジェクトを参照することが出来ません(設定で可)。
このメソッドを使用することで、同様の情報を取得することが出来ます。

戻り値:
イベントを発生させたエレメントのid属性値

setEventSourceElementId

public void setEventSourceElementId(String eventSourceElementId)

[概 要]

イベントを発生させたエレメントのIDを設定します。

[詳 細]

[備 考]

パラメータ:
eventSourceElementId - イベントを発生させたエレメントのid属性値

clone

public ParameterMapping clone()

[概 要]

このクラスオブジェクトの複製を返却します。

[詳 細]

ParameterMappingオブジェクト、及び保持するプロパティは完全なコピーを作りますが、 parametersプロパティ内で保持する定数キー要素値のアドレス参照はコピーしません。
parameterMapping#parametersと、
clonedParameterMapping#parameters
は異なるアドレスで保持されますが、
parameterMapping#getEventSourceElementと、
clonedParameterMapping#getEventSourceElement
は同じアドレスを返却します。

[備 考]

このメソッドはアクションからコントローラに別アクション実行を委譲する場合等に使用します。
    protected boolean prepare(ParameterMapping parameterMapping) throws Exception {
        this.getController().invoke(OtherAction.class, parameterMapping.clone());
        return true;
    }
 
コントローラはコールバック(successForwardやfailureForward)先アクションアドレスを ParameterMapping#getActionInstanceで判別しますが、invokeが呼ばれると左記のアドレスを指定 された新規アクションのアドレスで上書きします。
上記のようにinvokeを呼び出すことで、コントローラが認識するアクションアドレスの上書き を抑止することが出来ます。

オーバーライド:
クラス Object 内の clone
戻り値:
複製されたParameterMappingオブジェクト


Copyright(C) Fujitsu All Rights Reserved.