open fun pickClass()

in code/codegen/src/main/kotlin/com/android/gradle/replicator/codegen/ImportClassPicker.kt [59:90]


    open fun pickClass(random: Random): ClassModel<*>? {
        if (emptyPicker.get() || modules.isEmpty()) return null
        var moduleIndex = random.nextInt(modules.size)
        val startModuleIndex = moduleIndex
        var selectedModule = modules[moduleIndex]
        var classIndex = random.nextInt(selectedModule.classes.size)
        var startClassIndexInModule = classIndex
        var className = selectedModule.classes[classIndex]
        var loadedClass= loadClass(className)
        var classModel = if (loadedClass != null) {
            if (verifyClasses) isClassEligible(loadedClass) else loadModel(loadedClass)
        } else null
        while (classModel == null) {
            classIndex = (classIndex + 1) % selectedModule.classes.size
            if (classIndex == startClassIndexInModule) {
                moduleIndex = (moduleIndex + 1) % modules.size
                if (moduleIndex == startModuleIndex) {
                    emptyPicker.set(true)
                    return null
                }
                selectedModule = modules[moduleIndex]
                classIndex = random.nextInt(selectedModule.classes.size)
                startClassIndexInModule = classIndex
            }
            className = selectedModule.classes[classIndex]
            loadedClass= loadClass(className)
            if (loadedClass != null) {
                classModel = isClassEligible(loadedClass)
            }
        }
        return classModel
    }