Skip to content

Commit f88b06b

Browse files
authored
Merge pull request #364 from fmasa/362-duplicate-name
Ensure duplicated item name fits into limit
2 parents 33c36a8 + bf0e20f commit f88b06b

File tree

19 files changed

+86
-19
lines changed

19 files changed

+86
-19
lines changed

common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/compendium/domain/Blessing.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import androidx.compose.runtime.Immutable
44
import com.benasher44.uuid.uuid4
55
import cz.frantisekmasa.wfrp_master.common.core.common.requireMaxLength
66
import cz.frantisekmasa.wfrp_master.common.core.serialization.UuidAsString
7+
import cz.frantisekmasa.wfrp_master.common.core.utils.duplicateName
78
import dev.icerock.moko.parcelize.Parcelize
89
import kotlinx.serialization.Serializable
910

@@ -40,5 +41,5 @@ data class Blessing(
4041

4142
override fun changeVisibility(isVisibleToPlayers: Boolean) = copy(isVisibleToPlayers = !isVisibleToPlayers)
4243

43-
override fun duplicate() = copy(id = uuid4(), name = duplicateName())
44+
override fun duplicate() = copy(id = uuid4(), name = duplicateName(name, NAME_MAX_LENGTH))
4445
}

common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/compendium/domain/Career.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import cz.frantisekmasa.wfrp_master.common.core.domain.SocialClass
66
import cz.frantisekmasa.wfrp_master.common.core.domain.character.Race
77
import cz.frantisekmasa.wfrp_master.common.core.domain.character.SocialStatus
88
import cz.frantisekmasa.wfrp_master.common.core.serialization.UuidAsString
9+
import cz.frantisekmasa.wfrp_master.common.core.utils.duplicateName
910
import dev.icerock.moko.parcelize.Parcelable
1011
import dev.icerock.moko.parcelize.Parcelize
1112
import kotlinx.serialization.Serializable
@@ -49,7 +50,7 @@ data class Career(
4950
)
5051
}
5152

52-
override fun duplicate(): Career = copy(id = uuid4(), name = duplicateName())
53+
override fun duplicate(): Career = copy(id = uuid4(), name = duplicateName(name, NAME_MAX_LENGTH))
5354

5455
override fun changeVisibility(isVisibleToPlayers: Boolean) = copy(isVisibleToPlayers = isVisibleToPlayers)
5556

common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/compendium/domain/CompendiumItem.kt

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package cz.frantisekmasa.wfrp_master.common.compendium.domain
22

33
import com.benasher44.uuid.Uuid
4-
import cz.frantisekmasa.wfrp_master.common.core.utils.duplicateName
54
import dev.icerock.moko.parcelize.Parcelable
65

