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.