Skip to content

Commit e145f89

Browse files
Migrate to Compilation.check()
1 parent b87b125 commit e145f89

File tree

2 files changed

+18
-18
lines changed

2 files changed

+18
-18
lines changed

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

+8-9
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import io.spine.protodata.ast.isList
3939
import io.spine.protodata.ast.isSingular
4040
import io.spine.protodata.ast.qualifiedName
4141
import io.spine.protodata.ast.unpack
42+
import io.spine.protodata.check
4243
import io.spine.protodata.plugin.Policy
4344
import io.spine.server.event.Just
4445
import io.spine.server.event.React
@@ -79,16 +80,14 @@ internal class PatternPolicy : Policy<FieldOptionDiscovered>() {
7980
}
8081
}
8182

82-
private fun checkFieldType(field: Field, file: File) {
83-
val type = field.type
84-
if (!(type.isSingularString || type.isRepeatedString)) {
85-
Compilation.error(file, field.span) {
86-
"The field type `${field.type}` of `${field.qualifiedName}` is not supported " +
87-
"by the `($PATTERN)` option. Supported field types: strings and repeated " +
88-
"of strings."
89-
}
83+
private fun checkFieldType(field: Field, file: File) =
84+
Compilation.check(field.type.isSupported(), file, field.span) {
85+
"The field type `${field.type}` of `${field.qualifiedName}` is not supported " +
86+
"by the `($PATTERN)` option. Supported field types: strings and repeated " +
87+
"of strings."
9088
}
91-
}
89+
90+
private fun FieldType.isSupported(): Boolean = isSingularString || isRepeatedString
9291

9392
/**
9493
* Tells if this [FieldType] represents a `repeated string` field.

model/src/main/kotlin/io/spine/validation/required/RequiredPolicy.kt

+10-9
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,13 @@ import io.spine.option.IfMissingOption
3232
import io.spine.protobuf.unpack
3333
import io.spine.protodata.Compilation
3434
import io.spine.protodata.ast.Field
35+
import io.spine.protodata.ast.FieldType
3536
import io.spine.protodata.ast.File
3637
import io.spine.protodata.ast.PrimitiveType.TYPE_BYTES
3738
import io.spine.protodata.ast.PrimitiveType.TYPE_STRING
3839
import io.spine.protodata.ast.event.FieldOptionDiscovered
3940
import io.spine.protodata.ast.qualifiedName
41+
import io.spine.protodata.check
4042
import io.spine.protodata.plugin.Policy
4143
import io.spine.server.event.NoReaction
4244
import io.spine.server.event.React
@@ -97,16 +99,15 @@ internal class RequiredPolicy : Policy<FieldOptionDiscovered>() {
9799
}
98100
}
99101

100-
private fun checkFieldType(field: Field, file: File) {
101-
val type = field.type
102-
if (type.isPrimitive && type.primitive !in SUPPORTED_PRIMITIVES) {
103-
Compilation.error(file, field.span) {
104-
"The field type `${field.type}` of `${field.qualifiedName}` is not supported " +
105-
"by the `($REQUIRED)` option. Supported field types: messages, enums, " +
106-
"strings, bytes, repeated, and maps."
107-
}
102+
private fun checkFieldType(field: Field, file: File) =
103+
Compilation.check(field.type.isSupported(), file, field.span) {
104+
"The field type `${field.type}` of `${field.qualifiedName}` is not supported " +
105+
"by the `($REQUIRED)` option. Supported field types: messages, enums, " +
106+
"strings, bytes, repeated, and maps."
108107
}
109-
}
108+
109+
private fun FieldType.isSupported(): Boolean =
110+
!isPrimitive || primitive in SUPPORTED_PRIMITIVES
110111

111112
private val SUPPORTED_PRIMITIVES = listOf(
112113
TYPE_STRING, TYPE_BYTES

0 commit comments

Comments
 (0)