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

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

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

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