aboutsummaryrefslogtreecommitdiff
path: root/src/Locations
diff options
context:
space:
mode:
authorSergey Mashkov <sergey.mashkov@jetbrains.com>2015-07-31 15:35:34 +0300
committerSergey Mashkov <sergey.mashkov@jetbrains.com>2015-07-31 17:52:49 +0300
commite27fb69817b1417c1bc556a507b14f2700c7a736 (patch)
treeb6d3b5622e65651ae6510f5109d86f834ff2c337 /src/Locations
parent12f91ee7d491b21359ff8e8822c594f35b904def (diff)
downloaddokka-e27fb69817b1417c1bc556a507b14f2700c7a736.tar.gz
dokka-e27fb69817b1417c1bc556a507b14f2700c7a736.tar.bz2
dokka-e27fb69817b1417c1bc556a507b14f2700c7a736.zip
Use Guice injector and ServiceLocator to load implementations on the fly
Diffstat (limited to 'src/Locations')
-rw-r--r--src/Locations/FoldersLocationService.kt5
-rw-r--r--src/Locations/LocationService.kt2
-rw-r--r--src/Locations/SingleFolderLocationService.kt6
3 files changed, 10 insertions, 3 deletions
diff --git a/src/Locations/FoldersLocationService.kt b/src/Locations/FoldersLocationService.kt
index e85c2c98..8a0cf6be 100644
--- a/src/Locations/FoldersLocationService.kt
+++ b/src/Locations/FoldersLocationService.kt
@@ -1,9 +1,12 @@
package org.jetbrains.dokka
+import com.google.inject.Inject
+import com.google.inject.name.Named
import java.io.File
public fun FoldersLocationService(root: String): FoldersLocationService = FoldersLocationService(File(root), "")
-public class FoldersLocationService(val root: File, val extension: String) : FileLocationService {
+public class FoldersLocationService @Inject constructor(@Named("outputDir") val root: File, val extension: String) : FileLocationService {
+
override fun withExtension(newExtension: String): FileLocationService {
return if (extension.isEmpty()) FoldersLocationService(root, newExtension) else this
}
diff --git a/src/Locations/LocationService.kt b/src/Locations/LocationService.kt
index 7d0b8b56..000b2c5e 100644
--- a/src/Locations/LocationService.kt
+++ b/src/Locations/LocationService.kt
@@ -55,6 +55,8 @@ public interface LocationService {
public interface FileLocationService: LocationService {
+ override fun withExtension(newExtension: String): FileLocationService = this
+
override fun location(node: DocumentationNode): FileLocation = location(node.path.map { it.name }, node.members.any())
override fun location(qualifiedName: List<String>, hasMembers: Boolean): FileLocation
}
diff --git a/src/Locations/SingleFolderLocationService.kt b/src/Locations/SingleFolderLocationService.kt
index c26d2b34..049636c0 100644
--- a/src/Locations/SingleFolderLocationService.kt
+++ b/src/Locations/SingleFolderLocationService.kt
@@ -1,10 +1,12 @@
package org.jetbrains.dokka
+import com.google.inject.Inject
+import com.google.inject.name.Named
import java.io.File
public fun SingleFolderLocationService(root: String): SingleFolderLocationService = SingleFolderLocationService(File(root), "")
-public class SingleFolderLocationService(val root: File, val extension: String) : FileLocationService {
- override fun withExtension(newExtension: String): LocationService =
+public class SingleFolderLocationService @Inject constructor(@Named("outputDir") val root: File, val extension: String) : FileLocationService {
+ override fun withExtension(newExtension: String): FileLocationService =
SingleFolderLocationService(root, newExtension)
override fun location(qualifiedName: List<String>, hasMembers: Boolean): FileLocation {