Extensible Code Generation with Java, Part 2