I’m considering to try to do code generation at work. Input is likely to be a JSON Schema.
I guess I could just write the .java file as a string. But I suspect that would be more error prone than generating a Java AST as some kind of data structure (if only java was homoiconic …). A quick search didn’t reveal any Clojure libraries for working Java AST as data.
Generated code should have:
appropriate private fields of the right type and with reasonable names
Maybe http://www.jsonschema2pojo.org/ would work for you? It seems to me it meets the criteria and has plenty of options. I haven’t used it myself, though.
Clojure itself uses this: https://asm.ow2.io/ except that generates bytecode, so .class files.
If you’re looking to generate Java source, string templates actually work pretty well and a lot of libs just do that. I’ve even used the cl-format function in the past for it
Otherwise, like others have mentioned, JavaParser does what you ask, and there is also Spoon: http://spoon.gforge.inria.fr/ but both of them will take you longer to get going then string templating.