blob: c4d97dbb3936cd12db1cef5c5bb895ddb02f14af [file] [log] [blame]
package org.jetbrains.dokka.Formats
import com.google.inject.Binder
import org.jetbrains.dokka.*
import org.jetbrains.dokka.Kotlin.KotlinAsJavaDescriptorSignatureProvider
import org.jetbrains.dokka.Kotlin.KotlinDescriptorSignatureProvider
import org.jetbrains.dokka.Model.DescriptorSignatureProvider
import org.jetbrains.dokka.Samples.DefaultSampleProcessingService
import org.jetbrains.dokka.Samples.SampleProcessingService
import org.jetbrains.dokka.Utilities.bind
import org.jetbrains.dokka.Utilities.toType
import kotlin.reflect.KClass
interface DefaultAnalysisComponentServices {
val packageDocumentationBuilderClass: KClass<out PackageDocumentationBuilder>
val javaDocumentationBuilderClass: KClass<out JavaDocumentationBuilder>
val sampleProcessingService: KClass<out SampleProcessingService>
val descriptorSignatureProvider: KClass<out DescriptorSignatureProvider>
}
interface DefaultAnalysisComponent : FormatDescriptorAnalysisComponent, DefaultAnalysisComponentServices {
override fun configureAnalysis(binder: Binder): Unit = with(binder) {
bind<DescriptorSignatureProvider>() toType descriptorSignatureProvider
bind<PackageDocumentationBuilder>() toType packageDocumentationBuilderClass
bind<JavaDocumentationBuilder>() toType javaDocumentationBuilderClass
bind<SampleProcessingService>() toType sampleProcessingService
}
}
object KotlinAsJava : DefaultAnalysisComponentServices {
override val packageDocumentationBuilderClass = KotlinAsJavaDocumentationBuilder::class
override val javaDocumentationBuilderClass = JavaPsiDocumentationBuilder::class
override val sampleProcessingService = DefaultSampleProcessingService::class
override val descriptorSignatureProvider = KotlinAsJavaDescriptorSignatureProvider::class
}
object KotlinAsKotlin : DefaultAnalysisComponentServices {
override val packageDocumentationBuilderClass = KotlinPackageDocumentationBuilder::class
override val javaDocumentationBuilderClass = KotlinJavaDocumentationBuilder::class
override val sampleProcessingService = DefaultSampleProcessingService::class
override val descriptorSignatureProvider = KotlinDescriptorSignatureProvider::class
}