aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/kotlin/model/extraModifiers.kt
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/kotlin/model/extraModifiers.kt')
-rw-r--r--core/src/main/kotlin/model/extraModifiers.kt60
1 files changed, 60 insertions, 0 deletions
diff --git a/core/src/main/kotlin/model/extraModifiers.kt b/core/src/main/kotlin/model/extraModifiers.kt
new file mode 100644
index 00000000..093ce62a
--- /dev/null
+++ b/core/src/main/kotlin/model/extraModifiers.kt
@@ -0,0 +1,60 @@
+package org.jetbrains.dokka.model
+
+sealed class ExtraModifiers(val name: String) {
+
+ sealed class KotlinOnlyModifiers(name: String) : ExtraModifiers(name) {
+ object Inline : KotlinOnlyModifiers("inline")
+ object Infix : KotlinOnlyModifiers("infix")
+ object External : KotlinOnlyModifiers("external")
+ object Suspend : KotlinOnlyModifiers("suspend")
+ object Reified : KotlinOnlyModifiers("reified")
+ object CrossInline : KotlinOnlyModifiers("crossinline")
+ object NoInline : KotlinOnlyModifiers("noinline")
+ object Override : KotlinOnlyModifiers("override")
+ object Data : KotlinOnlyModifiers("data")
+ object Const : KotlinOnlyModifiers("const")
+ object Inner : KotlinOnlyModifiers("inner")
+ object LateInit : KotlinOnlyModifiers("lateinit")
+ object Operator : KotlinOnlyModifiers("operator")
+ object TailRec : KotlinOnlyModifiers("tailrec")
+ object VarArg : KotlinOnlyModifiers("vararg")
+ }
+
+ sealed class JavaOnlyModifiers(name: String) : ExtraModifiers(name) {
+ object Static : JavaOnlyModifiers("static")
+ object Native : JavaOnlyModifiers("native")
+ object Synchronized : JavaOnlyModifiers("synchronized")
+ object StrictFP : JavaOnlyModifiers("strictfp")
+ object Transient : JavaOnlyModifiers("transient")
+ object Volatile : JavaOnlyModifiers("volatile")
+ object Transitive : JavaOnlyModifiers("transitive")
+ }
+
+ companion object {
+ fun valueOf(str: String) = when(str) {
+ "inline" -> KotlinOnlyModifiers.Inline
+ "infix" -> KotlinOnlyModifiers.Infix
+ "external" -> KotlinOnlyModifiers.External
+ "suspend" -> KotlinOnlyModifiers.Suspend
+ "reified" -> KotlinOnlyModifiers.Reified
+ "crossinline" -> KotlinOnlyModifiers.CrossInline
+ "noinline" -> KotlinOnlyModifiers.NoInline
+ "override" -> KotlinOnlyModifiers.Override
+ "data" -> KotlinOnlyModifiers.Data
+ "const" -> KotlinOnlyModifiers.Const
+ "inner" -> KotlinOnlyModifiers.Inner
+ "lateinit" -> KotlinOnlyModifiers.LateInit
+ "operator" -> KotlinOnlyModifiers.Operator
+ "tailrec" -> KotlinOnlyModifiers.TailRec
+ "vararg" -> KotlinOnlyModifiers.VarArg
+ "static" -> JavaOnlyModifiers.Static
+ "native" -> JavaOnlyModifiers.Native
+ "synchronized" -> JavaOnlyModifiers.Synchronized
+ "strictfp" -> JavaOnlyModifiers.StrictFP
+ "transient" -> JavaOnlyModifiers.Transient
+ "volatile" -> JavaOnlyModifiers.Volatile
+ "transitive" -> JavaOnlyModifiers.Transitive
+ else -> throw IllegalArgumentException("There is no Extra Modifier for given name $str")
+ }
+ }
+} \ No newline at end of file