/** Returns the number of files to be generated if {@link #build} is invoked now. */ public int countArtifacts() { int r = 0; JPackage[] pkgs = packages.values().toArray(new JPackage[packages.size()]); // avoid concurrent modification exception for (JPackage pkg : pkgs) r += pkg.countArtifacts(); return r; }
@Test public void testBasic() throws Exception { final JCodeModel cm = new JCodeModel(); final JDirectClass rClassId = cm.directClass("id.aa.R")._class("id"); assertEquals("id", rClassId.name()); assertEquals("id.aa", rClassId._package().name()); assertEquals("id.aa.R.id", rClassId.fullName()); final JDirectClass rClassMenu = cm.directClass("id.aa.R")._class("menu"); assertEquals("menu", rClassMenu.name()); assertEquals("id.aa", rClassMenu._package().name()); assertEquals("id.aa.R.menu", rClassMenu.fullName()); final JFieldRef myItem = rClassId.staticRef("myItem"); final JFieldRef myMenu = rClassMenu.staticRef("myMenu"); final JPackage aPkg2 = cm._package("id.aa"); final JDefinedClass aClassAct = aPkg2._class("HelloAndroidActivity_"); final JMethod aMethodCreate = aClassAct.method(JMod.PUBLIC, cm.BOOLEAN, "onCreateOptionsMenu"); aMethodCreate.body().add(JExpr.ref("menuInflater").invoke("inflate").arg(myMenu)); final JMethod aMethodSelected = aClassAct.method(JMod.PUBLIC, cm.BOOLEAN, "onOptionsItemSelected"); aMethodSelected.body()._if(JExpr.ref("itemId_").eq(myItem)); CodeModelTestsHelper.parseCodeModel(cm); }
/** Generates Java source code. */ public void build(CodeWriter source, CodeWriter resource) throws IOException { JPackage[] pkgs = packages.values().toArray(new JPackage[packages.size()]); // avoid concurrent modification exception for (JPackage pkg : pkgs) pkg.build(source, resource); source.close(); resource.close(); }