マクロ・ランタイムが呼び出し先メソッドを検索する方法

メソッド呼び出し ($prp.get('Group Name')$ など) をマクロ・スクリプトに追加する際に、マクロ・エディターは、呼び出し先メソッドまたはコンストラクターが変数の属するクラスに存在するかどうかを検査しません。その検査は、呼び出しが行われたときにマクロ・ランタイムによって行われます。

メソッドは、基礎 Java™ クラスの public メソッドでなければなりません。

マクロ・ランタイムは、ユーザーが呼び出したメソッドに一致するメソッドがあるかどうか Java クラスを検索する際に、表 1 に示すようにマクロのデータ・タイプ (boolean、integer、string、field、double、インポート済みタイプ) を Java データ・タイプにマップします。
表 1. マクロ・ランタイムがマクロのデータ・タイプを Java データ・タイプにマップする方法
メソッド・パラメーターが以下のマクロ・データ・タイプに属する場合: マクロ・ランタイムは以下の Java データ型のパラメーターを持つ Java メソッドを検索する:
boolean boolean
整数 int
string ストリング
field ストリング
double double
インポート型 インポート型の基礎クラス
マクロ・ランタイムは、呼び出し先メソッドを次のように検索します。
  1. マクロ・ランタイムは、インポート済みタイプの定義に指定されているクラスを検索する (java.util.Properties など)。
  2. マクロ・ランタイムは、そのクラス内で呼び出し先メソッドと同じメソッド・シグニチャー (名前、パラメーター数、およびパラメーターのタイプ) を持つメソッドを検索する。
  3. 検索が成功した場合、マクロ・ランタイムはメソッドを呼び出す。
  4. 検索が失敗した場合、マクロ・ランタイムはそのクラス内で、呼び出し先メソッドと同じ名前とパラメーター数 (パラメーターの型は無視) を持つメソッドを検索する。
    1. マクロ・ランタイムが該当するメソッドを検出した場合は、指定されたパラメーターを使用してメソッドを呼び出す。
    2. 呼び出しがエラーを出さずに戻った場合、マクロ・ランタイムは正しいメソッドを呼び出したものと想定する。
    3. 呼び出しがエラーを出して戻った場合、マクロ・ランタイムは別のメソッドを検索する。
    4. 同じ名前とパラメーター数を持つメソッドをすべて試すまで、検索が継続される。どれも成功しなかった場合、マクロ・ランタイムはランタイム・エラーを生成する。