mirror of
https://github.com/jlengrand/quarkus.git
synced 2026-03-10 08:41:22 +00:00
docs: display types information for pass through Map config item
This commit is contained in:
committed by
Guillaume Smet
parent
c84d84364e
commit
af0b182c2b
@@ -3,6 +3,7 @@ package io.quarkus.annotation.processor.generate_doc;
|
||||
import static io.quarkus.annotation.processor.generate_doc.DocGeneratorUtil.getJavaDocSiteLink;
|
||||
import static io.quarkus.annotation.processor.generate_doc.DocGeneratorUtil.getKnownGenericType;
|
||||
import static io.quarkus.annotation.processor.generate_doc.DocGeneratorUtil.hyphenate;
|
||||
import static io.quarkus.annotation.processor.generate_doc.DocGeneratorUtil.stringifyType;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -187,6 +188,7 @@ class ConfigDoItemFinder {
|
||||
configDocItems.addAll(groupConfigItems);
|
||||
continue;
|
||||
} else {
|
||||
type = "`" + stringifyType(declaredType) + "`";
|
||||
configDocKey.setPassThroughMap(true);
|
||||
configDocKey.setWithinAMap(true);
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.lang.model.type.DeclaredType;
|
||||
import javax.lang.model.type.TypeMirror;
|
||||
|
||||
import io.quarkus.annotation.processor.Constants;
|
||||
|
||||
@@ -359,4 +360,24 @@ public class DocGeneratorUtil {
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static String stringifyType(TypeMirror typeMirror) {
|
||||
List<? extends TypeMirror> typeArguments = ((DeclaredType) typeMirror).getTypeArguments();
|
||||
String simpleName = typeSimpleName(typeMirror);
|
||||
if (typeArguments.isEmpty()) {
|
||||
return simpleName;
|
||||
} else if (typeArguments.size() == 1) {
|
||||
return String.format("%s<%s>", simpleName, stringifyType(typeArguments.get(0)));
|
||||
} else if (typeArguments.size() == 2) {
|
||||
return String.format("%s<%s,%s>", simpleName, stringifyType(typeArguments.get(0)),
|
||||
stringifyType(typeArguments.get(1)));
|
||||
}
|
||||
|
||||
return "unknown"; // we should not reach here
|
||||
}
|
||||
|
||||
private static String typeSimpleName(TypeMirror typeMirror) {
|
||||
String type = ((DeclaredType) typeMirror).asElement().toString();
|
||||
return type.substring(1 + type.lastIndexOf(Constants.DOT));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user