Este exemplo demonstra como utilizar o fragmento de probe FragmentAtClassScope.
Neste exemplo, uma probe conta o número de instâncias já criadas de todas as classes nos pacotes correspondentes ao padrão curinga "com.sample*" e relata a cada centésima criação de instância.
O "fragmento no escopo da classe" declara um contador que aparece como um campo estático do tipo int na classe em que o fragmento entry está compilado. O fragmento também declara um inicializador estático para a classe fragment que relata o carregamento da probe. Note que os itens na seção fragmentAtClassScope estão construídos na classe gerada da probe, não nas classes às quais a probe se aplica. Para inserir campos estáticos ou lógica de inicializador estático nas classes às quais uma probe se aplica, utilize os objetos staticField e staticInitializer.
Para utilizar esse código de exemplo, altere package="com.sample*" no objeto de destino para referir ao nome de um pacote real.
Note que para utilizar os caracteres & e < no XML, é necessário especificar as entidades dos caracteres & e <, como mostrado no exemplo.
<?xml version="1.0" encoding="ASCII"?> <probekit> <probe> <fragmentAtClassScope> static public int entry_counter = 0; static int counter = 0; static { System.out.println("[A probe de amostra fragmentAtClassScope foi carregada.]"); } </fragmentAtClassScope> <target type="include" package="com.sample*" method="<init>" /> <target type="exclude" package="*" /> <fragment type="entry"> <code> ++counter; if (counter % 100 == 0) System.out.println("[" + counter + " instância(s) de classes no pacote com.sample até o momento]"); </code> </fragment> </probe> </probekit>
Tópico Pai: Exemplos do Probekit
Referências Relacionadas
O Objeto FragmentAtClassScope da Probe