in plugin-dotnet-agent/src/main/kotlin/jetbrains/buildServer/dotnet/RegistryBasedDotnetWorkloadProvider.kt [35:55]
override fun visit(key: WindowsRegistryKey): Boolean {
if (seenKeys.contains(key.regKey) || key.parts.size > EXPECTED_DEPTH || key.parts.size < MIN_DEPTH)
return true
seenKeys.add(key.regKey)
val keyName = key.parts.last()
if (isPlatformValid(keyName) || Version.isValid(keyName)) {
val visitor = this
_windowsRegistry.accept(key, visitor, false)
}
val keys = key.parts.takeLast(3)
val platform = keys[0]
val version = keys[1]
val workload = keys[2]
if (isPlatformValid(platform) && Version.isValid(version) && key.parts.size == EXPECTED_DEPTH && workload.isNotEmpty())
workloads.computeIfAbsent(Version.parse(version)) { mutableSetOf() }.add(workload)
return true
}