StandardDoclet requires private DocletEnvironment (due to a cast in WorkArounds)
Dawid Weiss
dawid.weiss at gmail.com
Thu May 7 08:29:38 UTC 2020
Hello everyone,
I had a somewhat wild idea of trying to modify the behavior of the
StandardDoclet to write directly to a ZIP file (instead of the file
system). All the pieces fall into place relatively easily:
1) Create a custom Doclet that extends (public) StandardDoclet and
overrides the run method with:
public boolean run(DocletEnvironment docEnv) {
return super.run(new CustomEnvironment(docEnv));
}
2) CustomEnvironment delegates everything to docEnv except it returns
a ForwardingJavaFileManager over the docEnv.getJavaFileManager with a
bunch of "get*Input" methods substituted.
The only problem is - it doesn't work. :) Internally WorkArounds has a
cast to an internal implementation type:
public WorkArounds(BaseConfiguration configuration) {
[...]
this.toolEnv = ((DocEnvImpl)this.configuration.docEnv).toolEnv;
}
And it's a showstopper (maybe there are others but I didn't have a
chance to try).
Is there any way forward out of this (or an alternative take I can try)?
Dawid
More information about the javadoc-dev
mailing list