Os objetos Data da probe contêm os nomes e tipos de itens de dados que são referenciados pelo código fonte no objeto Code de um fragmento.
O objeto Data é opcional. Um fragmento de probe pode conter mais de um objeto Data, mas dois objetos Data em um fragmento não podem ter o mesmo tipo ou nome.
Propriedade | Descrição |
---|---|
name | Obrigatório. Deve especificar um nome válido de variável Java. |
type | Obrigatório. Os tipos disponíveis estão listados na tabela a seguir. |
Tipo | Tipo de dados | Descrição |
---|---|---|
className | String | O nome da classe do método com probe, incluindo o nome do pacote, em formato interno. Exemplo: org/eclipse/hyades/SomeClass |
methodName | String | O nome do método com probe, em formato interno. Não é válido para fragmentos staticInitializer. Os construtores possuem o nome de método <init> e os inicializadores de classes possuem <clinit> como o nome do método. |
methodSig | String | O argumento do método e a assinatura do tipo de retorno, em formato interno. Não é válido para fragmentos staticInitializer. Exemplo: (Ljava/lang/String;)I |
thisObject | Object | O objeto this (para métodos da instância) que foi transmitido para o método da probe. Não é válido para fragmentos staticInitializer. thisObject será null para métodos estáticos, para fragmentos entry que são aplicados a construtores e para fragmentos exit aplicados a construtores quando o construtor lança uma exceção. |
args | Object[] | Uma matriz de referências a Object representando os argumentos para o método com probe. Há um elemento nessa matriz para cada argumento do método (sem contar o argumento this). Os argumentos de tipos primitivos são ligados a objetos temporários do tipo de referência apropriado, por exemplo: Integer para int. Se o método não obtém argumentos, ele será uma matriz Object[] de tamanho zero. Note que os construtores de classes internas não estáticas possuem um argumento oculto por nível "interno", de forma que a matriz de argumentos conterá mais elementos do que aparece no código fonte. Não é válido para fragmentos staticInitializer. |
returnedObject | Object | Uma referência ao objeto que está sendo retornado. Este tipo está disponível apenas para fragmentos exit. Se o tipo de retorno do método com probe for um tipo primitivo, o valor retornado será ligado a um objeto temporário do tipo de referência apropriado. Se o método for void (não retornar um valor) ou se ele estiver saindo por exceção, returnedObject será null. Válido apenas em fragmentos afterCall. |
exceptionObject | Throwable | Uma referência ao objeto de exceção que está sendo lançado. Este tipo está disponível apenas para fragmentos catch e exit. Se o método sair normalmente, exceptionObject será null. |
isFinally | boolean | Um sinalizador que indica se o fragmento foi chamado de uma cláusula finally (true) ou de uma cláusula catch (false). Válido apenas em fragmentos catch. |
staticField | (varia) | O objeto referenciado pelo campo estático. Seu tipo é o mesmo tipo declarado no objeto staticField. Ele é válido apenas se a probe também possuir o objeto staticField. Não é válido para probes de callsite. |
classSourceFile | String | As informações do nome do arquivo de origem disponíveis nos atributos debug do arquivo de classe. Se não houver informações de origem, classSourceFile será null. Para o Java, o valor é normalmente apenas o nome do arquivo, sem informações de caminho. Não é válido para probes de callsite. |
methodNames | String | Uma lista codificada de nomes e assinaturas de métodos. A ordem dos métodos nessa lista é a mesma que a ordem dos métodos em methodLineTables e a mesma que a ordem refletida pelo item de dados methodNumber. A lista não incluirá os nomes de nenhum método inserido na classe por Probekit. A cadeia methodNames consiste em um ou mais nomes e assinaturas de métodos, separados por um sinal de adição ("+"). As assinaturas de métodos estão no formato interno do Java. Por exemplo, uma classe com dois métodos, um construtor padrão e um método run que obtém uma String e retorna um int, possui esta cadeia methodNames: <init>()V+run(Ljava/lang/String;)I Não é válido para probes de callsite. |
methodLineTables | String | Uma lista codificada de números de linha que correspondem a cada unidade de código executável na classe. A lista não incluirá unidades executáveis inseridas na classe por Probekit. Para obter uma explicação sobre a codificação, consulte O Formato da Cadeia methodLineTables. Não é válido para probes de callsite. |
methodNumber | Integer | O número do índice na tabela methodNames para o método no qual um fragmento de probe foi inserido. Não é válido para probes de callsite ou fragmentos staticInitializer. |
executableUnitNumber | Integer | O número da unidade executável na qual o fragmento de probe foi inserido. Este tipo de dados é válido apenas para fragmento de probe executableUnit e catch. Se o método não possuir informações de linha de origem, ele aparecerá como tendo uma única unidade executável, numerada como zero. |
<data type="className" name="__class" />
Contido por
O Objeto Fragment da Probe