Oggetto di analisi Fragment

L'oggetto di analisi Fragment è una specifica della logica di analisi. Contiene il codice origine Java che verrà eseguito.

È richiesto almeno un oggetto Fragment. Contiene l'oggetto Code e tutti gli elementi dati ai quali fa riferimento il codice origine nell'oggetto Code. Un'analisi può contenere più di un oggetto Fragment, ma due oggetti Fragment non possono avere lo stessa proprietà type.

L'oggetto Fragment comprende le seguenti proprietà:
Proprietà Descrizione
type Obbligatorio. Per le analisi di metodo, deve essere entry, exit, catch, staticInitializer o executableUnit. Per le analisi a livello di chiamata, deve essere beforeCall o afterCall. Non è possibile combinare frammenti a livello di metodo e a livello di chiamata in una singola analisi.
Nella seguente tabella vengono elencati e descritti i tipi di frammento e viene indicato il tipo di analisi in cui possono essere utilizzati:
Tipo di frammento Tipo di analisi Descrizione
entry Metodo I frammenti entry vengono eseguiti in base al metodo entry. I frammenti entry non vengono eseguiti per i metodi inseriti nella classe da Probekit.
exit Metodo I frammenti exit vengono eseguiti in base al metodo exit; un'uscita normale quando il metodo esegue un'eccezione o quando un'eccezione si propaga esternamente al metodo. I frammenti exit non vengono eseguiti per i metodi inseriti nella classe da Probekit.
catch Metodo I frammenti catch vengono eseguiti all'inizio di una clausola catch nel metodo oppure all'inizio di una clausola finally che viene eseguita come risultato di un'eccezione.
staticInitializer Metodo I frammenti staticInitializer vengono eseguiti all'interno dell'inizializzatore della classe di ogni classe analizzata. Se la classe non dispone ancora di un inizializzatore statico, ne verrà creato uno. Per ulteriori informazioni, consultare Frammento di analisi staticInitializer.
executableUnit Metodo I frammenti executableUnit vengono eseguiti prima di ogni unità eseguibile del codice nei metodi che corrispondono alle specifiche di filtro e di destinazione e per i quali è disponibile il codice origine. Se il metodo non dispone di informazioni sulla riga di origine, sembra avare una singola unità eseguibile, numerata zero. Per ulteriori informazioni, consultare Frammento di analisi executableUnit.
beforeCall a livello di chiamata I frammenti beforeCall vengono eseguiti nel metodo chiamante immediatamente prima che venga richiamato il metodo di destinazione. Non valido per le analisi di metodo.
afterCall a livello di chiamata I frammenti afterCall vengono eseguiti nel metodo chiamante immediatamente dopo l'uscita del metodo di destinazione; uscita normale o quando il metodo di destinazione esegue un'eccezione. Non valido per le analisi di metodo.
Notes:
  • Quando le analisi vengono applicate ai metodi dichiarati synchronized, il codice nei frammenti entry, exit e executableUnit non è garantito dall'essere protetto dall'esecuzione simultanea su più thread. Ad esempio, un frammento entry ed i primi frammenti executableUnit dovrebbero essere eseguiti prima che la logica di sincronizzazione del metodo ottenga un blocco ed un frammento exit dovrebbe essere eseguito dopo il rilascio del blocco.
  • Un'analisi può avere più frammenti che vengono applicati alla stessa posizione in un metodo; ad esempio, un frammento entry e la prima posizione executableUnit. Un altro esempio è un frammento catch e la relativa posizione executableUnit associata, dal momento che le clausole catch di gestione delle eccezioni rappresentano sempre l'inizio di una nuova unità eseguibile. In questi casi, il codice del frammento executableUnit verrà eseguito dopo il codice del frammento entry o catch. Una conseguenza è che i frammenti entry, se presenti, verranno sempre eseguiti prima di altri tipi di frammenti.
Esempio
<fragment type="entry"> 
   <data . . . />
   <code>
      . . . 
   </code>
</fragment>

Contenuto da
Oggetto Probe

Argomento principale: Riferimento elemento Probekit

Riferimenti correlati
Esempi Probekit
Frammento di analisi executableUnit
Frammento di analisi staticInitializer

Clausole di utilizzo | Commenti
(C) Copyright IBM Corporation 2000, 2004. Tutti i diritti riservati.