Sono passato da FreeMarker alla mia utilità di generazione del codice sorgente Java. Le fonti sono accessibili da qui: https://source.mysema.com/svn/mysema/projects/codegen/trunk/
È progettato in modo tale che basta chiamare l'API e l'output è formattato correttamente. Ecco un esempio:
JavaWriter writer = new JavaWriter(new StringWriter());
writer.beginClass("FieldTests");
writer.privateField("String", "privateField");
writer.privateStaticFinal("String", "privateStaticFinal", "\"val\"");
writer.protectedField("String","protectedField");
writer.field("String","field");
writer.publicField("String","publicField");
writer.publicStaticFinal("String", "publicStaticFinal", "\"val\"");
writer.publicFinal("String", "publicFinalField");
writer.publicFinal("String", "publicFinalField2", "\"val\"");
writer.end();
che si trasforma in
public class FieldTests {
private String privateField;
private static final String privateStaticFinal = "val";
protected String protectedField;
String field;
public String publicField;
public static final String publicStaticFinal = "val";
public final String publicFinalField;
public final String publicFinalField2 = "val";
}
ho sviluppato il programma di utilità per il codegen Querydsl che rispecchia tipi di dominio Java in tipi di query. Quindi le esigenze di serializzazione sono molto complesse. L'uso semplice dei modelli di FreeMarker non è stato ridimensionato. C'era troppa personalizzazione nell'output, che è meglio controllare in Java rispetto alla sintassi del linguaggio template.
Questo non è un annuncio per il modulo Codegen. Volevo solo sottolineare che per la serializzazione altamente personalizzabile FreeMarker potrebbe non essere scalabile.
fonte
2010-06-13 15:04:04
http://stackoverflow.com/questions/996646/stand-alone-java-code-formatter-beautifier-pretty-printer –