diff options
author | Dmitry Jemerov <yole@jetbrains.com> | 2015-11-04 16:26:07 +0100 |
---|---|---|
committer | Dmitry Jemerov <yole@jetbrains.com> | 2015-11-04 16:26:07 +0100 |
commit | 84ea5c68420a75c7b8401000dbe6dbf3ff2cd6d0 (patch) | |
tree | e2f655042a05a5ce0b5ed3b111824afdcbc28ded /src/Utilities/GuiceModule.kt | |
parent | 3655b706ea22ab9d7ee02a8d5074aa583e848018 (diff) | |
download | dokka-84ea5c68420a75c7b8401000dbe6dbf3ff2cd6d0.tar.gz dokka-84ea5c68420a75c7b8401000dbe6dbf3ff2cd6d0.tar.bz2 dokka-84ea5c68420a75c7b8401000dbe6dbf3ff2cd6d0.zip |
@Inject all the things
Diffstat (limited to 'src/Utilities/GuiceModule.kt')
-rw-r--r-- | src/Utilities/GuiceModule.kt | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/src/Utilities/GuiceModule.kt b/src/Utilities/GuiceModule.kt deleted file mode 100644 index e852ae19..00000000 --- a/src/Utilities/GuiceModule.kt +++ /dev/null @@ -1,65 +0,0 @@ -package org.jetbrains.dokka.Utilities - -import com.google.inject.Binder -import com.google.inject.Module -import com.google.inject.Provider -import com.google.inject.name.Names -import com.google.inject.util.Providers -import org.jetbrains.dokka.* -import org.jetbrains.dokka.Formats.FormatDescriptor -import java.io.File - -class GuiceModule(val config: DokkaGenerator) : Module { - override fun configure(binder: Binder) { - binder.bind(DokkaGenerator::class.java).toInstance(config) - binder.bind(File::class.java).annotatedWith(Names.named("outputDir")).toInstance(File(config.outputDir)) - - binder.bindNameAnnotated<LocationService, SingleFolderLocationService>("singleFolder") - binder.bindNameAnnotated<FileLocationService, SingleFolderLocationService>("singleFolder") - binder.bindNameAnnotated<LocationService, FoldersLocationService>("folders") - binder.bindNameAnnotated<FileLocationService, FoldersLocationService>("folders") - - // defaults - binder.bind(LocationService::class.java).to(FoldersLocationService::class.java) - binder.bind(FileLocationService::class.java).to(FoldersLocationService::class.java) - binder.bind(LanguageService::class.java).to(KotlinLanguageService::class.java) - - binder.bind(HtmlTemplateService::class.java).toProvider(object : Provider<HtmlTemplateService> { - override fun get(): HtmlTemplateService = HtmlTemplateService.default("/dokka/styles/style.css") - }) - - binder.registerCategory<LanguageService>("language") - binder.registerCategory<OutlineFormatService>("outline") - binder.registerCategory<FormatService>("format") - binder.registerCategory<Generator>("generator") - - val descriptor = ServiceLocator.lookup<FormatDescriptor>("format", config.outputFormat, config) - - descriptor.outlineServiceClass?.let { clazz -> - binder.bind(OutlineFormatService::class.java).to(clazz) - } - descriptor.formatServiceClass?.let { clazz -> - binder.bind(FormatService::class.java).to(clazz) - } - if (descriptor.packageDocumentationBuilderServiceClass != null) { - binder.bind(PackageDocumentationBuilder::class.java).to(descriptor.packageDocumentationBuilderServiceClass) - } else { - binder.bind(PackageDocumentationBuilder::class.java).toProvider(Providers.of(null)) - } - - binder.bind(Generator::class.java).to(descriptor.generatorServiceClass) - } - -} - -private inline fun <reified T: Any> Binder.registerCategory(category: String) { - ServiceLocator.allServices(category).forEach { - @Suppress("UNCHECKED_CAST") - bind(T::class.java).annotatedWith(Names.named(it.name)).to(T::class.java.classLoader.loadClass(it.className) as Class<T>) - } -} - -private inline fun <reified Base : Any, reified T : Base> Binder.bindNameAnnotated(name: String) { - bind(Base::class.java).annotatedWith(Names.named(name)).to(T::class.java) -} - |