methodLineTables-tietomerkkijonomuoto

methodLineTables-tietomerkkijonomuoto koodaa taulukon, jossa on yksi merkintä luokan kutakin toteutettavaa yksikköä kohden.

methodLineTables-taulukon kunkin merkinnän arvo on vastaavan toteutettavan yksikön rivinumero (classSourceFile-tietomerkkijonon nimeämässä lähdetiedostossa). Esimerkiksi taulukon merkintä numero viisi antaa rivinumeron toteutettavalle yksikölle numero viisi.

Seuraavassa on esimerkki methodLineTables-merkkijonosta:
#51+1201#75+11,41
Seuraavassa on merkkijonon tulkinta:
  • Numeromerkkiä (#) välittömästi seuraavat numerot kuvaavat kokonaista rivinumeroa luokan lähdekoodissa. Esimerkissä luokan ensimmäisen metodin ensimmäinen toteutettava yksikkö on rivillä 51.
  • Kukin plusmerkkiä (+) seuraava yksittäinen numero kuvaa rivien määrää, joka lisätään edelliseen rivinumeroon, jolloin tuloksena on seuraavan toteutettavan yksikön rivinumero. Esimerkissä plusmerkkiä seuraavien numeroiden (+1201) avulla lasketaan rivinumerot toteutettaville yksiköille 2 - 15:
    1. 51 + 1 = toisen toteutettavan yksikön rivinumero: 52
    2. 52 + 2 = kolmannen toteutettavan yksikön rivinumero: 54
    3. 54 + 0 = neljännen toteutettavan yksikön rivinumero: 54 (kaksi toteutettavaa yksikköä samalla lähderivillä)
    4. 54 + 1 = viidennen toteutettavan yksikön rivinumero: 55
  • Kun rivinumeron lisäys on negatiivinen tai suurempi kuin yhdeksän, toteutettavan yksikön koko rivinumero määritetään. Esimerkissä kuudes toteutettava yksikkö on rivillä 75, kaksikymmentä riviä edempänä edellistä numeroa, joka on 55. Tässä tapauksessa kuudennelle toteutettavalle yksikölle määritetään koko rivinumero. Sen jälkeen suhteellinen rivinumeron laskenta alkaa jälleen (#75+11):
    1. 75 = kuudennen toteutettavan yksikön rivinumero
    2. 75 + 1 = seitsemännen toteutettavan yksikön rivinumero: 76
    3. 76 + 1 = kahdeksannen toteutettavan yksikön rivinumero: 77
  • Pilkku (,) merkitsee yhden metodin loppua ja seuraavan alkua. Pilkkua seuraavat numerot ja symbolit tulkitaan samoin kuin edellä. Esimerkissä toisen metodin ensimmäisen toteutettavan yksikön rivinumero on vain neljä suurempi kuin edellisen metodin viimeinen rivinumero, joten suhteellinen rivinumerolaskenta jatkuu pilkun jälkeen (,41):
    1. 77 + 4 = toisen metodin ensimmäisen toteutettavan yksikön rivinumero: 81
    2. 81 + 1 = toisen metodin toisen toteutettavan yksikön rivinumero: 82
Huomautus: Kaikilla toteutettavilla yksiköillä ei ole niihin liittyviä lähdetietoja. Jotkin ovat kääntäjän luomia Java-kielen semantiikan toteutusta varten: esimerkiksi poikkeusten käsittelyä, alustusta tai synkronointia varten. Näiden muodostettujen toteutettavien yksiköiden koko rivinumero on nolla methodLineTables-merkkijonossa. Koko rivinumero nolla tarkoittaa, että rivinumerotietoja ei ole käytettävissä. Jos metodissa ei ole lainkaan lähdetietoja, siinä näkyy yksi toteutettava yksikkö, jonka rivinumero on nolla.
Seuraavassa on lisää esimerkkejä methodLineTables-merkkijonoista ja niiden merkityksestä:
methodLineTables-merkkijono Merkitys
+5 Jos ensimmäisen metodin ensimmäisen toteutettavan yksikön rivinumero on pienempi kuin kymmenen, koko merkkijono aloitetaan plusmerkillä, jotta lisäyssarja alkaa riviltä nolla. Tässä esimerkissä ensimmäisen metodin ensimmäinen toteutettava yksikkö alkaa riviltä 5.
+0 Jos ensimmäisessä metodissa ei ole lähdetietoja, merkkijono alkaa merkeillä +0. Kaikki tällaiseen metodiin käytettävät executableUnit-luotausfragmentit lisätään vain kerran, metodin alkuun.
...#437,#457+123... Jos metodin ensimmäinen toteutettava yksikkö alkaa yli yhdeksän riviä edellisen metodin viimeisen toteutettavan yksikön jälkeen, merkkijono on pilkku, numeromerkki (#-merkki) ja uuden metodin ensimmäisen toteutettavan yksikön rivinumero. Tässä osittaisessa esimerkissä uuden metodin ensimmäinen toteutettava yksikkö alkaa 20 riviä edellisen metodin viimeisen toteutettavan yksikön jälkeen.
...#437,+2... Metodin viimeinen toteutettava yksikkö saattaa edellyttää #-merkkiä, ja seuraavan metodin ensimmäinen toteutettava yksikkö on hyvin lähellä. Tässä osittaisessa esimerkissä yhden metodin viimeinen toteutettava yksikkö alkaa riviltä 437 ja seuraavan metodin ensimmäinen toteuttava yksikkö alkaa riviltä 439.
Aiheeseen liittyviä viitteitä
Luotausfragmentit