This implies that all java code will always have the same basic structure. This may it very difficult to e.g. generate code for libthrift (without the swift annotations) or any other programming language. Unconditionally loading a file because two of the flavors (admittedly the only two flavors we have right now).

I know that loading a template as an include is not the easiest thing with ST but hardcoding this is not the right thing to do. 

What I would could see as a possible solution is that each "flavor" of code to generate has not only one template but can have multiples so that the current versions load the common template and their specific one.