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