in maven-plugin-tools-annotations/src/main/java/org/apache/maven/tools/plugin/extractor/annotations/converter/JavaClassConverterContext.java [300:339]
private Optional<FullyQualifiedJavadocReference> resolveMember(
String fullyQualifiedPackageNameClassName,
String nestedClassName,
Optional<String> member,
Optional<String> label) {
JavaClass javaClass = javaProjectBuilder.getClassByName(fullyQualifiedPackageNameClassName);
if (!isClassFound(javaClass)) {
JavaPackage javaPackage = javaProjectBuilder.getPackageByName(fullyQualifiedPackageNameClassName);
if (javaPackage == null || !nestedClassName.isEmpty()) {
// is it a nested class?
int lastIndexOfDot = fullyQualifiedPackageNameClassName.lastIndexOf('.');
if (lastIndexOfDot > 0) {
String newNestedClassName = nestedClassName;
if (!newNestedClassName.isEmpty()) {
newNestedClassName += '.';
}
newNestedClassName += fullyQualifiedPackageNameClassName.substring(lastIndexOfDot + 1);
return resolveMember(
fullyQualifiedPackageNameClassName.substring(0, lastIndexOfDot),
newNestedClassName,
member,
label);
}
return Optional.empty();
} else {
// reference to java package never has a member
return Optional.of(
new FullyQualifiedJavadocReference(javaPackage.getName(), label, isExternal(javaPackage)));
}
} else {
if (!nestedClassName.isEmpty()) {
javaClass = javaClass.getNestedClassByName(nestedClassName);
if (javaClass == null) {
return Optional.empty();
}
}
return resolveMember(javaClass, member, label);
}
}