VDB フォーマット
Framework for Frameworks API に含まれるメソッドでは、型名またはメソッド・シグニチャーを表す Strings
を VDB フォーマットにしなければなりません。VDB 型名とは、ソース・レベルでの単なる完全修飾名です (例えば、java.lang.String
)。あるいは、内部クラスの場合は、ドル記号 ($
) で表されます。(例えば、javax.swing.text.DefaultEditorKit$DefaultKeyTypedAction
)。.NET
では、Framework for Frameworks API を使用するときに、int
や string
などの短い名前の使用を避けます。その代わりに、System.Int32
や System.String
などの完全修飾名を使用します。
VDB メソッド・シグニチャーは、以下の 2 つの部分で構成されます。
- メソッド名。エンクロージング・クラスの完全修飾名が含まれます (例えば、
java.lang.String.substring
)。 - メソッドの記述子。パラメーターの型および戻りの型を指定します。パラメーターの型は、括弧で囲み、セミコロン (
;
) で区切ります。右括弧の後に、コロン (:
)、次に戻り値の型が続きます。
VDB メソッド・シグニチャーの例は以下のとおりです。
java.lang.String.substring(int;int):java.lang.String
内部クラスの VDB メソッド・シグニチャーの例は以下のとおりです。
javax.swing.text.DefaultEditorKit$DefaultKeyTypedAction.
actionPerformed(ActionEvent):void
VDB フォーマットの String
を必要とする API メソッドのほとんどには、代わりに IClass
オブジェクトまたは IMethod
オブジェクトを使用する、同等のメソッドがあります。例えば、F4FActions.addTaintedCallback(String,int)
メソッドの最初のパラメーターは、VDB フォーマットのメソッド・シグニチャーでなければなりません。その一方、F4FActions.addTaintedCallback(IMethod,int)
は、IMethod
オブジェクトを使用するメソッドを識別します。以下の理由から、IClass
オブジェクトおよび IMethod
オブジェクトを使用する API メソッドを使用するほうが便利な場合があります。
- これらのメソッドでは、ユーザーが VDB フォーマット設定について心配する必要がありません。これは、内部で処理されるためです。
IClass
オブジェクトまたはIMethod
オブジェクトを (例えばF4FApp.getClassMethods()
によって) 取得する際に、対応するクラスまたはメソッドが実際にアプリケーション・コードに存在することが確実になります。