public final List nestedTypes()

in core/src/main/java/com/jetbrains/sa/jdi/ReferenceTypeImpl.java [346:371]


    public final List<ReferenceTypeImpl> nestedTypes() {
        List<ReferenceTypeImpl> nestedTypes = (nestedTypesCache != null)? nestedTypesCache.get() : null;
        if (nestedTypes == null) {
            if (saKlass instanceof ArrayKlass) {
                nestedTypes = Collections.emptyList();
            } else {
                ClassLoaderReferenceImpl cl = classLoader();
                List<ReferenceTypeImpl> classes;
                if (cl != null) {
                   classes = cl.visibleClasses();
                } else {
                   classes = vm.bootstrapClasses();
                }
                nestedTypes = new ArrayList<ReferenceTypeImpl>();
                for (ReferenceTypeImpl refType : classes) {
                    Symbol candidateName = refType.ref().getName();
                    if (((InstanceKlass) saKlass).isInnerOrLocalClassName(candidateName)) {
                        nestedTypes.add(refType);
                    }
                }
            }
            nestedTypes = Collections.unmodifiableList(nestedTypes);
            nestedTypesCache = new SoftReference<List<ReferenceTypeImpl>>(nestedTypes);
        }
        return nestedTypes;
    }