this.addImplementedInterfacesToClassSourceFileComposerFactory(composerFactory);
this.setClassJavaDoc(composerFactory);
final TypeOracleGeneratorContext context = (TypeOracleGeneratorContext) this.getGeneratorContext();
final PrintWriter printWriter = this.getPrintWriter();
final SourceWriter writer = context.createSourceWriter(composerFactory, printWriter);
try {
context.branch();
this.log();
this.writeInitializers(writer);
this.writeConstructors(writer);
this.writeFields(writer);
this.writeMethods(writer);
this.writeNestedTypes(writer);
context.unbranch();
} catch (final GeneratorException caught) {
this.handleWriteFailure(writer, caught);
throw caught;
} finally {
writer.commit();
}
}