* Finds a declared type by name. The type name may be short, e.g. <code>"Foo"</code>,
* or fully-qualified, e.g. <code>"com.google.example.Foo"</code>. If a short
* name is used, it must be unambiguous.
*/
public static JDeclaredType findDeclaredType(JProgram program, String typeName) {
JDeclaredType type = program.getFromTypeMap(typeName);
if (type != null || typeName.indexOf('.') != -1) {
return type;
}
// Do a slow lookup by short name.
for (JDeclaredType checkType : program.getDeclaredTypes()) {
if (!checkType.getShortName().equals(typeName)) {
continue;
}
if (type != null) {
fail("Ambiguous type reference '" + typeName + "' might be '"
+ type.getName() + "' or '" + checkType.getName()
+ "' (possibly more matches)");
}
type = checkType;
}
return type;