diff options
| author | Joel Klinghed <the_jk@spawned.biz> | 2024-10-14 23:09:08 +0200 |
|---|---|---|
| committer | Joel Klinghed <the_jk@spawned.biz> | 2024-10-14 23:09:08 +0200 |
| commit | 4af8bed1fe533f6a0371da32c8e2c0ec5c81ebbf (patch) | |
| tree | 8cb6e7a2a83b6b661db879ac6b0750b266b919f3 /libs/io/src/main/java/org/the_jk/cleversync | |
| parent | ea9621389bfa62cb4e63688249c52ac0e41ff282 (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/main/java/org/the_jk/cleversync')
| -rw-r--r-- | libs/io/src/main/java/org/the_jk/cleversync/io/Link.kt | 10 | ||||
| -rw-r--r-- | libs/io/src/main/java/org/the_jk/cleversync/io/ModifiableLink.kt | 13 |
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 } |
