class JavaCompilerFieldWriterFactory implements FieldWriterFactory {

    @Override
    public FieldWriter apply(Field field) {

        Class<?> declaringClass = field.getDeclaringClass();
        Optional<String> methodName = getMethodName(declaringClass, field);

        FieldWriter fieldWriter = methodName.map(compile(declaringClass, field.getType()))
                .orElseGet(() -> fallback.apply(field));

        return fieldWriter;
    }

      JavaCompilerFieldWriterFactory(JavaCompilerFacade compilerFacade, Reflections reflections, FieldWriterFactory fallback);

}