Extensão
Agora que você conhece o Mirror, talvez você queira um pouco mais.
Reflection Providers
Basicamente todo o trabalho sujo é feito por uma coleção de interfaces que chamamos de Reflection
Providers.
Esse é o núcleo real do Mirror.
Atualmente temos apenas net.vidageek.mirror.provider.java.PureJavaReflectionProvider, que usa
apenas a Java Reflection API.
Mas você pode simplesmente implementar net.vidageek.mirror.provider.ReflectionProvider para ter mais
controle sobre o que está acontecendo.
Na verdade, net.vidageek.mirror.provider.ReflectionProvider é apenas um grande wrapper para interfaces
mais específicas:
- net.vidageek.mirror.provider.AnnotatedElementReflectionProvider.java
- net.vidageek.mirror.provider.ClassReflectionProvider.java
- net.vidageek.mirror.provider.ConstructorReflectionProvider.java
- net.vidageek.mirror.provider.FieldReflectionProvider.java
- net.vidageek.mirror.provider.MethodReflectionProvider.java
Mas como você faz para que o Mirror use seu Reflection Provider? De uma olhada em Extensão -> Configuração.
Configuração
Existem duas formas de configurar o Mirror. Você pode instanciar Mirror passando um
net.vidageek.mirror.provider.ReflectionProvider :
new Mirror(new FakeReflectionProvider());
Ou você pode deixar que o mirror leia um arquivo de configuração (mirror.properties) que deve ficar na
pasta raiz do seu projeto.
Por enquanto, a única chave aceita neste arquivo de configuração é a seguinte:
- provider.class : Este é o nome completo da classe implementando net.vidageek.mirror.provider.ReflectionProvider
que você quer que o Mirror use.
Um exemplo:
provider.class = net.vidageek.mirror.fake.FakeProvider
Apenas para lembrar, nenhuma configuração é necessária para usar o Mirror. Ele vai funcionar bem sem ela.
Apenas use-a quando "bem" não for suficiente para suas necessidades.