in json/src/main/java/org/netbeans/html/json/impl/ModelProcessor.java [1875:1937]
private String checkType(Prprt p, boolean[] isModel, boolean[] isEnum, boolean[] isPrimitive) {
TypeMirror tm;
try {
String ret = p.typeName(processingEnv);
TypeElement e = processingEnv.getElementUtils().getTypeElement(ret);
if (e == null) {
isModel[0] = true;
isEnum[0] = false;
isPrimitive[0] = false;
return ret;
}
tm = e.asType();
} catch (MirroredTypeException ex) {
tm = ex.getTypeMirror();
}
tm = processingEnv.getTypeUtils().erasure(tm);
if (isPrimitive[0] = tm.getKind().isPrimitive()) {
isEnum[0] = false;
isModel[0] = false;
return tm.toString();
}
final Element e = processingEnv.getTypeUtils().asElement(tm);
if (isError(e, tm)) {
isModel[0] = true;
isEnum[0] = false;
final String simpleName = e != null ? e.getSimpleName().toString() : tm.toString();
List<String> knownPackages = packages.get(simpleName);
if (knownPackages != null && !knownPackages.isEmpty()) {
String referencingPkg = findPkgName(p.e);
String foundPkg = null;
for (String pkg : knownPackages) {
foundPkg = pkg;
if (pkg.equals(referencingPkg)) {
return simpleName;
}
}
return foundPkg + '.' + simpleName;
}
return simpleName;
}
TypeMirror enm = processingEnv.getElementUtils().getTypeElement("java.lang.Enum").asType();
enm = processingEnv.getTypeUtils().erasure(enm);
isEnum[0] = processingEnv.getTypeUtils().isSubtype(tm, enm);
String ret;
if (!isEnum[0]) {
final Model m = e == null ? null : e.getAnnotation(Model.class);
if (m != null) {
ret = findPkgName(e) + '.' + m.className();
isModel[0] = true;
models.put(e, m.className());
} else if (findModelForMthd(e)) {
ret = ((TypeElement)e).getQualifiedName().toString();
isModel[0] = true;
} else {
ret = tm.toString();
}
} else {
ret = tm.toString();
}
return ret;
}