@Override public String resolveTypeLink(TypeElement elt, Coordinate coordinate) { TypeInfo type = null; try { type = factory.create(elt.asType()); } catch (Exception e) { System.out.println("Could not resolve doc link for type " + elt.getQualifiedName()); return null; } if (type.getKind().equals(ClassKind.ENUM) && ((EnumTypeInfo)type).isGen()) { String baselink = null; if (coordinate == null) baselink = "../"; else baselink = "../../" + coordinate.getArtifactId() + "/"; return baselink + "enums.html#" + elt.getSimpleName().toString(); } if (type.getKind().equals(ClassKind.DATA_OBJECT)) { String baselink = null; if (coordinate == null) baselink = "../"; else baselink = "../../" + coordinate.getArtifactId() + "/"; return baselink + "dataobjects.html#" + elt.getSimpleName().toString(); } if (type.getKind().equals(ClassKind.API)) { ApiTypeInfo api = (ApiTypeInfo)type.getRaw(); return "../../scaladocs/" + api.translateName("scala").replace('.', '/') + ".html"; } return null; }
@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 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 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"))); }