I would like to create @Log annotation to generate initializers for Logger fields:
import java.util.logging.Logger
class LoggerExample {
@Log Logger log
}
This is supposed to be translated to:
public class LoggerExample {
@Log
private final static Logger log = java.util.logging.Logger.getLogger("log.LoggerExample");
}
I defined the following processor:
@Target(ElementType::FIELD)
@Active(typeof(LogProcessor))
annotation Log {
}
class LogProcessor extends AbstractFieldProcessor {
override doTransform(MutableFieldDeclaration field, extension TransformationContext context) {
field.initializer = [ '''java.util.logging.Logger.getLogger("«field.declaringType.qualifiedName»")''' ]
field.final = true
field.static = true
}
}
However the compiler reports an error for LoggerExample : "The blank final field log may not have been initialized"
What should I do to make my processor work?
Thanks in advance!