La valeur de chaque entrée dans le tableau
methodLineTables est le numéro de ligne d'une unité exécutable correspondante (dans le fichier source nommé par la chaîne de données classSourceFile). Par exemple, l'entrée numéro cinq de la table donne le numéro de ligne de l'unité exécutable numéro cinq.
Voici un exemple de chaîne methodLineTables :
#51+1201#75+11,41
Voici comment interpréter la chaîne :
- Les
chiffres suivant immédiatement un signe dièse ("#") correspondent à
un numéro de ligne complet dans le code source pour une classe. Dans l'exemple, la première unité exécutable dans la première méthode
de la classe se trouve à la ligne 51.
- Chaque chiffre après un signe plus ("+")
correspond au nombre de lignes à ajouter au numéro précédent pour
obtenir le numéro de ligne de l'unité exécutable suivante. Dans l'exemple, les chiffres après le signe plus (+1201)
servent à calculer les numéros de lignes de la deuxième à la
cinquième unité exécutable :
- 51 + 1 = numéro de ligne de la deuxième unité exécutable : 52
- 52 + 2 = numéro de ligne de la troisième unité exécutable : 54
- 54 + 0 = numéro de ligne de la quatrième unité exécutable : 54
(deux unités exécutables sur une ligne source)
- 54 + 1 = numéro de ligne de la cinquième unité exécutable : 55
- Lorsque l'incrément de numéro de ligne est
négatif ou supérieur à neuf, le numéro de ligne complet pour l'unité
exécutable est indiqué. Dans l'exemple, l'unité exécutable se trouve
à la ligne 75, vingt de plus que le numéro de ligne précédent qui
était 55. Dans ce cas, le numéro de ligne complet est
mentionné pour la sixième unité exécutable et le calcul du
numéro de ligne relatif reprend (#75+11) :
- 75 =
numéro de ligne de la sixième unité exécutable
- 75 + 1 = numéro de ligne de la septième unité exécutable : 76
- 76 + 1 = numéro de ligne de la huitième unité exécutable : 77
- Une virgule (",") signale la fin d'une
méthode et le début de la suivante.
Les chiffres et les symboles
après la virgule sont interprétés comme précédemment. Dans l'exemple, le numéro de ligne de l'unité exécutable de la
deuxième méthode ne dépasse que de 4 le dernier calculé pour la
méthode précédente. Le calcul de numéro de ligne relatif se
poursuit après la virgule (,41) :
- 77 + 4 = numéro
de ligne de la première unité exécutable de la deuxième méthode : 81
- 81 + 1 = numéro de ligne de la seconde unité exécutable de la seconde méthode : 82
Remarque : des
informations source ne sont pas associées à toutes les unités
exécutables. Certaines sont créées par le compilateur afin
d'implémenter la sémantique du langage Java : par exemple,
gestion des exceptions, initialisation ou synchronisation. Ces unités
exécutables générées posséderont un numéro de ligne complet égal à
zéro dans la chaîne methodLineTables. Un numéro de ligne complet
de zéro indique qu'aucune information sur les numéros de ligne n'est
disponible. Lorsqu'une méthode entière ne possède aucune information
source, elle apparaît avec une seule unité exécutable dont le numéro
de ligne est zéro.
Ci-après quelques exemple de chaînes methodLineTables et leur
signification :
Chaîne
methodLineTables |
Signification |
+5 |
Si le numéro de ligne de la
première unité exécutable de la première méthode est inférieur à dix,
toute la chaîne commence par un signe plus pour lancer une série
d'incréments à partir de la ligne zéro. Dans cet exemple, la première unité exécutable de la première méthode
commence à la ligne 5. |
+0 |
Si la première méthode ne possède
aucune information source, la chaîne commence par +0.
Tout fragment de sonde executableUnit appliqué à ce genre de méthode
ne sera inséré qu'une seule fois au début de celle-ci. |
...#437,#457+123... |
Si la première unité exécutable
pour une méthode commence plus de neuf lignes après la dernière unité
exécutable de la méthode précédente, la syntaxe enchaîne une virgule,
un signe dièse et le numéro de ligne. Dans cet exemple, la première
unité exécutable dans la nouvelle méthode commence 20 lignes après
la dernière unité exécutable de la méthode précédente. |
...#437,+2... |
La dernière unité exécutable
dans une méthode peut exiger la notation "#" et la première unité
exécutable dans la méthode suivante peut se trouver à peu
d'écart. Dans cet exemple partiel, la dernière unité exécutable
d'une méthode commence à la ligne 437 et la première unité exécutable
de la méthode suivante à la ligne 439. |