public static List<MethodInfo> findFluentMethods(List<MethodInfo> methods) { return methods.stream() .filter(method -> method.isFluent() && !skipMethod(method) && !method.isCacheReturn()) .collect(Collectors.toList()); }
public static List<MethodInfo> findDefaultMethods(List<MethodInfo> methods) { return methods.stream() .filter(method -> method.isDefaultMethod() && !skipMethod(method) && !method.isFluent() && !method.isCacheReturn()) .collect(Collectors.toList()); }
public static List<MethodInfo> findBasicMethods(List<MethodInfo> methods) { return methods.stream() .filter(method -> !method.isFluent() && !method.isCacheReturn() && !method.isStaticMethod() && !method.isDefaultMethod() && !skipMethod(method)) .collect(Collectors.toList()); }
private boolean generateFilter(MethodInfo it) { MethodKind methodKind = it.getKind(); return !it.isDeprecated() && (it.isFluent() || it.getReturnType().isVoid()) && methodKind == MethodKind.FUTURE; }
startMethodTemplate(type, method, "", writer); writer.println(" { "); if (method.isFluent()) { writer.print(" "); writer.print(genInvokeDelegate(model, method));
startMethodTemplate(type, method, "", writer); writer.println(" { "); if (method.isFluent()) { writer.print(" "); writer.print(genInvokeDelegate(model, method));
private void generateMethods(ProxyModel model, CodeWriter writer) { for (MethodInfo m : model.getMethods()) { if (!m.isStaticMethod()) { writer.code("@Override\n"); writer.code("public "); if (!m.getTypeParams().isEmpty()) { writer.write("<"); writer.writeSeq(m.getTypeParams().stream().map(TypeParamInfo::getName), ", "); writer.write(">"); } writer.write(" " + m.getReturnType().getSimpleName() + " " + m.getName() + "("); writer.writeSeq(m.getParams().stream().map(p -> p.getType().getSimpleName() + " " + p.getName()), ", "); writer.write("){\n"); writer.indent(); if (!((ProxyMethodInfo) m).isProxyIgnore()) generateMethodBody((ProxyMethodInfo) m, writer); if (m.isFluent()) writer.stmt("return this"); writer.unindent(); writer.code("}\n"); } } }
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()); }
@Override protected void genMethodAdapter(ClassModel model, MethodInfo method, CodeWriter writer) { if (method.getReturnType().getKind() != VOID) { if (method.isFluent()) { writer.format("%s ;\n", genMethodCall(model, method)); writer.format("return %s;\n", method.isStaticMethod() ? model.getType().getSimpleName() : "that"); } else if (method.isCacheReturn()) { writer .format("if (that.cached%s == null) {\n", method.getName()) .indent() .format("that.cached%s = %s;\n", method.getName(), convReturn(model, method, method.getReturnType(), genMethodCall(model, method))) .unindent() .append("}\n") .format("return that.cached%s;\n", method.getName()); } else { writer.format("return %s ;\n", convReturn(model, method, method.getReturnType(), genMethodCall(model, method))); } } else { writer.format("%s;\n", genMethodCall(model, method)); } }