Skip to content

Commit 3bab7c6

Browse files
Merge pull request #168 from SpineEventEngine/codegen-for-goes
Implement codegen validation for `(goes)` option
2 parents 4c1d9e9 + 779ad9a commit 3bab7c6

File tree

18 files changed

+929
-284
lines changed

18 files changed

+929
-284
lines changed

dependencies.md

+28-28
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22

3-
# Dependencies of `io.spine.validation:spine-validation-java:2.0.0-SNAPSHOT.178`
3+
# Dependencies of `io.spine.validation:spine-validation-java:2.0.0-SNAPSHOT.179`
44

55
## Runtime
66
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3.
@@ -852,12 +852,12 @@
852852

853853
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
854854

855-
This report was generated on **Mon Dec 02 12:54:44 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
855+
This report was generated on **Fri Dec 06 15:45:53 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
856856

857857

858858

859859

860-
# Dependencies of `io.spine.validation:spine-validation-java-bundle:2.0.0-SNAPSHOT.178`
860+
# Dependencies of `io.spine.validation:spine-validation-java-bundle:2.0.0-SNAPSHOT.179`
861861

862862
## Runtime
863863
1. **Group** : org.jetbrains. **Name** : annotations. **Version** : 24.0.1.
@@ -1452,12 +1452,12 @@ This report was generated on **Mon Dec 02 12:54:44 CET 2024** using [Gradle-Lice
14521452

14531453
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
14541454

1455-
This report was generated on **Mon Dec 02 12:54:44 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
1455+
This report was generated on **Fri Dec 06 15:45:54 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
14561456

14571457

14581458

14591459

1460-
# Dependencies of `io.spine.validation:spine-validation-java-runtime:2.0.0-SNAPSHOT.178`
1460+
# Dependencies of `io.spine.validation:spine-validation-java-runtime:2.0.0-SNAPSHOT.179`
14611461

14621462
## Runtime
14631463
1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
@@ -2114,12 +2114,12 @@ This report was generated on **Mon Dec 02 12:54:44 CET 2024** using [Gradle-Lice
21142114

21152115
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
21162116

2117-
This report was generated on **Mon Dec 02 12:54:45 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
2117+
This report was generated on **Fri Dec 06 15:45:54 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
21182118

21192119

21202120

21212121

2122-
# Dependencies of `io.spine.validation:spine-validation-java-tests:2.0.0-SNAPSHOT.178`
2122+
# Dependencies of `io.spine.validation:spine-validation-java-tests:2.0.0-SNAPSHOT.179`
21232123

21242124
## Runtime
21252125
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3.
@@ -3039,12 +3039,12 @@ This report was generated on **Mon Dec 02 12:54:45 CET 2024** using [Gradle-Lice
30393039

30403040
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
30413041

3042-
This report was generated on **Mon Dec 02 12:54:47 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
3042+
This report was generated on **Fri Dec 06 15:45:56 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
30433043

30443044

30453045

30463046

3047-
# Dependencies of `io.spine.validation:spine-validation-model:2.0.0-SNAPSHOT.178`
3047+
# Dependencies of `io.spine.validation:spine-validation-model:2.0.0-SNAPSHOT.179`
30483048

30493049
## Runtime
30503050
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3.
@@ -3899,12 +3899,12 @@ This report was generated on **Mon Dec 02 12:54:47 CET 2024** using [Gradle-Lice
38993899

39003900
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
39013901

3902-
This report was generated on **Mon Dec 02 12:54:48 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
3902+
This report was generated on **Fri Dec 06 15:45:56 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
39033903

39043904

39053905

39063906

3907-
# Dependencies of `io.spine.validation:spine-validation-proto:2.0.0-SNAPSHOT.178`
3907+
# Dependencies of `io.spine.validation:spine-validation-proto:2.0.0-SNAPSHOT.179`
39083908

39093909
## Runtime
39103910
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3.
@@ -4793,12 +4793,12 @@ This report was generated on **Mon Dec 02 12:54:48 CET 2024** using [Gradle-Lice
47934793

47944794
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
47954795

4796-
This report was generated on **Mon Dec 02 12:54:49 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
4796+
This report was generated on **Fri Dec 06 15:45:57 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
47974797

47984798

47994799

48004800

4801-
# Dependencies of `io.spine.validation:spine-validation-consumer:2.0.0-SNAPSHOT.178`
4801+
# Dependencies of `io.spine.validation:spine-validation-consumer:2.0.0-SNAPSHOT.179`
48024802

48034803
## Runtime
48044804
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3.
@@ -5666,12 +5666,12 @@ This report was generated on **Mon Dec 02 12:54:49 CET 2024** using [Gradle-Lice
56665666

56675667
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
56685668

5669-
This report was generated on **Mon Dec 02 12:54:49 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
5669+
This report was generated on **Fri Dec 06 15:45:57 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
56705670

56715671

56725672

56735673

5674-
# Dependencies of `io.spine.validation:spine-validation-consumer-dependency:2.0.0-SNAPSHOT.178`
5674+
# Dependencies of `io.spine.validation:spine-validation-consumer-dependency:2.0.0-SNAPSHOT.179`
56755675

56765676
## Runtime
56775677
1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
@@ -6419,12 +6419,12 @@ This report was generated on **Mon Dec 02 12:54:49 CET 2024** using [Gradle-Lice
64196419

64206420
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
64216421

6422-
This report was generated on **Mon Dec 02 12:54:50 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
6422+
This report was generated on **Fri Dec 06 15:45:58 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
64236423

64246424

64256425

64266426

6427-
# Dependencies of `io.spine.validation:spine-validation-extensions:2.0.0-SNAPSHOT.178`
6427+
# Dependencies of `io.spine.validation:spine-validation-extensions:2.0.0-SNAPSHOT.179`
64286428

64296429
## Runtime
64306430
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3.
@@ -7321,12 +7321,12 @@ This report was generated on **Mon Dec 02 12:54:50 CET 2024** using [Gradle-Lice
73217321

73227322
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
73237323

7324-
This report was generated on **Mon Dec 02 12:54:50 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
7324+
This report was generated on **Fri Dec 06 15:45:59 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
73257325

73267326

73277327

73287328

7329-
# Dependencies of `io.spine.validation:spine-validation-runtime:2.0.0-SNAPSHOT.178`
7329+
# Dependencies of `io.spine.validation:spine-validation-runtime:2.0.0-SNAPSHOT.179`
73307330

73317331
## Runtime
73327332
1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
@@ -8077,12 +8077,12 @@ This report was generated on **Mon Dec 02 12:54:50 CET 2024** using [Gradle-Lice
80778077

80788078
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
80798079

8080-
This report was generated on **Mon Dec 02 12:54:51 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
8080+
This report was generated on **Fri Dec 06 15:45:59 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
80818081

80828082

80838083

80848084

8085-
# Dependencies of `io.spine.validation:spine-validation-validating:2.0.0-SNAPSHOT.178`
8085+
# Dependencies of `io.spine.validation:spine-validation-validating:2.0.0-SNAPSHOT.179`
80868086

80878087
## Runtime
80888088
1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
@@ -8837,12 +8837,12 @@ This report was generated on **Mon Dec 02 12:54:51 CET 2024** using [Gradle-Lice
88378837

88388838
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
88398839

8840-
This report was generated on **Mon Dec 02 12:54:51 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
8840+
This report was generated on **Fri Dec 06 15:45:59 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
88418841

88428842

88438843

88448844

8845-
# Dependencies of `io.spine.validation:spine-validation-vanilla:2.0.0-SNAPSHOT.178`
8845+
# Dependencies of `io.spine.validation:spine-validation-vanilla:2.0.0-SNAPSHOT.179`
88468846

88478847
## Runtime
88488848
1. **Group** : com.google.code.findbugs. **Name** : jsr305. **Version** : 3.0.2.
@@ -9588,12 +9588,12 @@ This report was generated on **Mon Dec 02 12:54:51 CET 2024** using [Gradle-Lice
95889588

95899589
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
95909590

9591-
This report was generated on **Mon Dec 02 12:54:52 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
9591+
This report was generated on **Fri Dec 06 15:46:00 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
95929592

95939593

95949594

95959595

9596-
# Dependencies of `io.spine.validation:spine-validation-configuration:2.0.0-SNAPSHOT.178`
9596+
# Dependencies of `io.spine.validation:spine-validation-configuration:2.0.0-SNAPSHOT.179`
95979597

95989598
## Runtime
95999599
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3.
@@ -10466,12 +10466,12 @@ This report was generated on **Mon Dec 02 12:54:52 CET 2024** using [Gradle-Lice
1046610466

1046710467
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
1046810468

10469-
This report was generated on **Mon Dec 02 12:54:52 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
10469+
This report was generated on **Fri Dec 06 15:46:01 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
1047010470

1047110471

1047210472

1047310473

10474-
# Dependencies of `io.spine.validation:spine-validation-context:2.0.0-SNAPSHOT.178`
10474+
# Dependencies of `io.spine.validation:spine-validation-context:2.0.0-SNAPSHOT.179`
1047510475

1047610476
## Runtime
1047710477
1. **Group** : com.fasterxml.jackson. **Name** : jackson-bom. **Version** : 2.15.3.
@@ -11344,4 +11344,4 @@ This report was generated on **Mon Dec 02 12:54:52 CET 2024** using [Gradle-Lice
1134411344

1134511345
The dependencies distributed under several licenses, are used according their commercial-use-friendly license.
1134611346

11347-
This report was generated on **Mon Dec 02 12:54:53 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).
11347+
This report was generated on **Fri Dec 06 15:46:01 CET 2024** using [Gradle-License-Report plugin](https://github.com/jk1/Gradle-License-Report) by Evgeny Naumenko, licensed under [Apache 2.0 License](https://github.com/jk1/Gradle-License-Report/blob/master/LICENSE).

java-runtime/src/main/kotlin/io/spine/validate/Workaround.kt

-19
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,11 @@
2626

2727
package io.spine.validate
2828

29-
import com.google.protobuf.DescriptorProtos.FieldOptions
3029
import com.google.protobuf.DescriptorProtos.MessageOptions
31-
import com.google.protobuf.Descriptors.FieldDescriptor
3230
import com.google.protobuf.GeneratedMessage.GeneratedExtension
3331
import com.google.protobuf.Message
3432
import io.spine.base.CommandMessage
3533
import io.spine.base.EntityState
36-
import io.spine.option.OptionsProto.goes
3734
import io.spine.option.OptionsProto.requiredField
3835

3936
/**
@@ -46,24 +43,8 @@ private const val ABOUT = ""
4643
internal fun Message.requiresRuntimeValidation(): Boolean =
4744
(this is EntityState<*>)
4845
|| (this is CommandMessage)
49-
|| hasFieldOption(goes)
5046
|| hasTypeOption(requiredField)
5147

52-
private fun Message.hasFieldOption(option: GeneratedExtension<FieldOptions, *>): Boolean {
53-
val fieldDescriptors = descriptorForType.fields
54-
return fieldDescriptors.any {
55-
it.hasOption(option)
56-
}
57-
}
58-
59-
private fun FieldDescriptor.hasOption(option: GeneratedExtension<FieldOptions, *>): Boolean =
60-
when (val value = options.getExtension(option)) {
61-
is Boolean -> value
62-
is String -> value.isNotEmpty()
63-
is Message -> !option.messageDefaultInstance.equals(value)
64-
else -> false
65-
}
66-
6748
private fun Message.hasTypeOption(option: GeneratedExtension<MessageOptions, *>): Boolean {
6849
val result = descriptorForType.options.hasExtension(option)
6950
return result

java-tests/runtime/src/test/kotlin/io/spine/validate/option/GoesSpec.kt

-105
This file was deleted.

0 commit comments

Comments
 (0)