}
// Find our enclosing class and set it
CollectClassData classData = classMapType.get(type);
assert classData != null;
String outerClass = classData.getOuterClass();
JRealClassType enclosingType = null;
if (outerClass != null) {
enclosingType = binaryMapper.get(outerClass);
// Ensure enclosing classes are resolved
if (enclosingType != null) {
if (!resolveEnclosingClass(logger, enclosingType)) {
return false;
}
if (enclosingType.isGenericType() != null
&& (classData.getAccess() & (Opcodes.ACC_STATIC | Opcodes.ACC_INTERFACE)) != 0) {
// If the inner class doesn't have access to it's enclosing type's
// type variables, the enclosign type must be the raw type instead
// of the generic type.
JGenericType genericType = enclosingType.isGenericType();
setEnclosingType(type, genericType.getRawType());
} else {
setEnclosingType(type, enclosingType);
}
}