The goal is to give certain project types, or their configurations, a chance to use existing .class files rather than compiling from .java. The primary motivation for this API is to support following usecase with mx based graal sources:
$ cd graal/truffle
$ mx build
$ netbeans --open .
The build command compiles everything and places the classes into bin directories. By using the API introduced in this pull request, the project can instruct the NetBeans Java support to copy those .class files and thus speed the initialization up.
The support shall be generally useful in all project types. Yet, it is up to individual projects to turn it on. There has been pushback against this copying approach in the past, so we definitely want opt-in behavior, the default should remain as it is.