return null; if (type.getKind() == ClassKind.ENUM && ((EnumTypeInfo) type).isGen()) { String baselink; if (coordinate == null) {
@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; }
} else if (rawType.getKind() == ENUM && ((EnumTypeInfo) rawType).isGen()) { if (label.length() == 0) { label = rawType.getSimpleName();
@Test public void testEnum() throws Exception { doTest(EnumHolder.class, map -> { EnumTypeInfo apiEnum = (EnumTypeInfo) map.get("apiEnum"); assertEquals(ClassKind.ENUM, apiEnum.getKind()); assertEquals(Arrays.asList("RED", "GREEN", "BLUE"), apiEnum.getValues()); assertTrue(apiEnum.isGen()); EnumTypeInfo otherEnum = (EnumTypeInfo) map.get("otherEnum"); assertEquals(ClassKind.ENUM, otherEnum.getKind()); assertEquals(Arrays.asList("NANOSECONDS", "MICROSECONDS", "MILLISECONDS", "SECONDS", "MINUTES", "HOURS", "DAYS"), otherEnum.getValues()); assertFalse(otherEnum.isGen()); }); }
@Test public void testEnum() throws Exception { EnumModel model = new GeneratorHelper().generateEnum(ValidEnum.class); assertEquals(Arrays.asList("RED", "GREEN", "BLUE"), model.getValues().stream(). map(EnumValueInfo::getIdentifier). collect(Collectors.toList())); assertEquals(Arrays.asList("RED doc", "GREEN doc", "BLUE doc"), model.getValues().stream(). map(e -> e.getDoc().toString()). collect(Collectors.toList())); assertEquals("enum", model.getKind()); assertEquals("ValidEnum doc", model.getDoc().toString()); assertEquals(ValidEnum.class.getName(), model.getFqn()); assertEquals("dummy", model.getModule().getName()); assertTrue(model.getType().isGen()); }
@Test public void testValidEnumParam() throws Exception { ClassModel model = new GeneratorHelper().generateClass(MethodWithEnumParam.class); assertEquals(MethodWithEnumParam.class.getName(), model.getIfaceFQCN()); assertEquals(MethodWithEnumParam.class.getSimpleName(), model.getIfaceSimpleName()); assertTrue(model.getImportedTypes().contains(TypeReflectionFactory.create(TestEnum.class))); assertTrue(model.getReferencedTypes().isEmpty()); assertTrue(model.getSuperTypes().isEmpty()); assertEquals(2, model.getMethods().size()); MethodInfo method = model.getMethods().get(0); checkMethod(method, "methodWithEnumParam", 1, "void", MethodKind.OTHER); List<ParamInfo> params = method.getParams(); checkParam(params.get(0), "weirdo", TestEnum.class); EnumTypeInfo enumType = (EnumTypeInfo) params.get(0).getType(); assertFalse(enumType.isGen()); assertEquals(Arrays.asList("TIM", "JULIEN", "NICK", "WESTON"), enumType.getValues()); method = model.getMethods().get(1); checkMethod(method, "methodWithGenEnumParam", 1, "void", MethodKind.OTHER); params = method.getParams(); checkParam(params.get(0), "weirdo", TestGenEnum.class); enumType = (EnumTypeInfo) params.get(0).getType(); assertTrue(enumType.isGen()); assertEquals(Arrays.asList("LAURA", "BOB", "MIKE", "LELAND"), enumType.getValues()); }