Gli oggetti di analisi Data contengono i nomi ed i tipi degli elementi dati ai quali fa riferimento il codice di origine nell'oggetto Code del frammento.
L'oggetto Data è facoltativo. Un frammento di analisi può contenere più di un oggetto Data, ma due oggetti Data in un frammento non possono avere lo stesso tipo o nome.
Proprietà | Descrizione |
---|---|
name | Obbligatorio. Deve specificare un nome di variabile Java valido. |
type | Obbligatorio. I tipi disponibili sono elencati nella seguente tabella. |
Tipo | Tipo dati | Descrizione |
---|---|---|
className | String | Il nome della classe del metodo analizzato, incluso il nome del pacchetto, in formato interno. Esempio: org/eclipse/hyades/SomeClass |
methodName | String | Il nome del metodo analizzato, nel formato interno. Non valido per i frammenti staticInitializer. I costruttori hanno il nome metodo <init>, gli inizializzatori statici di classe hanno <clinit> come nome di metodo. |
methodSig | String | L'argomento del metodo e la firma del tipo di restituzione, in formato interno. Non valido per i frammenti staticInitializer. Esempio: (Ljava/lang/String;)I |
thisObject | Oggetto | L'oggetto this (per metodi di istanza) passato al metodo analizzato. Non valido per i frammenti staticInitializer. thisObject sarà null per i metodi statici, per i frammenti entry applicati ai costruttori e per i frammenti exit applicati ai costruttori quando il costruttore esegue un'eccezione. |
args | Object[] | Una matrice di riferimenti Object che rappresenta gli argomenti per il metodo analizzato. In questa matrice è presente un elemento per ogni argomento per il metodo (non considerando l'argomento this). Gli argomenti di tipo primitivo sono associati a oggetti temporanei dei tipo di riferimento appropriato, ed esempio: Integer per int. Se il metodo non contempla alcun argomento, si tratterà di una matrice Object[] di dimensione zero. Tenere presente che i costruttori di classi interne non statiche dispongono di un argomento nascosto per il livello "interno", quindi la matrice di argomento conterrà più elementi di quelli che appaiono nel codice origine. Non valido per i frammenti staticInitializer. |
returnedObject | Oggetto | Un riferimento all'oggetto che viene restituito. Questo tipo è disponibile solo per i frammenti exit. Se il tipo di restituzione del metodo analizzato è di tipo primitivo, il valore restituito viene associato ad un oggetto temporaneo del tipo di riferimento appropriato. Se il metodo è void (non restituisce un valore) oppure esiste per eccezione, returnedObject sarà null. Valido solo nei frammenti afterCall. |
exceptionObject | Throwable | Un riferimento all'oggetto eccezione che viene eseguito. Questo tipo è disponibile solo per i frammenti catch ed exit. Se il metodo esce normalmente, exceptionObject sarà null. |
isFinally | boolean | Un flag che indica se il frammento è stato richiamato da una clausola finally (vero) o da una clausola catch (falso). Valido solo nei frammenti catch. |
staticField | (varia) | L'oggetto al quale si fa riferimento mediante il campo statico. Si tratta dello stesso tipo dichiarato nell'oggetto staticField. È valido solo se l'analisi dispone anche dell'oggetto staticField. Non valido per le analisi a livello di chiamata. |
classSourceFile | String | Le informazioni del nome del file origine disponibili dagli attributi di debug del file della classe. Se non sono presenti informazioni di origine, classSourceFile sarà null. Per Java il valore è generalmente il nome del file, senza le informazioni sul percorso. Non valido per le analisi a livello di chiamata. |
methodNames | String | Un elenco codificato dei nomi dei metodi e delle firme. L'ordine dei metodi in questo elenco è lo stesso dell'ordine dei metodi in methodLineTables ed è lo stesso dell'ordine dell'elemento dati methodNumber. L'elenco non include i nomi dei metodi inseriti nella classe da Probekit. La stringa methodNames è costituita da uno o più nomi di metodo e firme, separate dal segno più ("+"). Le firme del metodo sono in formato Java interno. Ad esempio, una classe con due metodi, un costruttore predefinito, un metodo run che prende una String e restituisce un int, presenta questa stringa methodNames: <init>()V+run(Ljava/lang/String;)I Non valido per le analisi a livello di chiamata. |
methodLineTables | String | Un elenco codificato dei numeri di riga che corrispondono a ogni unità del codice eseguibile nella classe. L'elenco non include le unità eseguibili inserire nella classe da Probekit. Per una spiegazione della codifica, vedere Formato della stringa methodLineTables. Non valido per le analisi a livello di chiamata. |
methodNumber | Integer | Il numero di indice nella tabella methodNames per il metodo nel quale viene inserito il frammento di analisi. Non valido per le analisi a livello di chiamata o frammenti staticInitializer. |
executableUnitNumber | Integer | Il numero di unità eseguibili nel quale il frammento di analisi è stato inserito. Questo tipo di dati è valido solo per i frammenti di analisi executableUnit e catch. Se il metodo non dispone di informazioni sulla riga di origine, sembra avare una singola unità eseguibile, numerata zero. |
<data type="className" name="__class" />
Contenuto da
Oggetto di analisi Fragment
Argomento principale: Riferimento elemento Probekit
Riferimenti correlati
Frammento di analisi staticInitializer
Oggetto di analisi StaticField
Formato della stringa methodLineTables
Frammento di analisi executableUnit