Example
Jcodemodel cm =NewJcodemodel (); Jdefinedclass DC= Cm._class ("foo. Bar "); Dc.annotate (Cm.ref ("Org.springframework.stereotype.Repository")). Param ("value", "Apnservice"); Dc.field (Jmod.private+ jmod.static, Cm.parsetype ("String"), "Staticvar", Jexpr.lit ("ABC")); Dc.field (Jmod.public+ jmod.static + jmod.final, Cm.int, "Max_array_size", Jexpr.lit (25)); Jarray Array= Jexpr.newarray (Cm.parsetype ("String"));//Create type arrayDc.field (jmod.public + jmod.static + jmod.final, Cm.parsetype ("string[]"), "sorts", array); Array.add (Jexpr.lit ("Createdat")); Array.add (Jexpr.lit ("Updatedat")); Jmethod m= Dc.method (0,int.class, "foo"); M.body (). _return (Jexpr.lit (5)); Jmethod m2= Dc.method (jmod.public, CM. VOID, "Bar"); M2.javadoc (). Add ("This method would say Hello to the name."); M2.annotate (Override.class); M2.annotate (Cm.ref ("Javax.ws.rs.GET")); M2.annotate (Cm.ref ("Javax.ws.rs.Path"). Param ("value", "/getcustomerinfo"). Param ("name", "Apppushmessagemapper"); Jblock Block=M2.body (); Jtype type= Cm.parsetype ("String"); Jvar var= Block.decl (Type, "Fieldvar"); Jvar var1= Block.decl (Type, "FieldVar1", Jexpr.lit ("test"))); Jtype TYPEMAP2= Cm.ref ("Java.util.Map"). Narrow (Cm.ref ("String"), Cm.ref ("Object"))); Jtype TYPEMAP3= Cm.ref ("Java.util.HashMap"). Narrow (Cm.ref ("String"), Cm.ref ("Object"))); Block.decl (TYPEMAP2,"Map", Jexpr._new (TYPEMAP3)); Jannotationuse ja; Jmethod M3= Dc.method (Jmod.public, Cm.parsetype ("String"), "get"); Jvar JV= M3.param (Cm.parsetype ("String"), "id"); JA= Jv.annotate (Cm.ref ("Param")). Param ("value", "id"); JV= M3.param (Cm.ref ("java.lang.String"), "site"); JA= Jv.annotate (Cm.ref ("Javax.jws.WebParam")); //construct a map<string, integer>Jtype Typemap = Cm.ref ("Java.util.Map"). Narrow ("String"), Cm.ref ("Object"))); JV= M3.param (Typemap, "args"); JA= Jv.annotate (Cm.ref ("Param")). Param ("value", "params"); File File=NewFile ("d:/home/tomcat/code/"); File.mkdirs (); Cm.build (file);
Generating Java code using CodeModel