Gli oggetti probe Data contengono i nomi e i tipi di elementi di dati indicati dal codice di origine nell'oggetto Code di un frammento.
L'oggetto Data è facoltativo. Un frammento probe può contenere più di un oggetto Data, ma il tipo e il nome devono essere diversi per ciascun oggetto.
Proprietà | Descrizione |
---|---|
name | Obbligatoria. Deve specificare un nome di variabile Java valido. |
type | Obbligatoria. I tipi disponibili vengono elencati nella tabella riportata di seguito. |
Tipo | Tipo di dati | Descrizione |
---|---|---|
className | String | Il nome della classe del metodo con probe, che include il nome del pacchetto, nel formato interno. Esempio: org/eclipse/hyades/SomeClass |
methodName | String | Il nome metodo del metodo con probe, nel formato interno. Non è valido per i frammenti staticInitializer . I costruttori hanno il nome metodo <init>, mentre gli inizializzatori di classi statici hanno il nome metodo <clinit>. |
methodSig | String | La firma dell'argomento e del tipo restituito del metodo, nel formato interno. Non è valido per i frammenti staticInitializer . Esempio: (Ljava/lang/String;)I |
thisObject | Object | L'oggetto this (per i metodi delle istanze) che è stato passato al metodo con probe. Non è valido per i frammenti staticInitializer . thisObject sarà null per i metodi statici, per i frammenti entry che vengono applicati ai costruttori e per i frammenti exit applicati ai costruttori quando questi ultimi lanciano un'eccezione. |
args | Object[] | Una matrice di riferimenti Object che rappresentano gli argomenti per il metodo con probe. C'è solo un elemento in questa matrice per ciascun argomento del metodo (senza considerare l'argomento this). Gli argomenti che sono tipi primitivi vengono associati in oggetti temporanei del tipo di riferimento appropriato, ad esempio: Integer per int. Se il metodo non accetta argomenti, questa matrice Object[] avrà una dimensione pari a zero. Notare che i costruttori per classi interne non statiche dispongono di un argomento nascosto per ciascun livello "interno"; in tal modo, la matrice di argomenti conterrà più elementi di quanti ne compaiano nel codice di origine. Non è valido per i frammenti staticInitializer . |
returnedObject | Object | Un riferimento all'oggetto da restituire. Questo tipo è disponibile solo per i frammenti exit. Se il tipo di ritorno del metodo con probe è un tipo primitivo, il valore restituito viene associato in un oggetto temporaneo del tipo di riferimento appropriato. Se il metodo è void (non restituisce alcun valore) oppure se viene terminato da un'eccezione, returnedObject sarà null. È valido solo per i frammenti afterCall. |
exceptionObject | Throwable | Un riferimento all'oggetto eccezione da lanciare. Questo è disponibile solo per i frammenti catch e exit. Se il metodo termina normalmente, exceptionObject sarà null. |
isFinally | boolean | Un indicatore che segnala se il frammento è stato richiamato da una proposizione finally (true) o catch (false). È valido solo nei frammenti catch. |
staticField | (varia) | L'oggetto indicato dal campo statico. Il tipo di questo oggetto è lo stesso tipo che è stato dichiarato nell'oggetto staticField. Questo tipo è valido solo se anche il il probe dispone di un oggetto staticField. Non è valido per i probe callsite. |
classSourceFile | String | Le informazioni sul nome del file di origine disponibili dagli attributi di debug del file di classe. Se non vi sono informazioni di origine, classSourceFile sarà null. In Java, questo valore corrisponde solitamente al solo nome del file, senza informazioni sul percorso. Non è valido per i probe callsite. |
methodNames | String | Un elenco codificato di nomi e di firme di metodi. L'ordine in base al quale i metodi vengono elencati è lo stesso riportato sia in methodLineTables che dall'elemento di dati methodNumber. Questo elenco non includerà i nomi dei metodi che sono stati inseriti in una classe da Probekit. La stringa methodNames è costituita da uno o più nomi e firme di metodi, separati da un segno più ("+"). Le firme dei metodi sono nel formato interno Java. Ad esempio, una classe con due metodi, un costruttore predefinito e un metodo run che accetta un tipo String e restituisce un tipo int, presenta la seguente stringa methodNames: <init>()V+run(Ljava/lang/String;)I Non è valido per i probe callsite. |
methodLineTables | String | Un elenco codificato di numeri di riga che corrispondono a ciascuna unità eseguibile di codice presente nella classe. Questo elenco non includerà le unità eseguibili che sono state inserite in una classe da Probekit. Per ulteriori chiarimenti sulla codifica, vedere Formato stringa methodLineTables. Non è valido per i probe callsite. |
methodNumber | Integer | Il numero di indice nella tabella methodNames per il metodo in cui il frammento probe è stato inserito. Non è valido né per i probe callsite né per i frammenti staticInitializer. |
executableUnitNumber | Integer | Il numero delle unità eseguibili in cui è stato inserito il frammento probe. Questo tipo di dati è valido solo per i frammenti probe executableUnit e catch. Se il metodo non dispone di informazioni sulle righe del codice di origine, sembrerà contenere una singola unità eseguibile, di numero zero. |
<data type="className" name="__class" />
Contenuto in
Oggetto probe Fragment
Argomento principale: Informazioni di riferimento su Probekit