blob: 9555aeb94e9242d502e3321f4af6812e94944494 [file] [log] [blame]
Sergey Mashkove27fb692015-07-31 15:35:34 +03001package org.jetbrains.dokka.javadoc
2
Dmitry Jemerove4b2ae92015-10-30 18:43:48 +01003import com.google.inject.Inject
Sergey Mashkove27fb692015-07-31 15:35:34 +03004import com.sun.tools.doclets.formats.html.HtmlDoclet
5import org.jetbrains.dokka.*
6import org.jetbrains.dokka.Formats.FormatDescriptor
Simon Ogorodnik875e7e52016-11-14 20:52:19 +03007import org.jetbrains.dokka.Samples.DefaultSampleProcessingService
Simon Ogorodnika86c8592017-05-03 13:45:30 +03008import kotlin.reflect.KClass
Sergey Mashkove27fb692015-07-31 15:35:34 +03009
Simon Ogorodnika86c8592017-05-03 13:45:30 +030010class JavadocGenerator @Inject constructor(val options: DocumentationOptions, val logger: DokkaLogger) : Generator {
11
Sergey Mashkove27fb692015-07-31 15:35:34 +030012 override fun buildPages(nodes: Iterable<DocumentationNode>) {
13 val module = nodes.single() as DocumentationModule
14
15 DokkaConsoleLogger.report()
Dmitry Jemerov84ea5c62015-11-04 16:26:07 +010016 HtmlDoclet.start(ModuleNodeAdapter(module, StandardReporter(logger), options.outputDir))
Sergey Mashkove27fb692015-07-31 15:35:34 +030017 }
18
19 override fun buildOutlines(nodes: Iterable<DocumentationNode>) {
20 // no outline could be generated separately
21 }
Dmitry Jemerov39631052015-12-03 16:22:11 +010022
23 override fun buildSupportFiles() {
24 }
Simon Ogorodnika86c8592017-05-03 13:45:30 +030025
26 override fun buildPackageList(nodes: Iterable<DocumentationNode>) {
27 // handled by javadoc itself
28 }
Sergey Mashkove27fb692015-07-31 15:35:34 +030029}
30
31class JavadocFormatDescriptor : FormatDescriptor {
Dmitry Jemerov84ea5c62015-11-04 16:26:07 +010032 override val formatServiceClass = null
33 override val outlineServiceClass = null
34 override val generatorServiceClass = JavadocGenerator::class
35 override val packageDocumentationBuilderClass = KotlinAsJavaDocumentationBuilder::class
36 override val javaDocumentationBuilderClass = JavaPsiDocumentationBuilder::class
Simon Ogorodnik47790d12016-11-14 18:08:17 +030037 override val sampleProcessingService = DefaultSampleProcessingService::class
Simon Ogorodnika86c8592017-05-03 13:45:30 +030038 override val packageListServiceClass: KClass<out PackageListService>? = null
Dmitry Jemerove4b2ae92015-10-30 18:43:48 +010039}