final classWriteReportingFileManager extends ForwardingJavaFileManager[JavaFileManager]
Track write calls through customized file manager.
NB: overriding getJavaFileForOutput takes care of .class file generation, which is the most part.
getFileForOutput used by annotation processor for writing resources, however, cannot be overridden because
of a javac sdk limitation. In jdk8 it has a hard coded check of
com.sun.tools.javac.file.RegularFileObject instanceof com.sun.tools.javac.file.BaseFileObject
so if we wrap RegularFileObject with ForwardingFileObject would fail the check.
Linear Supertypes
ForwardingJavaFileManager[JavaFileManager], JavaFileManager, OptionChecker, Flushable, Closeable, AutoCloseable, AnyRef, Any
Track write calls through customized file manager.
NB: overriding
getJavaFileForOutput
takes care of.class
file generation, which is the most part.getFileForOutput
used by annotation processor for writing resources, however, cannot be overridden because of a javac sdk limitation. In jdk8 it has a hard coded check ofcom.sun.tools.javac.file.RegularFileObject instanceof com.sun.tools.javac.file.BaseFileObject
so if we wrapRegularFileObject
withForwardingFileObject
would fail the check.