@Override public String getFqn() { return info.getPackageName(); }
@Override public Map<String, Object> getVars() { Map<String, Object> vars = Model.super.getVars(); vars.put("fqn", info.getPackageName()); vars.put("name", info.getName()); vars.put("module", getModule()); vars.put("annotations", getAnnotations()); return vars; }
static TypeNameTranslator composite(String lang) { return (module, qualifiedName) -> { List<String> def = new ArrayList<>(Case.QUALIFIED.parse(module.getGroupPackage())); def.add(lang); List<String> abc = Case.KEBAB.parse(module.getName()); if (abc.get(0).equals("vertx")) { // Special case if (abc.size() == 1) { def.add("core"); } else { for (int i = 1;i < abc.size();i++) { def.add(abc.get(i)); } } } else { def.addAll(abc); } if (qualifiedName.startsWith(module.getPackageName())) { if (qualifiedName.equals(module.getPackageName())) { } else { String nameInPackage = qualifiedName.substring(module.getPackageName().length() + 1); def.addAll(Case.QUALIFIED.parse(nameInPackage)); } return Case.QUALIFIED.format(def); } return qualifiedName; }; }
@Test public void testModuleScopedSubDataObjectModel() throws Exception { DataObjectModel model = new GeneratorHelper().generateDataObject(ModuleScopedSubDataObject.class); assertEquals(ModuleScopedSubDataObject.class.getName(), model.getFqn()); assertEquals("io.vertx.test.codegen.testmodule.modulescoped", model.getModule().getPackageName()); assertEquals("simple", model.getModule().getName()); }
@Test public void testModuleScopedDataObjectModel() throws Exception { DataObjectModel model = new GeneratorHelper().generateDataObject(ModuleScopedDataObject.class); assertEquals(ModuleScopedDataObject.class.getName(), model.getFqn()); assertEquals("io.vertx.test.codegen.testmodule.modulescoped", model.getModule().getPackageName()); assertEquals("simple", model.getModule().getName()); }
@Test public void testNestedModuleModel() throws Exception { ModuleModel module = new GeneratorHelper().generateModule(ModuleTest.class.getClassLoader(), "io.vertx.test.codegen.testmodule.nestingmodule.nestedmodule"); assertEquals("io.vertx.test.codegen.testmodule.nestingmodule.nestedmodule", module.getFqn()); assertEquals("nested", module.getName()); assertEquals("io.vertx.test.groovy.codegen.testmodule.nestingmodule.nestedmodule", module.translateFqn("groovy")); ClassModel api = new GeneratorHelper().generateClass(NestedApi.class); assertEquals("io.vertx.test.codegen.testmodule.nestingmodule.nestedmodule", api.getModule().getPackageName()); assertEquals("nested", api.getModule().getName()); DataObjectModel dataObj = new GeneratorHelper().generateDataObject(NestedDataObject.class); assertEquals("io.vertx.test.codegen.testmodule.nestingmodule.nestedmodule", dataObj.getModule().getPackageName()); assertEquals("nested", dataObj.getModule().getName()); }
@Test public void testModuleScopedSubApiModel() throws Exception { ClassModel model = new GeneratorHelper().generateClass(ModuleScopedSubApi.class); assertEquals(ModuleScopedSubApi.class.getName(), model.getFqn()); assertEquals("io.vertx.test.codegen.testmodule.modulescoped", model.getModule().getPackageName()); assertEquals("simple", model.getModule().getName()); ApiTypeInfo type = (ApiTypeInfo) model.getType(); assertEquals("io.vertx.test.groovy.codegen.testmodule.modulescoped.sub.ModuleScopedSubApi", type.translateName("groovy")); assertEquals("io.vertx.test.ceylon.simple.sub.ModuleScopedSubApi", type.translateName(TypeNameTranslator.composite("ceylon"))); }
@Test public void testEmptyPkg() throws Exception { ClassModel model = new GeneratorHelper().generateClass(EmptyPkg.class); assertEquals(EmptyPkg.class.getName(), model.getIfaceFQCN()); assertEquals("io.vertx.test.codegen.testmodule.emptypkg", model.getModule().getPackageName()); assertEquals("simple", model.getModule().getName()); ApiTypeInfo type = (ApiTypeInfo) model.getType(); assertEquals("io.vertx.test.groovy.codegen.testmodule.emptypkg.empty.sub.EmptyPkg", type.translateName("groovy")); assertEquals("io.vertx.test.ceylon.simple.empty.sub.EmptyPkg", type.translateName(TypeNameTranslator.composite("ceylon"))); }
@Test public void testVertxOtherModuleScopedApiModel() throws Exception { ClassModel model = new GeneratorHelper().generateClass(VertxOtherModuleScopedApi.class); assertEquals(VertxOtherModuleScopedApi.class.getName(), model.getIfaceFQCN()); assertEquals("io.vertx.test.codegen.testmodule.vertx.other", model.getModule().getPackageName()); assertEquals("vertx-other", model.getModule().getName()); ApiTypeInfo type = (ApiTypeInfo) model.getType(); assertEquals("io.vertx.groovy.test.codegen.testmodule.vertx.other.VertxOtherModuleScopedApi", type.translateName("groovy")); assertEquals("io.vertx.ceylon.other.VertxOtherModuleScopedApi", type.translateName(TypeNameTranslator.composite("ceylon"))); }
@Test public void testModuleScopedApiModel() throws Exception { ClassModel model = new GeneratorHelper().generateClass(ModuleScopedApi.class); assertEquals(ModuleScopedApi.class.getName(), model.getIfaceFQCN()); assertEquals("io.vertx.test.codegen.testmodule.modulescoped", model.getModule().getPackageName()); assertEquals("simple", model.getModule().getName()); ApiTypeInfo type = (ApiTypeInfo) model.getType(); assertEquals("io.vertx.test.groovy.codegen.testmodule.modulescoped.ModuleScopedApi", type.translateName("groovy")); assertEquals("io.vertx.test.ceylon.simple.ModuleScopedApi", type.translateName(TypeNameTranslator.composite("ceylon"))); }
@Test public void testVertxCoreModuleScopedApiModel() throws Exception { ClassModel model = new GeneratorHelper().generateClass(VertxCoreModuleScopedApi.class); assertEquals(VertxCoreModuleScopedApi.class.getName(), model.getIfaceFQCN()); assertEquals("io.vertx.test.codegen.testmodule.vertx.core", model.getModule().getPackageName()); assertEquals("vertx", model.getModule().getName()); ApiTypeInfo type = (ApiTypeInfo) model.getType(); assertEquals("io.vertx.groovy.test.codegen.testmodule.vertx.core.VertxCoreModuleScopedApi", type.translateName("groovy")); assertEquals("io.vertx.ceylon.core.VertxCoreModuleScopedApi", type.translateName(TypeNameTranslator.composite("ceylon"))); }
@Test public void testModuleModel() throws Exception { ModuleModel model = new GeneratorHelper().generateModule(ModuleTest.class.getClassLoader(), "io.vertx.test.codegen.testmodule.modulescoped"); assertEquals("io.vertx.test.codegen.testmodule.modulescoped", model.getFqn()); assertEquals("simple", model.getName()); assertEquals("io.vertx.test.groovy.codegen.testmodule.modulescoped", model.translateFqn("groovy")); assertNotNull(model.getModule()); assertEquals("io.vertx.test.codegen.testmodule.modulescoped", model.getModule().getPackageName()); assertEquals("simple", model.getModule().getName()); assertEquals("io.vertx.test.groovy.codegen.testmodule.modulescoped", model.getModule().translatePackageName("groovy")); }