Provides the outline of the generated Java source code so that additional processings (such as adding more annotations) can be done on the generated code.

Code generation phase builds an outline little by little, while each step is using the outline built by the prior steps.