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