aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/kotlin/links/DRI.kt
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/kotlin/links/DRI.kt')
-rw-r--r--core/src/main/kotlin/links/DRI.kt12
1 files changed, 11 insertions, 1 deletions
diff --git a/core/src/main/kotlin/links/DRI.kt b/core/src/main/kotlin/links/DRI.kt
index 2cbae8cc..a1322ef6 100644
--- a/core/src/main/kotlin/links/DRI.kt
+++ b/core/src/main/kotlin/links/DRI.kt
@@ -56,9 +56,19 @@ fun DRI.withClass(name: String) = copy(classNames = if (classNames.isNullOrBlank
fun DRI.withTargetToDeclaration() = copy(target = PointingToDeclaration)
+fun DRI.withEnumEntryExtra() = copy(
+ extra = DRIExtraContainer(this.extra).also { it[EnumEntryDRIExtra] = EnumEntryDRIExtra }.encode()
+)
+
val DRI.parent: DRI
get() = when {
- extra != null -> copy(extra = null)
+ extra != null -> when {
+ DRIExtraContainer(extra)[EnumEntryDRIExtra] != null -> copy(
+ classNames = classNames?.substringBeforeLast(".", "")?.takeIf { it.isNotBlank() },
+ extra = null
+ )
+ else -> copy(extra = null)
+ }
target != PointingToDeclaration -> copy(target = PointingToDeclaration)
callable != null -> copy(callable = null)
classNames != null -> copy(classNames = classNames.substringBeforeLast(".", "").takeIf { it.isNotBlank() })