Skip to content

Commit 76e2de7

Browse files
Update instantiations of ErrorMessage
1 parent b083c87 commit 76e2de7

File tree

8 files changed

+29
-23
lines changed

8 files changed

+29
-23
lines changed

model/src/main/kotlin/io/spine/validation/DistinctPolicy.kt

+7-1
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,13 @@ internal class DistinctPolicy : ValidationPolicy<FieldOptionDiscovered>() {
6363
checkCollection(fieldName, declaringType, event.file)
6464

6565
val rule = SimpleRule(
66-
fieldName, DistinctCollection.getDefaultInstance(), ERROR, ERROR, false
66+
fieldName,
67+
DistinctCollection.getDefaultInstance(),
68+
DESCRIPTION,
69+
errorMessage { value= ERROR },
70+
false
6771
)
72+
6873
return simpleRuleAdded {
6974
type = declaringType
7075
this@simpleRuleAdded.rule = rule
@@ -81,5 +86,6 @@ internal class DistinctPolicy : ValidationPolicy<FieldOptionDiscovered>() {
8186

8287
companion object {
8388
private const val ERROR = "A field with `($DISTINCT) = true` must not contain duplicates."
89+
private const val DESCRIPTION = "The option to mark a `repeated` field as a collection of unique elements."
8490
}
8591
}

model/src/main/kotlin/io/spine/validation/GoesPolicy.kt

+11-7
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ import io.spine.protodata.type.resolve
3939
import io.spine.server.event.Just
4040
import io.spine.server.event.Just.Companion.just
4141
import io.spine.server.event.React
42-
import io.spine.validation.ErrorMessageFormat.EM_PLACEHOLDERS
4342
import io.spine.validation.event.RuleAdded
4443

4544
/**
@@ -81,18 +80,23 @@ internal class GoesPolicy : Policy<FieldOptionDiscovered>() {
8180
left = targetFieldShouldBeUnset(target)
8281
operator = LogicalOperator.OR
8382
right = companionFieldShouldBeSet(companion)
84-
errorMessage = option.errorMessage()
8583
field = target.name
86-
errorMessageFormat = EM_PLACEHOLDERS
87-
optionPlaceholders.putAll(mapOf(
88-
"fieldName" to target.name.value,
89-
"companionName" to companion.name.value
90-
))
84+
errorMessage = errorMessage(option, target, companion)
9185
}
9286
}
9387
return just(rule.toEvent(target.declaringType))
9488
}
9589

90+
private fun errorMessage(option: GoesOption, target: Field, companion: Field) = errorMessage {
91+
value = option.errorMessage()
92+
buildtimePlaceholders.putAll(
93+
mapOf(
94+
"fieldName" to target.name.value,
95+
"companionName" to companion.name.value
96+
)
97+
)
98+
}
99+
96100
/**
97101
* Checks that the given [target] and [companion] fields are distinct.
98102
*

model/src/main/kotlin/io/spine/validation/NumberRules.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ internal constructor(
9494
field = this@toRule
9595
operator = if (inclusive) inclusiveOperator else exclusiveOperator
9696
otherValue = threshold
97-
errorMessage = compileErrorMessage(adjective, inclusive)
97+
errorMessage = errorMessage { value = compileErrorMessage(adjective, inclusive) }
9898
distribute = true
9999
}
100100

@@ -111,7 +111,7 @@ internal constructor(
111111
right = toMaxRule().wrap()
112112
operator = AND
113113
field = this@toRangeRule
114-
errorMessage = rangeErrorMessage
114+
errorMessage = errorMessage { value = rangeErrorMessage }
115115
}
116116

117117
private val rangeErrorMessage: String by lazy {

model/src/main/kotlin/io/spine/validation/PatternPolicy.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ internal class PatternPolicy : Policy<FieldOptionDiscovered>() {
6161
field.name,
6262
feature,
6363
"String should match regex.",
64-
error,
64+
errorMessage { value = error },
6565
true
6666
)
6767
return simpleRuleAdded(field.declaringType, rule)

model/src/main/kotlin/io/spine/validation/RequiredRule.kt

+3-6
Original file line numberDiff line numberDiff line change
@@ -46,10 +46,7 @@ internal object RequiredRule {
4646
*/
4747
@Suppress("ReturnCount")
4848
fun forField(field: Field, errorMessage: String): Rule? {
49-
val unsetValue = UnsetValue.forField(field)
50-
if (unsetValue == null) {
51-
return null
52-
}
49+
val unsetValue = UnsetValue.forField(field) ?: return null
5350
val integratedRule = rule(
5451
field, unsetValue, errorMessage, singularErrorMsg, false
5552
)
@@ -63,7 +60,7 @@ internal object RequiredRule {
6360
}
6461

6562
private fun collectionRule(integratedRule: SimpleRule, errorMessage: String): Rule {
66-
val msg = collectionErrorMessage(errorMessage)
63+
val msg = errorMessage { value = collectionErrorMessage(errorMessage) }
6764
val withCustomErrorMessage = integratedRule.toBuilder()
6865
.setErrorMessage(msg)
6966
.build()
@@ -108,7 +105,7 @@ internal object RequiredRule {
108105
): SimpleRule {
109106
val msg = errorMessage.ifEmpty { defaultErrorMessage }
110107
return simpleRule {
111-
this.errorMessage = msg
108+
this.errorMessage = errorMessage { this.value = msg }
112109
this.field = field.name
113110
operator = ComparisonOperator.NOT_EQUAL
114111
otherValue = value

model/src/main/kotlin/io/spine/validation/SimpleRules.kt

+3-4
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,17 @@ public fun SimpleRule(
4646
field: FieldName,
4747
customFeature: Message,
4848
description: String,
49-
errorMessage: String,
49+
errorMessage: ErrorMessage,
5050
distribute: Boolean
5151
): SimpleRule {
52-
require(description.isNotEmpty())
53-
require(errorMessage.isNotEmpty())
5452
require(description.isNotBlank())
55-
require(errorMessage.isNotBlank())
53+
require(errorMessage.value.isNotBlank())
5654

5755
val operator = customOperator {
5856
this.description = description
5957
feature = customFeature.pack()
6058
}
59+
6160
return simpleRule {
6261
customOperator = operator
6362
this.errorMessage = errorMessage

model/src/main/kotlin/io/spine/validation/ValidatePolicy.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ internal class ValidatePolicy : ValidationPolicy<FieldExited>() {
7171
RecursiveValidation.getDefaultInstance(),
7272
"A message field is validated by its validation rules. " +
7373
"If the field is invalid, the container message is invalid as well.",
74-
field!!.errorMessage,
74+
errorMessage { field!!.errorMessage },
7575
true
7676
)
7777
return simpleRuleAdded {

model/src/main/kotlin/io/spine/validation/WhenPolicy.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ internal class WhenPolicy : Policy<FieldOptionDiscovered>() {
5959
field.name,
6060
feature,
6161
errorMessage,
62-
errorMessage,
62+
errorMessage { value = errorMessage },
6363
true
6464
)
6565
return simpleRuleAdded(field.declaringType, newRule)

0 commit comments

Comments
 (0)