aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/kotlin/javadoc
diff options
context:
space:
mode:
authorKrystian Ujma <krystianujma@gmail.com>2019-02-25 16:19:40 +0100
committerSimon Ogorodnik <simon.ogorodnik@gmail.com>2019-02-25 18:19:40 +0300
commit46af103c8dd43839e898368dbda744fa522e9789 (patch)
treed0da3884c0487f16615b406a8b4d82a0656f4d49 /core/src/main/kotlin/javadoc
parent9e2ca870881823498c8f65afda7bd9b77e575a2d (diff)
downloaddokka-46af103c8dd43839e898368dbda744fa522e9789.tar.gz
dokka-46af103c8dd43839e898368dbda744fa522e9789.tar.bz2
dokka-46af103c8dd43839e898368dbda744fa522e9789.zip
Fix protected property getters and setters show the wrong visibility… (#402)
Diffstat (limited to 'core/src/main/kotlin/javadoc')
-rw-r--r--core/src/main/kotlin/javadoc/docbase.kt17
1 files changed, 12 insertions, 5 deletions
diff --git a/core/src/main/kotlin/javadoc/docbase.kt b/core/src/main/kotlin/javadoc/docbase.kt
index 61b13b46..aeb806f1 100644
--- a/core/src/main/kotlin/javadoc/docbase.kt
+++ b/core/src/main/kotlin/javadoc/docbase.kt
@@ -2,7 +2,7 @@ package org.jetbrains.dokka.javadoc
import com.sun.javadoc.*
import org.jetbrains.dokka.*
-import java.lang.reflect.Modifier
+import java.lang.reflect.Modifier.*
import java.util.*
import kotlin.reflect.KClass
@@ -122,14 +122,21 @@ class AnnotationDescAdapter(val module: ModuleNodeAdapter, val node: Documentati
}
open class ProgramElementAdapter(module: ModuleNodeAdapter, node: DocumentationNode) : DocumentationNodeAdapter(module, node), ProgramElementDoc {
- override fun isPublic(): Boolean = true
+ override fun isPublic(): Boolean = node.hasModifier("public") || node.hasModifier("internal")
override fun isPackagePrivate(): Boolean = false
override fun isStatic(): Boolean = node.hasModifier("static")
- override fun modifierSpecifier(): Int = Modifier.PUBLIC + if (isStatic) Modifier.STATIC else 0
+ override fun modifierSpecifier(): Int = visibilityModifier or (if (isStatic) STATIC else 0)
+ private val visibilityModifier
+ get() = when {
+ isPublic() -> PUBLIC
+ isPrivate() -> PRIVATE
+ isProtected() -> PROTECTED
+ else -> 0
+ }
override fun qualifiedName(): String? = node.qualifiedName()
override fun annotations(): Array<out AnnotationDesc>? = nodeAnnotations(this).toTypedArray()
override fun modifiers(): String? = "public ${if (isStatic) "static" else ""}".trim()
- override fun isProtected(): Boolean = false
+ override fun isProtected(): Boolean = node.hasModifier("protected")
override fun isFinal(): Boolean = node.hasModifier("final")
@@ -165,7 +172,7 @@ open class ProgramElementAdapter(module: ModuleNodeAdapter, node: DocumentationN
return null
}
- override fun isPrivate(): Boolean = false
+ override fun isPrivate(): Boolean = node.hasModifier("private")
override fun isIncluded(): Boolean = containingPackage()?.isIncluded ?: false && containingClass()?.let { it.isIncluded } ?: true
}