protected void startMethodTemplate(ClassTypeInfo type, MethodInfo method, String deprecated, PrintWriter writer) { Doc doc = method.getDoc(); if (doc != null) { writer.println(" /**");
protected void startMethodTemplate(ClassTypeInfo type, MethodInfo method, String deprecated, PrintWriter writer) { Doc doc = method.getDoc(); if (doc != null) { writer.println(" /**");
private void generateDoc(ClassModel model, MethodInfo method, PrintWriter writer) { Doc doc = method.getDoc(); if (doc != null) { writer.print("/**\n"); Token.toHtml(doc.getTokens(), " *", KotlinCodeGenHelper::renderLinkToHtml, "\n", writer); writer.print(" *\n"); method.getParams() .stream() .limit(method.getParams().size() - 1) .forEach(p -> { writer.print(" * @param " + p.getName() + " "); if (p.getDescription() != null) { String docInfo = Token.toHtml(p.getDescription().getTokens(), "", KotlinCodeGenHelper::renderLinkToHtml, ""); writer.print(docInfo); } writer.print("\n"); }); if (!method.getReturnType().isVoid()) { writer.print(" * @return "); if (method.getReturnDescription() != null) { String docInfo = Token.toHtml(method.getReturnDescription().getTokens(), "", KotlinCodeGenHelper::renderLinkToHtml, ""); writer.print(docInfo); } } writer.print(" *\n"); writer.print(" * <p/>\n"); writer.print(" * NOTE: This function has been automatically generated from the [" + model.getType().getName() + " original] using Vert.x codegen.\n"); writer.print(" */\n"); } }
commentedIndentation += " *"; if (method.getDoc()!= null) { TypeInfo returnType = method.getReturnType(); Text returnDescription = method.getReturnDescription(); doc += " Like [[" + method.getName() + "]] but returns a [[scala.concurrent.Future]] instead of taking an AsyncResultHandler.\n"; } else { doc += renderDoc(type, commentedIndentation, method.getDoc()); for (ParamInfo param : method.getParams()) { if (param.getDescription() != null) {
@Test public void testLinkToSameType() throws Exception { ClassModel model = new GeneratorHelper().generateClass(LinkToSameType.class); MethodInfo method = model.getMethodMap().get("m").get(0); Doc doc = method.getDoc(); List<Token> tokens = doc.getTokens(); assertEquals(2, tokens.size()); for (Token token : tokens) { Tag.Link link = (Tag.Link) ((Token.InlineTag) token).getTag(); assertEquals(LinkToSameType.class.getName(), link.getTargetElement().toString()); } }
@Test public void testLinkToEnum() throws Exception { ClassModel model = new GeneratorHelper().generateClass(LinkToEnum.class); MethodInfo method = model.getMethodMap().get("m").get(0); Doc doc = method.getDoc(); List<Token> tokens = doc.getTokens(); assertEquals(2, tokens.size()); for (Token token : tokens) { Tag.Link link = (Tag.Link) ((Token.InlineTag) token).getTag(); assertEquals(FooEnum.class.getName(), link.getTargetElement().toString()); } }
@Test public void testLinkLabel() throws Exception { ClassModel model = new GeneratorHelper().generateClass(LinkLabel.class); MethodInfo method = model.getMethodMap().get("m").get(0); Doc doc = method.getDoc(); List<Token> tokens = doc.getTokens(); String[] expectedLabels = {""," "," the label value"}; assertEquals(expectedLabels.length, tokens.size()); for (int i = 0;i < tokens.size();i++) { Tag.Link link = (Tag.Link) ((Token.InlineTag) tokens.get(i)).getTag(); assertEquals("" + i,expectedLabels[i], link.getLabel()); } }
@Test public void testLinkToMethodInSameType() throws Exception { ClassModel model = new GeneratorHelper().generateClass(LinkToMethodInSameType.class); MethodInfo method = model.getMethodMap().get("m").get(0); Doc doc = method.getDoc(); List<Token> tokens = doc.getTokens(); assertEquals(4, tokens.size()); for (Token token : tokens) { Tag.Link link = (Tag.Link) ((Token.InlineTag) token).getTag(); assertEquals(ElementKind.METHOD, link.getTargetElement().getKind()); assertEquals("method(java.lang.String,int)", link.getTargetElement().toString()); } }
private void generateMethod(PrintWriter writer, ClassTypeInfo type, MethodInfo method) { generateDoc(writer, method.getDoc()); if (getOverrideArgs(type.getSimpleName(), method.getName()) != null) { writer.printf(" %s%s%s(%s", method.isStaticMethod() ? "static " : "", method.getName(), genGeneric(method.getTypeParams()), getOverrideArgs(type.getSimpleName(), method.getName())); } else { writer.printf(" %s%s%s(", method.isStaticMethod() ? "static " : "", method.getName(), genGeneric(method.getTypeParams())); boolean more = false; for (ParamInfo param : method.getParams()) { if (more) { writer.print(", "); } writer.printf("%s: %s%s", cleanReserved(param.getName()), genType(param.getType()), param.getType().isNullable() ? " | null | undefined" : ""); more = true; } } if (getOverrideReturn(type.getSimpleName(), method.getName()) != null) { writer.printf(") : %s%s;\n", getOverrideReturn(type.getSimpleName(), method.getName()), method.getReturnType().isNullable() ? " | null" : ""); } else { writer.printf(") : %s%s;\n", genType(method.getReturnType()), method.getReturnType().isNullable() ? " | null" : ""); } } }
void checkMethod(MethodInfo meth, String name, int numParams, String returnType, MethodKind kind, Doc comment, MethodCheck... checks) { EnumSet<MethodCheck> checkSet = EnumSet.noneOf(MethodCheck.class); Collections.addAll(checkSet, checks); assertEquals(name, meth.getName()); if (comment != null) { assertNotNull(meth.getComment()); assertEquals(comment.getFirstSentence(), meth.getDoc().getFirstSentence()); assertEquals(comment.getBody(), meth.getDoc().getBody()); assertEquals(comment.getBlockTags(), meth.getDoc().getBlockTags()); } else { assertNull(meth.getComment()); } assertEquals(kind, meth.getKind()); assertEquals(returnType, meth.getReturnType().toString()); assertEquals(checkSet.contains(MethodCheck.CACHE_RETURN), meth.isCacheReturn()); assertEquals(checkSet.contains(MethodCheck.FLUENT), meth.isFluent()); assertEquals(checkSet.contains(MethodCheck.STATIC), meth.isStaticMethod()); assertEquals(numParams, meth.getParams().size()); }