Vizsgálók célmeghatározásai

A target meghatározások azokat az osztályokat és metódusokat jelzik, amikre a vizsgálót alkalmazni kell.

A cél meghatározása elhagyható. Ha nincs megadva a target (cél) objektum, akkor a vizsgáló a felkészítési alrendszer által feldolgozott összes osztályra fog vonatkozni.

A célmeghatározás lehetővé teszi szűrőszabályok létrehozását metódusok felkészítésbe beemeléséhez, vagy abból kivételéhez a csomagnak, osztálynak és metódusnévnek, valamint a metódus aláírásának megfelelő minták alapján. A minták tartalmazhatnak helyettesítő karaktereket, ahol a "*" nulla, vagy több karakterrel eredményez egyezést.

Ha egy cél (target) objektum helyettesítő karakteres mintái egyezést eredményeznek egy metódus csomagjával, osztályával, nevével és aláírásával, akkor a type tulajdonság dönti el, hogy a metódus felkészítésre kerül-e (include) vagy sem (exclude). Ha a minták nem eredményeznek egyezést egy metódus csomagjával, osztályával, nevével és aláírásával, akkor alapértelmezésben a metódus felkészítésre kerül.

A cél az alábbi tulajdonságokat tartalmazza:
Tulajdonság Leírás
type Kötelező. A type tulajdonság határozza meg, hogy a célmetódusra egy vizsgáló vonatkozik-e, vagy sem. Az include érték megadásával a helyettesítő karakteres mintáknak megfelelő osztályokon és metódusokon alkalmazásra kerül a vizsgáló, az exclude érték esetén nem.
package Elhagyható. Az osztálynevek csomag részével egyezést eredményező helyettesítő karakteres minta adható itt meg.Például: A java.util* minta a java.util csomagban és annak alcsomagjaiban lévő összes osztállyal egyezést eredményez. Ha nincs megadva, akkor az alapértelmezett érték a *.
className Elhagyható. Az osztálynevekkel egyezést eredményező helyettesítő karakteres minta adható itt meg. Ha nincs megadva, akkor az alapértelmezett érték a *.
method Elhagyható. A metódusnevekkel egyezést eredményező helyettesítő karakteres minta adható itt meg. Ha nincs megadva, akkor az alapértelmezett érték a *.
signature Elhagyható. Egy metódus aláírásával egyező helyettesítő karakteres minta adható meg. (Az aláírás a metódus argumentumait és visszatérési típusait ábrázoló karaktersorozat.) Metódus aláírásoknál használja a belső Java formátumot. Például: A (Ljava/lang/Object;)D egy objektumot paraméterként fogadó és dupla pontosságú (double típusú) visszatérési értékkel rendelkező metódus aláírása. Ezen helyettesítő karakteres minta a túlterhelt metódusok megkülönböztetésére használható. Ha nincs megadva, akkor az alapértelmezett érték a *.

Megjegyzések:

  • Egy vizsgáló több, egymást követő célmeghatározási szabályokat tartalmazó célmeghatározással rendelkezhet. Ha csak bizonyos metódusokra kíván alkalmazni egy vizsgálót, akkor először adja meg a kívánt metódusokat, majd adjon hozzá egy végső célmeghatározást: package=* className=* method=* signature=* type=exclude.
  • A megadott csomag- és osztálynevek szintén ellenőrzésre kerülnek minden osztály által megvalósított felület csomag- és osztálynevével. Például a java.util.HashMap osztály a java.util.Map felületet valósítja meg. Ha egy vizsgáló célja a java.util csomag, a Map osztálynév és a size metódusnév, akkor a vizsgáló a java.util.HashMap.size() metódusra és a Map felületet megvalósító minden más osztály size metódusára alkalmazásra kerül.
  • A mintaegyezés nem veszi figyelembe az öröklési viszonyokat. Ha a származtatott osztály az Alap osztályt terjeszti ki és a vizsgáló célja az Alap.run(), akkor a vizsgáló nem kerül automatikusan alkalmazásra a Leszarmazott.run() esetén.
  • Ha a csomag mintája egyetlen pont (".") karakter, akkor ez egy globális, névtelen Java csomagot jelent. Ez lehetővé teszi kifejezetten a globális csomag osztályainak célként meghatározását.
  • A célminták és szabályok a hívóhelyi vizsgálók által megfeleltetésre kerülnek a meghívott metódus csomagjával, osztályával, nevével és aláírásával. A meghívott metódus megfeleltetése a metódus fordításkor ismert formáján történik meg, azaz a statisztikailag ismert osztály- és metódusnéven, nem pedig a tényleges, öröklési és virtuális függvények hívása közben meghívott metódusokon. Felület hivatkozáson keresztüli hívás esetén a felület nevének kell egyezést eredményeznie.
Példa:

Cél megadásához válassza a Vizsgáló oldal fapanelében a Cél bejegyzést, és kattintson a Hozzáadás, majd a Szerkesztés gombokra a szerkesztőpanelen.

Ez a példa csak azokra a metódusokra alkalmazza a vizsgálót, amiknek a neve Get kezdetű a Proxy végű osztályokban, a com.example csomagban. Tartalmazó és kizáró típusú célbejegyzések; a kizáró célbejegyzés típus csillag karakterrel kizár mindent; a tartalmazó bejegyzés pontosan meghatározza a célzott metódusokat. Minden más osztály és metódus ki van zárva a felkészítésből.