if (dollarIndex == length - 1) {
dollarIndex = -1;
}
if (dollarIndex >= 0) {
final InnerClassEntry entry = findInnerClassEntry(name);
if (entry != null) {
final String innerClassName = entry.getInnerClassName();
final int packageEnd = innerClassName.lastIndexOf('/');
final String shortName = StringUtilities.isNullOrEmpty(entry.getShortName()) ? null : entry.getShortName();
final String qualifiedName = packageEnd < 0 ? innerClassName : innerClassName.substring(packageEnd + 1).replace('/', '.');
final TypeReference declaringType;
if (!StringUtilities.isNullOrEmpty(entry.getOuterClassName())) {
declaringType = makeNamedType(entry.getOuterClassName().replace('/', '.'));
}
else {
int lastDollarIndex = name.lastIndexOf('$');
while (lastDollarIndex >= 1 &&