O Objeto Data da Probe

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.

O objeto Data inclui as seguintes propriedades:
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.
A tabela a seguir lista e descreve os tipos e indica o tipo de dados para cada tipo:
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.
Exemplo
<data
   type="className"   
   name="__class" />

Tópico Pai: Referência de Elemento de Probekit

Referências Relacionadas
O Fragmento staticInitializer da Probe
O Objeto StaticField da Probe
O Formato da Cadeia methodLineTables
O Fragmento executableUnit da Probe

Termos de Uso | Feedback
(C) Copyright IBM Corporation 2000, 2004. Todos os Direitos Reservados.