76
sealed class CompendiumItem<T : CompendiumItem<T>> : Parcelable {
@@ -14,6 +13,4 @@ sealed class CompendiumItem<T : CompendiumItem<T>> : Parcelable {
1413
abstract fun replace(original: T): T
1514

1615
abstract fun changeVisibility(isVisibleToPlayers: Boolean): T
17-
18-
protected fun duplicateName(): String = duplicateName(name)
1916
}

common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/compendium/domain/Disease.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import androidx.compose.runtime.Immutable
44
import com.benasher44.uuid.uuid4
55
import cz.frantisekmasa.wfrp_master.common.core.common.requireMaxLength
66
import cz.frantisekmasa.wfrp_master.common.core.serialization.UuidAsString
7+
import cz.frantisekmasa.wfrp_master.common.core.utils.duplicateName
78
import dev.icerock.moko.parcelize.Parcelize
89
import kotlinx.serialization.Serializable
910

@@ -35,7 +36,7 @@ data class Disease(
3536
override fun duplicate() =
3637
copy(
3738
id = uuid4(),
38-
name = duplicateName(),
39+
name = duplicateName(name, NAME_MAX_LENGTH),
3940
)
4041

4142
override fun replace(original: Disease) = copy(id = original.id)

common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/compendium/domain/JournalEntry.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import androidx.compose.runtime.Immutable
44
import com.benasher44.uuid.uuid4
55
import cz.frantisekmasa.wfrp_master.common.core.common.requireMaxLength
66
import cz.frantisekmasa.wfrp_master.common.core.serialization.UuidAsString
7+
import cz.frantisekmasa.wfrp_master.common.core.utils.duplicateName
78
import dev.icerock.moko.parcelize.Parcelize
89
import kotlinx.serialization.SerialName
910
import kotlinx.serialization.Serializable
@@ -36,7 +37,7 @@ data class JournalEntry(
3637
gmText = gmText.ifEmpty { original.gmText },
3738
)
3839

39-
override fun duplicate() = copy(id = uuid4(), name = duplicateName())
40+
override fun duplicate() = copy(id = uuid4(), name = duplicateName(name, NAME_MAX_LENGTH))
4041

4142
override fun changeVisibility(isVisibleToPlayers: Boolean) = copy(isVisibleToPlayers = isVisibleToPlayers)
4243

common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/compendium/domain/Miracle.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import androidx.compose.runtime.Immutable
44
import com.benasher44.uuid.uuid4
55
import cz.frantisekmasa.wfrp_master.common.core.common.requireMaxLength
66
import cz.frantisekmasa.wfrp_master.common.core.serialization.UuidAsString
7+
import cz.frantisekmasa.wfrp_master.common.core.utils.duplicateName
78
import dev.icerock.moko.parcelize.Parcelize
89
import kotlinx.serialization.Serializable
910

@@ -41,7 +42,7 @@ data class Miracle(
4142

4243
override fun replace(original: Miracle) = copy(id = original.id)
4344

44-
override fun duplicate() = copy(id = uuid4(), name = duplicateName())
45+
override fun duplicate() = copy(id = uuid4(), name = duplicateName(name, NAME_MAX_LENGTH))
4546

4647
override fun changeVisibility(isVisibleToPlayers: Boolean) = copy(isVisibleToPlayers = isVisibleToPlayers)
4748
}

common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/compendium/domain/Skill.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.benasher44.uuid.uuid4
55
import cz.frantisekmasa.wfrp_master.common.core.common.requireMaxLength
66
import cz.frantisekmasa.wfrp_master.common.core.domain.Characteristic
77
import cz.frantisekmasa.wfrp_master.common.core.serialization.UuidAsString
8+
import cz.frantisekmasa.wfrp_master.common.core.utils.duplicateName
89
import dev.icerock.moko.parcelize.Parcelize
910
import kotlinx.serialization.Serializable
1011

@@ -32,7 +33,7 @@ data class Skill(
3233

3334
override fun replace(original: Skill) = copy(id = original.id)
3435

35-
override fun duplicate() = copy(id = uuid4(), name = duplicateName())
36+
override fun duplicate() = copy(id = uuid4(), name = duplicateName(name, NAME_MAX_LENGTH))
3637

3738
override fun changeVisibility(isVisibleToPlayers: Boolean) = copy(isVisibleToPlayers = isVisibleToPlayers)
3839
}

common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/compendium/domain/Spell.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package cz.frantisekmasa.wfrp_master.common.compendium.domain
33
import androidx.compose.runtime.Immutable
44
import com.benasher44.uuid.uuid4
55
import cz.frantisekmasa.wfrp_master.common.core.serialization.UuidAsString
6+
import cz.frantisekmasa.wfrp_master.common.core.utils.duplicateName
67
import dev.icerock.moko.parcelize.Parcelize
78
import kotlinx.serialization.SerialName
89
import kotlinx.serialization.Serializable
@@ -47,7 +48,7 @@ data class Spell(
4748

4849
override fun replace(original: Spell) = copy(id = original.id)
4950

50-
override fun duplicate() = copy(id = uuid4(), name = duplicateName())
51+
override fun duplicate() = copy(id = uuid4(), name = duplicateName(name, NAME_MAX_LENGTH))
5152

5253
override fun changeVisibility(isVisibleToPlayers: Boolean) = copy(isVisibleToPlayers = isVisibleToPlayers)
5354
}

common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/compendium/domain/Talent.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import androidx.compose.runtime.Immutable
44
import com.benasher44.uuid.uuid4
55
import cz.frantisekmasa.wfrp_master.common.core.common.requireMaxLength
66
import cz.frantisekmasa.wfrp_master.common.core.serialization.UuidAsString
7+
import cz.frantisekmasa.wfrp_master.common.core.utils.duplicateName
78
import dev.icerock.moko.parcelize.Parcelize
89
import kotlinx.serialization.Serializable
910

@@ -36,7 +37,7 @@ data class Talent(
3637

3738
override fun replace(original: Talent) = copy(id = original.id)
3839

39-
override fun duplicate() = copy(id = uuid4(), name = duplicateName())
40+
override fun duplicate() = copy(id = uuid4(), name = duplicateName(name, NAME_MAX_LENGTH))
4041

4142
override fun changeVisibility(isVisibleToPlayers: Boolean) = copy(isVisibleToPlayers = isVisibleToPlayers)
4243
}

common/src/commonMain/kotlin/cz/frantisekmasa/wfrp_master/common/compendium/domain/Trait.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package cz.frantisekmasa.wfrp_master.common.compendium.domain
33
import androidx.compose.runtime.Immutable
44
import com.benasher44.uuid.uuid4
55
import cz.frantisekmasa.wfrp_master.common.core.serialization.UuidAsString
6+
import cz.frantisekmasa.wfrp_master.common.core.utils.duplicateName
67
import dev.icerock.moko.parcelize.Parcelize
78
import kotlinx.serialization.Serializable
89

@@ -25,7 +26,7 @@ data class Trait(
2526

2627
override fun replace(original: Trait) = copy(id = original.id)
2728

28-
override fun duplicate() = copy(id = uuid4(), name = duplicateName())
29+
override fun duplicate() = copy(id = uuid4(), name = duplicateName(name, NAME_MAX_LENGTH))
2930

3031
override fun changeVisibility(isVisibleToPlayers: Boolean) = copy(isVisibleToPlayers = isVisibleToPlayers)
3132

0 commit comments

Comments
 (0)