Objet d'analyse Fragment

L'objet d'analyse Fragment représente une spécification de la logique d'un composant d'analyse. Il comporte le code source Java qui sera exécuté.

Au moins un objet Fragment est obligatoire. Il contient l'objet Code et tous les éléments de données auxquels le code source fait référence dans celui-ci. Un composant d'analyse peut comporter plusieurs objets Fragment, mais chacun doit posséder un type unique.

L'objet Fragment inclut la propriété suivante :
Propriété Description
type Obligatoire. Pour les composants d'analyse méthodes, il doit s'agir d'entry, d'exit, de catch, de staticInitializer ou d'executableUnit. Pour ceux sites d'appels, il doit s'agir de beforeCall ou d'afterCall. Vous ne pouvez pas combiner des fragments méthodes et sites d'appels dans un même composant d'analyse.
Le tableau suivant répertorie et décrit les types de fragments et il mentionne le type de composant d'analyse dans lequel chacun peut être employé :
Type de fragment Type de composant d'analyse Description
entry Méthode Les fragments entry s'exécutent à l'entrée de la méthode. Les fragments entry ne s'exécutent pas pour des méthodes insérées dans la classe par Probekit.
exit Méthode Les fragments exit s'exécutent à la sortie de la méthode : la sortie est normale lorsque la méthode lance une exception ou que l'exception lancée se propage hors de la méthode. Les fragments exit ne s'exécutent pas pour des méthodes insérées dans la classe par Probekit.
catch Méthode Les fragments catch s'exécutent au début d'une clause catch dans la méthode ou d'une clause finally s'exécutant comme résultat d'une exception.
staticInitializer Méthode Les fragments staticInitializer s'exécutent à l'intérieur de l'initialiseur de chaque classe analysée. Un initialiseur statique sera créé si la classe n'en possède pas. Pour en savoir plus, voir Fragment d'analyse staticInitializer.
executableUnit Méthode Les fragments executableUnit s'exécutent avant chaque unité exécutable de code dans les méthodes respectant la spécification de filtre et cible du composant d'analyse et pour lesquelles le code source est disponible. Si la méthode ne possède pas les informations source sur les lignes, elle inclura une seule unité exécutable numérotée zéro. Pour en savoir plus, voir Fragment d'analyse executableUnit.
beforeCall Site d'appels Les fragments beforeCall s'exécutent dans la méthode appelante, juste avant l'appel de la méthode cible. Non accepté pour des composants d'analyse méthodes.
afterCall Site d'appels Les fragments afterCall s'exécutent dans la méthode appelante, juste après la sortie de la méthode cible (sortie normale ou lorsque la méthode cible lance une exception). Non accepté pour des composants d'analyse méthodes.
Remarques :
  • Lorsque des composants d'analyse sont appliqués à des méthodes déclarées synchronisées, le code dans les fragments entry, exit et executableUnit n'est pas à coup sûr protégé contre une exécution simultanée de plusieurs unités d'exécution. Par exemple, un fragment entry et les premiers fragments executableUnit peuvent s'exécuter avant verrouillage de la logique de synchronisation de la méthode ; pour sa part, un fragment exit peut s'exécuter après la désactivation du verrouillage.
  • Un composant d'analyse peut comporter plusieurs fragments s'appliquant au même endroit dans une méthode. Par exemple, un fragment entry et le premier emplacement executableUnit. Autre exemple : un fragment catch et l'emplacement executableUnit associé, sachant que les clauses catch gérant les exceptions marquent toujours le début d'une nouvelle unité exécutable. Dans ces cas de figure, le code du fragment executableUnit s'exécute après celui du fragment entry ou catch. Par conséquent, les éventuels fragments entry s'exécuteront toujours avant d'autres types de fragments.
Exemple
<fragment type="entry"> 
   <data . . . />
   <code>
      . . . 
   </code>
</fragment>

Figurant dans
Objet d'analyse

Rubrique parent : Référence Probekit

Concepts connexes
Composants d'analyse méthodes et composants d'analyse sites d'appels

Copyright IBM Corporation et autres 2000, 2004.