Exemplo de fragmento de sonda no âmbito da classe

Este exemplo demonstra como utilizar o fragmento no âmbito da classe numa sonda.

No exemplo, uma sonda conta o número de instâncias criadas de todas as classes em pacotes que correspondam ao padrão de caracteres globais com.sample* e reporta a criação a cada cem instâncias.

O fragmento no âmbito da classe declara um contador que aparece como campo estático do tipo int na classe em que o fragmento de entrada esteja compilado. O fragmento também declara um inicializador estático para a classe do fragmento para reportar que a sonda foi carregada. Repare que os artigos no fragmento no âmbito da classe estão construídos na classe da sonda gerada, e não nas classes às quais a sonda é aplicável. Para inserir campos estáticos ou a lógica de inicializador estático nas classes à qual uma sonda é aplicável, utilize fragmentos de sonda do tipo staticInitializer ou defina um campo estático.

Esta sonda define-se pelas seguintes entradas no editor do Probekit:
  • Código Java para o Fragmento no Âmbito de Classe (seleccione Sonda na área da janela em árvore para introduzir este valor):

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

  • Destino (para introduzir estes valores, seleccione Destino na área da janela em árvore e depois faça clique em Editar):
    • Tipo de Destino: include
    • Pacote: com.sample* (Utilize um verdadeiro nome de pacote aqui.)
    • Classe: *
    • Método: <init>
    • Assinatura: *
  • Destino (para introduzir estes valores, faça clique em Adicionar e depois em Editar na área da janela de edição):
    • Tipo de Destino: exclude
    • Pacote: *
    • Classe: *
    • Método: *
    • Assinatura: *
  • Fragmento (seleccione Fragmento na área da janela em árvore para introduzir estes valores):
    • Tipo de Fragmento: entry
    • Código Java:

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