Um Fragmento no Exemplo de Probe de Escopo de Classe

Este exemplo demonstra como utilizar o fragmento no escopo de classe em um probe.

No exemplo, um probe conta o número de instâncias já criadas de todas as classes em pacotes que correspondem ao padrão curinga com.sample* e relata cada centésima da criação de instância.

O fragmento no escopo de classe declara um contador que aparece como um campo estático do tipo int na classe em que o fragmento entry é compilado. O fragmento também declara um inicializador estático para a classe fragment para relatar que o probe foi carregado. Observe que os itens no fragmento no escopo da classe são construídos na classe do probe gerado, não em classes nas quais o probe é aplicado. Para inserir campos estáticos ou lógica do inicializador estático em classes nas quais o probe é aplicado, utilize fragmentos de probe do tipo staticInitializer ou defina um campo estático.

Esse probe é definido pelas seguintes entradas no editor Probekit:
  • Código Java para Fragmento no Escopo de Classe (selecione Probe na área de janela de árvore para digitar este valor):

    static public int entry_counter = 0;
    static int counter = 0;
    static { System.out.println("[fragmentAtClassScope sample probe has loaded.]"); }

  • Destino (para digitar esses valores, selecione Destino na área de janela da árvore e clique em Editar):
    • Tipo de Destino: incluir
    • Pacote: com.sample* (Utilize um nome de pacote real aqui.)
    • Classe: *
    • Método: <init>
    • Assinatura: *
  • Destino (para digitar esses valores, clique em Incluir e em Editar na área de janela Editar):
    • Tipo de Destino: excluir
    • Pacote: *
    • Classe: *
    • Método: *
    • Assinatura: *
  • Fragmento (selecione Fragmento na área de janela da árvore para digitar esses valores):
    • Tipo de Fragmento: entrada
    • Código Java:

      ++counter;
      if (counter % 100 == 0)
        System.out.println("[" + counter + " instances of classes in com.sample package so far]");