private void processImportedTypes() { for (PropertyInfo property : propertyMap.values()) { property.type.collectImports(importedTypes); } importedTypes.addAll(superTypes.stream().collect(toList())); for (Iterator<ClassTypeInfo> i = importedTypes.iterator(); i.hasNext(); ) { ClassTypeInfo importedType = i.next(); if (importedType.getPackageName().equals(type.getPackageName())) { i.remove(); } } }
public Stream<String> additionalImports(ProxyModel model) { return model.getImportedTypes() .stream() .filter(c -> !c.getPackageName().equals("java.lang")) .map(ClassTypeInfo::toString); }
public static String renderDataObjectHtmlLink(TypeInfo type, TypeInfo dataObjectType) { StringBuilder link = new StringBuilder(); for (String name : Case.QUALIFIED.parse(type.getRaw().getPackageName())) { link.append("../"); } link.append("../../../cheatsheet/").append(dataObjectType.getSimpleName()).append(".html"); return "<a href=\"" + link + "\">" + dataObjectType.getSimpleName() + "</a>"; }
private void determineApiTypes() { importedTypes = collectedTypes.stream(). map(ClassTypeInfo::getRaw). flatMap(Helper.instanceOf(ClassTypeInfo.class)). filter(t -> !t.getPackageName().equals(ifaceFQCN)). collect(Collectors.toSet()); referencedTypes = collectedTypes.stream(). map(ClassTypeInfo::getRaw). flatMap(Helper.instanceOf(ApiTypeInfo.class)). filter(t -> !t.equals(type.getRaw())). collect(Collectors.toSet()); referencedDataObjectTypes = collectedTypes.stream(). map(ClassTypeInfo::getRaw). flatMap(Helper.instanceOf(DataObjectTypeInfo.class)). filter(t -> t.getKind() == ClassKind.DATA_OBJECT). collect(Collectors.toSet()); referencedEnumTypes = collectedTypes.stream(). map(ClassTypeInfo::getRaw). flatMap(Helper.instanceOf(EnumTypeInfo.class)). filter(t -> t.getKind() == ClassKind.ENUM). collect(Collectors.toSet()); }
protected void genRxImports(ClassModel model, PrintWriter writer) { for (ClassTypeInfo importedType : model.getImportedTypes()) { if (importedType.getKind() == ClassKind.API) { } else { if (!importedType.getPackageName().equals("java.lang")) { addImport(importedType, false, writer); } } } }
protected void genRxImports(ClassModel model, PrintWriter writer) { for (ClassTypeInfo importedType : model.getImportedTypes()) { if (importedType.getKind() == ClassKind.API) { } else { if (!importedType.getPackageName().equals("java.lang")) { addImport(importedType, false, writer); } } } }
@Override public String render(DataObjectModel model, int index, int size, Map<String, Object> session) { StringWriter buffer = new StringWriter(); PrintWriter writer = new PrintWriter(buffer); String visibility= model.isPublicConverter() ? "public" : ""; String simpleName = model.getType().getSimpleName(); boolean inheritConverter = model.getInheritConverter(); writer.print("package " + model.getType().getPackageName() + ";\n"); writer.print("\n"); writer.print("import io.vertx.core.json.JsonObject;\n"); writer.print("import io.vertx.core.json.JsonArray;\n"); writer.print("import java.time.Instant;\n"); writer.print("import java.time.format.DateTimeFormatter;\n"); writer.print("\n"); writer.print("/**\n"); writer.print(" * Converter for {@link " + model.getType() + "}.\n"); writer.print(" * NOTE: This class has been automatically generated from the {@link " + model.getType() + "} original class using Vert.x codegen.\n"); writer.print(" */\n"); writer.print(visibility + " class " + simpleName + "Converter {\n"); writer.print("\n"); generateFromson(visibility, inheritConverter, model, writer); writer.print("\n"); generateToJson(visibility, inheritConverter, model, writer); writer.print("}\n"); return buffer.toString(); }
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 void generateImport(ClassModel model, CodeWriter writer, Map<Boolean, List<MethodInfo>> methodGroupMap, boolean hasStatic) { Set<String> imports = new TreeSet<>(); ClassTypeInfo type = model.getType(); String simpleName = type.getSimpleName(); imports.add(type.getPackageName() + "." + simpleName + (!hasStatic ? "" : (" as " + vertxSimpleNameWrapper(type.getSimpleName(), true)))); methodGroupMap.values().stream().flatMap(List::stream).forEach(m -> { List<ParamInfo> params = m.getParams(); if (params.size() > 0) { params.stream().limit(params.size() - 1).forEach(p -> addImport(type, imports, p.getType())); ParameterizedTypeInfo param = (ParameterizedTypeInfo) params.get(params.size() - 1).getType(); TypeInfo arg = param.getArg(0); if (arg.getKind() == ClassKind.ASYNC_RESULT) { addImport(type, imports, ((ParameterizedTypeInfo) arg).getArg(0)); } else { addImport(type, imports, arg); } } if (m.getKind() == MethodKind.HANDLER) { imports.add("io.vertx.kotlin.coroutines.awaitEvent"); } else if (m.getKind() == MethodKind.FUTURE) { imports.add("io.vertx.kotlin.coroutines.awaitResult"); } }); for (String temp : imports) { writer.print("import "); writer.println(temp); } }
utils.proxyGenImports(writer); for (ClassTypeInfo c : model.getImportedTypes()) if (!c.getPackageName().equals("java.lang")) utils.writeImport(writer, c.toString()); utils.roger(writer);