@Override
public <T> void hear(TypeLiteral<T> typeLiteral, TypeEncounter<T> typeEncounter) {
for (final Field field : typeLiteral.getRawType().getDeclaredFields()) {
if (field.isAnnotationPresent(PersistentProperty.class)) {
final PersistentProperty annotation = field.getAnnotation(PersistentProperty.class);
typeEncounter.register(new PersistentPropertyMembersInjector<T>(field, annotation));
}
}
}