public static String convertArgListToString(TypeInfo type, boolean convert, BiFunction<TypeInfo,Boolean,String> conversion) { if (type.isParameterized()) { String ret = String.join(", ", ((ParameterizedTypeInfo)type) .getArgs().stream() .map(arg -> conversion.apply(arg, convert)) .collect(Collectors.toList())); if (!ret.isEmpty()) { return "[" + ret + "]"; } } return ""; }
public static String fromObjectToInstanceOf(TypeInfo type, Collection<TypeParamInfo> typeParams, Collection<? extends TypeParamInfo> methodTypeParams) { String ret = ""; if (type.getName().equals("io.vertx.core.Future") && !type.isParameterized()) { if (typeParams.isEmpty() && methodTypeParams.isEmpty()) ret += ".asInstanceOf[JFuture[_]]"; else ret += ".asInstanceOf[JFuture[Object]]"; } else { ret += ".asInstanceOf[" + toJavaType(type, true) + "]"; } return ret; }
protected final String genTypeName(TypeInfo type) { if (type.isParameterized()) { ParameterizedTypeInfo pt = (ParameterizedTypeInfo) type; return genTypeName(pt.getRaw()) + pt.getArgs().stream().map(this::genTypeName).collect(Collectors.joining(", ", "<", ">")); } else if (type.getKind() == ClassKind.API) { return type.translateName(id); } else { return type.getSimpleName(); } }
protected final String genTypeName(TypeInfo type) { if (type.isParameterized()) { ParameterizedTypeInfo pt = (ParameterizedTypeInfo) type; return genTypeName(pt.getRaw()) + pt.getArgs().stream().map(this::genTypeName).collect(Collectors.joining(", ", "<", ">")); } else if (type.getKind() == ClassKind.API) { return type.translateName(id); } else { return type.getSimpleName(); } }
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(","); if (param.getType().isParameterized()) { writer.print(param.getType().getRaw().getName()); } else if (param.getType().isVariable()) {
if (type.isParameterized() && type.getRaw().getName().equals("rx.Observable")) { String adapterFunction; ParameterizedTypeInfo parameterizedType = (ParameterizedTypeInfo) type; } else if (type.isParameterized() && (type.getRaw().getName().equals("io.reactivex.Flowable") || type.getRaw().getName().equals("io.reactivex.Observable"))) { String adapterFunction; ParameterizedTypeInfo parameterizedType = (ParameterizedTypeInfo) type;
if (type.isParameterized() && type.getRaw().getName().equals("rx.Observable")) { String adapterFunction; ParameterizedTypeInfo parameterizedType = (ParameterizedTypeInfo) type; } else if (type.isParameterized() && (type.getRaw().getName().equals("io.reactivex.Flowable") || type.getRaw().getName().equals("io.reactivex.Observable"))) { String adapterFunction; ParameterizedTypeInfo parameterizedType = (ParameterizedTypeInfo) type;
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; }
PrintWriter writer = new PrintWriter(buffer); writer.format("utils.convReturnVertxGen(%s, %s", returnType.getRaw().getSimpleName(), templ); if (returnType.isParameterized()) { for (TypeInfo arg : ((ParameterizedTypeInfo) returnType).getArgs()) { ClassKind argKind = arg.getKind();
public static void importForType(String packageName, TypeInfo type, Set<String> ret) { if (type.getKind() == ClassKind.JSON_OBJECT || type.getKind() == ClassKind.JSON_ARRAY || type.getKind() == ClassKind.ENUM || type.getName().equals("io.vertx.core.buffer.Buffer")) { ret.add(type.getRaw().toString()); } else if (type.getKind() == ClassKind.API || type.getKind() == ClassKind.DATA_OBJECT) { if (!Helper.getPackageName(type.getName()).equals(packageName)) { ret.add(getNonGenericType(type.getRaw().translateName("scala"))); } ret.add(convertTypeToAliasedType(type)); } else if (type.getKind().collection) { ret.add("scala.collection.JavaConverters._"); } else if (type.getKind() == ClassKind.HANDLER) { ret.add(type.getRaw().toString()); if (type.isParameterized()) { for (TypeInfo param : ((ParameterizedTypeInfo)type).getArgs()) { importForType(packageName, param, ret); } } } else if (type.getKind() == ClassKind.ASYNC_RESULT) { ret.add("io.vertx.lang.scala.AsyncResultWrapper"); ret.add(type.getRaw().toString()); if (type.isParameterized()) { for (TypeInfo param : ((ParameterizedTypeInfo)type).getArgs()) { importForType(packageName, param, ret); } } } }
for (ParamInfo param : params) { if (param.getType().getKind() == ClassKind.CLASS_TYPE && param.getType().isParameterized()) { TypeInfo arg_ = ((ParameterizedTypeInfo) param.getType()).getArg(0); if (arg_.isVariable()) { } else if (param.getType().getKind() == ClassKind.API && param.getType().isParameterized()) { ParameterizedTypeInfo type = (ParameterizedTypeInfo) param.getType(); int index = 0;
tmp.append(".newInstance("); tmp.append(expr); if (type.isParameterized()) { ParameterizedTypeInfo parameterizedTypeInfo = (ParameterizedTypeInfo) type; for (TypeInfo arg : parameterizedTypeInfo.getArgs()) { } else if (type.isParameterized()) { ParameterizedTypeInfo parameterizedTypeInfo = (ParameterizedTypeInfo) type; if (kind == HANDLER) {
tmp.append(".newInstance("); tmp.append(expr); if (type.isParameterized()) { ParameterizedTypeInfo parameterizedTypeInfo = (ParameterizedTypeInfo) type; for (TypeInfo arg : parameterizedTypeInfo.getArgs()) { } else if (type.isParameterized()) { ParameterizedTypeInfo parameterizedTypeInfo = (ParameterizedTypeInfo) type; if (kind == HANDLER) {
private MethodInfo genOverloadedMethod(MethodInfo method, Class streamType) { List<ParamInfo> params = null; int count = 0; for (ParamInfo param : method.getParams()) { if (param.getType().isParameterized() && param.getType().getRaw().getName().equals("io.vertx.core.streams.ReadStream")) { if (params == null) { params = new ArrayList<>(method.getParams()); } ParameterizedTypeInfo paramType = new io.vertx.codegen.type.ParameterizedTypeInfo( io.vertx.codegen.type.TypeReflectionFactory.create(streamType).getRaw(), false, java.util.Collections.singletonList(((ParameterizedTypeInfo) param.getType()).getArg(0)) ); params.set(count, new io.vertx.codegen.ParamInfo( param.getIndex(), param.getName(), param.getDescription(), paramType )); } count = count + 1; } if (params != null) { return method.copy().setParams(params); } return null; } }
} else if (type.getKind() == ClassKind.API) { String ret = "J" + getNonGenericType(type.getSimpleName()); if (type.isParameterized()) { ret += convertJavaArgListToString(type, convertTypeParamsToObject); } else if (!type.getRaw().getParams().isEmpty()) {
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; }
} else if (kind == CLASS_TYPE) { return "io.vertx.lang." + id + ".Helper.unwrap(" + expr + ")"; } else if (type.isParameterized()) { ParameterizedTypeInfo parameterizedTypeInfo = (ParameterizedTypeInfo) type; if (kind == HANDLER) {
} else if (kind == CLASS_TYPE) { return "io.vertx.lang." + id + ".Helper.unwrap(" + expr + ")"; } else if (type.isParameterized()) { ParameterizedTypeInfo parameterizedTypeInfo = (ParameterizedTypeInfo) type; if (kind == HANDLER) {