VDB フォーマット

Framework for Frameworks API に含まれるメソッドでは、型名またはメソッド・シグニチャーを表す Strings を VDB フォーマットにしなければなりません。VDB 型名とは、ソース・レベルでの単なる完全修飾名です (例えば、java.lang.String)。あるいは、内部クラスの場合は、ドル記号 ($) で表されます。(例えば、javax.swing.text.DefaultEditorKit$DefaultKeyTypedAction)。.NET では、Framework for Frameworks API を使用するときに、intstring などの短い名前の使用を避けます。その代わりに、System.Int32System.String などの完全修飾名を使用します。

VDB メソッド・シグニチャーは、以下の 2 つの部分で構成されます。

  1. メソッド名。エンクロージング・クラスの完全修飾名が含まれます (例えば、java.lang.String.substring)。
  2. メソッドの記述子。パラメーターの型および戻りの型を指定します。パラメーターの型は、括弧で囲み、セミコロン (;) で区切ります。右括弧の後に、コロン (:)、次に戻り値の型が続きます。

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 メソッドを使用するほうが便利な場合があります。

  1. これらのメソッドでは、ユーザーが VDB フォーマット設定について心配する必要がありません。これは、内部で処理されるためです。
  2. IClass オブジェクトまたは IMethod オブジェクトを (例えば F4FApp.getClassMethods() によって) 取得する際に、対応するクラスまたはメソッドが実際にアプリケーション・コードに存在することが確実になります。