private void genToXXXEr(TypeInfo streamType, String rxType, String rxName, PrintWriter writer) { writer.format(" public synchronized io.vertx.reactivex.WriteStream%s<%s> to%s() {%n", rxType, genTypeName(streamType), rxType); writer.format(" if (%s == null) {%n", rxName); if (streamType.getKind() == ClassKind.API) { writer.format(" java.util.function.Function<%s, %s> conv = %s::getDelegate;%n", genTypeName(streamType.getRaw()), streamType.getName(), genTypeName(streamType)); writer.format(" %s = io.vertx.reactivex.RxHelper.to%s(getDelegate(), conv);%n", rxName, rxType); } else if (streamType.isVariable()) { String typeVar = streamType.getSimpleName(); writer.format(" java.util.function.Function<%s, %s> conv = (java.util.function.Function<%s, %s>) __typeArg_0.unwrap;%n", typeVar, typeVar, typeVar, typeVar); writer.format(" %s = io.vertx.reactivex.RxHelper.to%s(getDelegate(), conv);%n", rxName, rxType); } else { writer.format(" %s = io.vertx.reactivex.RxHelper.to%s(getDelegate());%n", rxName, rxType); } writer.println(" }"); writer.format(" return %s;%n", rxName); writer.println(" }"); writer.println(); }
writer.print(rxType); writer.println("(delegate, conv);"); } else if (streamType.isVariable()) { String typeVar = streamType.getSimpleName(); writer.print(" java.util.function.Function<");
private boolean isLegalClassTypeParam(ExecutableElement elt, TypeInfo type) { if (type.getKind() == ClassKind.CLASS_TYPE && type.isParameterized()) { ParameterizedTypeInfo parameterized = (ParameterizedTypeInfo) type; TypeInfo arg = parameterized.getArg(0); if (arg.isVariable()) { TypeVariableInfo variable = (TypeVariableInfo) arg; for (TypeParameterElement typeParamElt : elt.getTypeParameters()) { if (typeParamElt.getSimpleName().toString().equals(variable.getName())) { return true; } } } } return false; }
writer.print(genInvokeDelegate(model, method)); writer.println(";"); if (method.getReturnType().isVariable()) { writer.print(" return ("); writer.print(method.getReturnType().getName());
writer.print(genInvokeDelegate(model, method)); writer.println(";"); if (method.getReturnType().isVariable()) { writer.print(" return ("); writer.print(method.getReturnType().getName());
} else if (param.getType().isVariable()) { writer.print("java.lang.Object"); } else {
ParameterizedTypeInfo parameterizedType = (ParameterizedTypeInfo) type; if (parameterizedType.getArg(0).isVariable()) { adapterFunction = "java.util.function.Function.identity()"; } else { String adapterFunction; ParameterizedTypeInfo parameterizedType = (ParameterizedTypeInfo) type; if (parameterizedType.getArg(0).isVariable()) { adapterFunction = "java.util.function.Function.identity()"; } else {
ParameterizedTypeInfo parameterizedType = (ParameterizedTypeInfo) type; if (parameterizedType.getArg(0).isVariable()) { adapterFunction = "java.util.function.Function.identity()"; } else { String adapterFunction; ParameterizedTypeInfo parameterizedType = (ParameterizedTypeInfo) type; if (parameterizedType.getArg(0).isVariable()) { adapterFunction = "java.util.function.Function.identity()"; } else {
private void addImport(ClassTypeInfo currentType, Set<String> imports, TypeInfo type) { ClassKind typeKind = type.getKind(); if (type.isVariable() || typeKind.basic) { return; } if (!typeKind.collection && typeKind != ClassKind.THROWABLE && !type.equals(currentType) && !type.getRaw().getPackageName().startsWith("java.lang")) { imports.add(type.getRaw().getPackageName() + "." + type.getRaw().getSimpleName()); } if (type instanceof ParameterizedTypeInfo) { for (TypeInfo arg : ((ParameterizedTypeInfo) type).getArgs()) { addImport(currentType, imports, arg); } } }
private boolean isVertxGenInterface(TypeInfo type, boolean allowParameterized) { if (type.getKind() == ClassKind.API) { if (type.isParameterized()) { if (allowParameterized) { ParameterizedTypeInfo parameterized = (ParameterizedTypeInfo) type; for (TypeInfo paramType : parameterized.getArgs()) { ClassKind kind = paramType.getKind(); if (!(paramType instanceof ApiTypeInfo || paramType.isVariable() || kind == ClassKind.VOID || kind.basic || kind.json || kind == ClassKind.DATA_OBJECT || kind == ClassKind.ENUM )) { return false; } if (paramType.isNullable()) { return false; } } return true; } else { return false; } } else { return true; } } return false; }
convParam(model, method, null, false, new ParamInfo(0, "result", null, type.getArg(0)))); } else if (returnType.isVariable() && (method != null && method.resolveClassTypeParam((TypeVariableInfo) returnType) != null)) { ParamInfo classTypeParam = method.resolveClassTypeParam((TypeVariableInfo) returnType); return String.format("utils.get_jtype(__args[%s]).wrap(%s)", classTypeParam.getIndex(), templ);
private String genConvReturn(TypeInfo type, MethodInfo method, String expr) { ClassKind kind = type.getKind(); if (kind == OBJECT) { if (type.isVariable()) { String typeArg = genTypeArg((TypeVariableInfo) type, method); if (typeArg != null) { } else { String typeArg = "io.vertx.lang.rx.TypeArg.unknown()"; if (argKind == OBJECT && arg.isVariable()) { String resolved = genTypeArg((TypeVariableInfo) arg, method); if (resolved != null) {
private String genConvReturn(TypeInfo type, MethodInfo method, String expr) { ClassKind kind = type.getKind(); if (kind == OBJECT) { if (type.isVariable()) { String typeArg = genTypeArg((TypeVariableInfo) type, method); if (typeArg != null) { } else { String typeArg = "io.vertx.lang.rx.TypeArg.unknown()"; if (argKind == OBJECT && arg.isVariable()) { String resolved = genTypeArg((TypeVariableInfo) arg, method); if (resolved != null) {
param.getType().isParameterized()) { TypeInfo arg_ = ((ParameterizedTypeInfo) param.getType()).getArg(0); if (arg_.isVariable()) { TypeVariableInfo ttt = (TypeVariableInfo) arg_; if (ttt.getParam().equals(typeParam)) {
private boolean isSameType(TypeInfo type, MethodInfo method) { ClassKind kind = type.getKind(); if (kind.basic || kind.json || kind == DATA_OBJECT || kind == ENUM || kind == OTHER || kind == THROWABLE || kind == VOID) { return true; } else if (kind == OBJECT) { if (type.isVariable()) { return !isReified((TypeVariableInfo) type, method); } else { return true; } } else if (type.isParameterized()) { ParameterizedTypeInfo parameterizedTypeInfo = (ParameterizedTypeInfo) type; if (kind == LIST || kind == SET || kind == ASYNC_RESULT) { return isSameType(parameterizedTypeInfo.getArg(0), method); } else if (kind == MAP) { return isSameType(parameterizedTypeInfo.getArg(1), method); } else if (kind == HANDLER) { return isSameType(parameterizedTypeInfo.getArg(0), method); } else if (kind == FUNCTION) { return isSameType(parameterizedTypeInfo.getArg(0), method) && isSameType(parameterizedTypeInfo.getArg(1), method); } } return false; }
private boolean isSameType(TypeInfo type, MethodInfo method) { ClassKind kind = type.getKind(); if (kind.basic || kind.json || kind == DATA_OBJECT || kind == ENUM || kind == OTHER || kind == THROWABLE || kind == VOID) { return true; } else if (kind == OBJECT) { if (type.isVariable()) { return !isReified((TypeVariableInfo) type, method); } else { return true; } } else if (type.isParameterized()) { ParameterizedTypeInfo parameterizedTypeInfo = (ParameterizedTypeInfo) type; if (kind == LIST || kind == SET || kind == ASYNC_RESULT) { return isSameType(parameterizedTypeInfo.getArg(0), method); } else if (kind == MAP) { return isSameType(parameterizedTypeInfo.getArg(1), method); } else if (kind == HANDLER) { return isSameType(parameterizedTypeInfo.getArg(0), method); } else if (kind == FUNCTION) { return isSameType(parameterizedTypeInfo.getArg(0), method) && isSameType(parameterizedTypeInfo.getArg(1), method); } } return false; }
if (arg.getKind() == API) { writer.format(", %s._jtype", arg.getSimpleName()); } else if (arg.isVariable()) { writer.format(", j_%s", arg.getName()); } else {
} else if (kind == ClassKind.OBJECT) { String ret = name; if (type.isVariable()) { ret = "toScala[" + type.getName() + "](" + name + ")"; if (nullable) {
return expr; } else if (kind == OBJECT) { if (type.isVariable()) { String typeArg = genTypeArg((TypeVariableInfo) type, method); if (typeArg != null) {
return expr; } else if (kind == OBJECT) { if (type.isVariable()) { String typeArg = genTypeArg((TypeVariableInfo) type, method); if (typeArg != null) {