override fun visit()

in plugin-dotnet-agent/src/main/kotlin/jetbrains/buildServer/dotnet/discovery/dotnetFramework/DotnetPolicyRegistryVisitor.kt [24:47]


    override fun visit(value: WindowsRegistryValue): Boolean {
        if (value.key.parts.size == Deep + 2) {
            val subKey = value.key.parts.takeLast(2)
            if (
                    value.type == WindowsRegistryValueType.Str
                    && value.text.isNotBlank()
                    && subKey[0].startsWith("v")) {
                val majorVersion = Version.parse(subKey[0])
                if (majorVersion != Version.Empty && majorVersion.digits > 1) {
                    val subVersion = Version.parse(subKey[1])
                    if (subVersion != Version.Empty) {
                        val version = Version.parse("${majorVersion.major}${Version.Separator}${majorVersion.minor}${Version.Separator}${subVersion}")
                        // this class does not detect frameworks 4.0 and higher, ARM framework detection is not possible here
                        val platform = value.key.bitness.getPlatform(isArm = false)
                        _environment.tryGetRoot(value.key.bitness)?.let {
                            installRoot -> _frameworks.add(DotnetFramework(platform, version, File(installRoot, "v$version")))
                        }
                    }
                }
            }
        }

        return true
    }