マクロ・ランタイムが呼び出し先メソッドを検索する方法
メソッド呼び出し ($prp.get('Group Name')$ など) をマクロ・スクリプトに追加する際に、マクロ・エディターは、呼び出し先メソッドまたはコンストラクターが変数の属するクラスに存在するかどうかを検査しません。その検査は、呼び出しが行われたときにマクロ・ランタイムによって 行われます。
メソッドは、基礎 Java クラスの public メソッドでなければなりません。
マクロ・ランタイムは、ユーザーが呼び出したメソッドに一致するメソッドが あるかどうか Java クラスを検索する際に、表 1 に示すように マクロのデータ型 (boolean、integer、string、field、double、 インポート型) を Java データ型にマップします。
メソッド・パラメーターが以下のマクロ・データ・タイプに属する場合: | マクロ・ランタイムは以下の Java データ型のパラメーターを もつ Java メソッドを検索する: |
---|---|
ブール値 | ブール値 |
integer | int |
string | ストリング |
field | ストリング |
二重 | 二重 |
インポート型 | インポート型の基礎クラス |
マクロ・ランタイムは、呼び出し先メソッドを次のように検索します。
- マクロ・ランタイムは、インポート済みタイプの定義に指定されているクラスを検索する (java.util.Properties など)。
- マクロ・ランタイムは、そのクラス内で呼び出し先メソッドと同じ メソッド・シグニチャー (名前、パラメーター数、およびパラメーターの タイプ) を持つメソッドを検索する。
- 検索が成功した場合、マクロ・ランタイムはメソッドを呼び出す。
- 検索が失敗した場合、マクロ・ランタイムはそのクラス内で、 呼び出し先メソッドと同じ名前とパラメーター数 (パラメーターの型は無視) を もつメソッドを検索する。
- マクロ・ランタイムが該当するメソッドを検出した場合は、 指定されたパラメーターを使用してメソッドを呼び出す。
- 呼び出しがエラーを出さずに戻った場合、マクロ・ランタイムは 正しいメソッドを呼び出したものと想定する。
- 呼び出しがエラーを出して戻った場合、マクロ・ランタイムは 別のメソッドを検索する。
- 同じ名前とパラメーター数を持つメソッドをすべて試すまで、 検索が継続される。どれも成功しなかった場合、マクロ・ランタイムは ランタイム・エラーを生成する。