Format VDB
Les méthodes de l'API Framework for Frameworks requièrent que les éléments Strings
représentant des noms de type ou des signatures de méthode soient au format VDB. Les noms de type VDB sont simplement des noms qualifiés complets de niveau source (par exemple, java.lang.String
), ou, dans le cas de classes internes, sont représentés avec un symbole dollar ($
) (par exemple javax.swing.text.DefaultEditorKit$DefaultKeyTypedAction
). Pour .NET
, les noms abrégés tels que int
et string
doivent être évités en cas d'utilisation de l'API Framework for Frameworks. Utilisez plutôt des noms qualifiés complets tels que System.Int32
et System.String
.
Une signature de méthode VDB se compose de ces deux parties :
- Le nom de la méthode, incluant le nom qualifié complet de la classe englobante (par exemple,
java.lang.String.substring
). - Un descripteur de méthode indiquant les types de paramètres et le type de retour. Les types de paramètres sont entre parenthèses et séparés par des points-virgules (
;
). La parenthèse fermante est suivie d'un signe deux-points (:
), puis du type de retour.
Exemple de signature de méthode VDB :
java.lang.String.substring(int;int):java.lang.String
Exemple de signature de méthode VDB provenant d'une classe interne :
javax.swing.text.DefaultEditorKit$DefaultKeyTypedAction.
actionPerformed(ActionEvent):void
Pour la plupart des méthodes API qui requièrent un élément String
au format VDB, il existe souvent une méthode équivalente qui utilise plutôt un objet IClass
ou IMethod
. Par exemple, la méthode F4FActions.addTaintedCallback(String,int)
nécessite que son premier paramètre soit une signature de méthode au format VDB alors que F4FActions.addTaintedCallback(IMethod,int)
identifie la méthode avec un objet IMethod
. Il peut s'avérer plus simple d'utiliser les méthodes API utilisant des objets IClass
et IMethod
pour deux raisons :
- L'utilisateur ne doit pas se soucier du formatage VDB pour ces méthodes, étant donné qu'il est géré en interne.
- Lorsque l'on obtient l'objet
IClass
ouIMethod
(par exemple, viaF4FApp.getClassMethods()
), on est sûr que la méthode ou la classe correspondante existe réellement dans le code d'application.