blob: e4d2641e7960b59f606d2dd6efc4a432ed6942b9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package org.jetbrains.dokka.base.resolvers.external
import org.jetbrains.dokka.base.resolvers.shared.ExternalDocumentation
import java.util.concurrent.ConcurrentHashMap
class ExternalLocationProviderFactoryWithCache(val ext: ExternalLocationProviderFactory) :
ExternalLocationProviderFactory {
private val locationProviders = ConcurrentHashMap<ExternalDocumentation, CacheWrapper>()
override fun getExternalLocationProvider(doc: ExternalDocumentation): ExternalLocationProvider? =
locationProviders.getOrPut(doc) { CacheWrapper(ext.getExternalLocationProvider(doc)) }.provider
private class CacheWrapper(val provider: ExternalLocationProvider?)
}
|