summaryrefslogtreecommitdiff
path: root/libs/io/src
diff options
context:
space:
mode:
authorJoel Klinghed <the_jk@spawned.biz>2024-10-14 23:09:08 +0200
committerJoel Klinghed <the_jk@spawned.biz>2024-10-14 23:09:08 +0200
commit4af8bed1fe533f6a0371da32c8e2c0ec5c81ebbf (patch)
tree8cb6e7a2a83b6b661db879ac6b0750b266b919f3 /libs/io/src
parentea9621389bfa62cb4e63688249c52ac0e41ff282 (diff)
Add path to Link
It's implementation specific if path is relative or absolute but it contains the link target. Especially useful for NoTarget.
Diffstat (limited to 'libs/io/src')
-rw-r--r--libs/io/src/main/java/org/the_jk/cleversync/io/Link.kt10
-rw-r--r--libs/io/src/main/java/org/the_jk/cleversync/io/ModifiableLink.kt13
2 files changed, 15 insertions, 8 deletions
diff --git a/libs/io/src/main/java/org/the_jk/cleversync/io/Link.kt b/libs/io/src/main/java/org/the_jk/cleversync/io/Link.kt
index a20669b..d8a5863 100644
--- a/libs/io/src/main/java/org/the_jk/cleversync/io/Link.kt
+++ b/libs/io/src/main/java/org/the_jk/cleversync/io/Link.kt
@@ -7,9 +7,11 @@ interface Link {
/** read and resolve what link points to */
fun resolve(): LinkTarget
- sealed class LinkTarget
+ sealed interface LinkTarget {
+ val path: String
+ }
- data class DirectoryTarget(val directory: Directory): LinkTarget()
- data class FileTarget(val file: File): LinkTarget()
- data object NoTarget: LinkTarget()
+ data class DirectoryTarget(override val path: String, val directory: Directory): LinkTarget
+ data class FileTarget(override val path: String, val file: File): LinkTarget
+ data class NoTarget(override val path: String): LinkTarget
}
diff --git a/libs/io/src/main/java/org/the_jk/cleversync/io/ModifiableLink.kt b/libs/io/src/main/java/org/the_jk/cleversync/io/ModifiableLink.kt
index 0510137..3d009aa 100644
--- a/libs/io/src/main/java/org/the_jk/cleversync/io/ModifiableLink.kt
+++ b/libs/io/src/main/java/org/the_jk/cleversync/io/ModifiableLink.kt
@@ -11,9 +11,14 @@ interface ModifiableLink : Link {
/** change link to point to target path (doesn't have to exist) */
fun target(name: String)
- sealed class ModifiableLinkTarget
+ sealed interface ModifiableLinkTarget {
+ val path: String
+ }
- data class ModifiableDirectoryTarget(val directory: ModifiableDirectory): ModifiableLinkTarget()
- data class ModifiableFileTarget(val file: ModifiableFile): ModifiableLinkTarget()
- data object NoTarget: ModifiableLinkTarget()
+ data class ModifiableDirectoryTarget(
+ override val path: String,
+ val directory: ModifiableDirectory,
+ ): ModifiableLinkTarget
+ data class ModifiableFileTarget(override val path: String, val file: ModifiableFile): ModifiableLinkTarget
+ data class NoTarget(override val path: String): ModifiableLinkTarget
}