Skip to content

Commit 456273e

Browse files
committed
Violation.Builder: Move required arg to constructor
1 parent 69e84df commit 456273e

File tree

7 files changed

+17
-27
lines changed

7 files changed

+17
-27
lines changed

src/main/java/build/buf/protovalidate/Violation.java

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
package build.buf.protovalidate;
1616

17-
import java.util.Objects;
1817
import javax.annotation.Nullable;
1918

2019
/**
@@ -23,16 +22,12 @@
2322
*/
2423
public class Violation {
2524
private final build.buf.validate.Violation proto;
26-
@Nullable Value fieldValue;
27-
@Nullable Value ruleValue;
2825
private final @Nullable Value fieldValue;
2926
private final @Nullable Value ruleValue;
3027

3128
/** Builds a Violation instance. */
3229
public static class Builder {
33-
@Nullable private build.buf.validate.Violation proto;
34-
@Nullable Value fieldValue;
35-
@Nullable Value ruleValue;
30+
private build.buf.validate.Violation proto;
3631
private @Nullable Value fieldValue;
3732
private @Nullable Value ruleValue;
3833

@@ -75,19 +70,22 @@ public Builder setRuleValue(@Nullable Value ruleValue) {
7570
* @return A Violation instance.
7671
*/
7772
public Violation build() {
78-
return new Violation(Objects.requireNonNull(proto), fieldValue, ruleValue);
73+
return new Violation(proto, fieldValue, ruleValue);
7974
}
8075

81-
private Builder() {}
76+
private Builder(build.buf.validate.Violation proto) {
77+
this.proto = proto;
78+
}
8279
}
8380

8481
/**
8582
* Constructs a new empty builder.
8683
*
84+
* @param proto The proto Violation to wrap.
8785
* @return A new empty builder instance.
8886
*/
89-
public static Builder newBuilder() {
90-
return new Builder();
87+
public static Builder newBuilder(build.buf.validate.Violation proto) {
88+
return new Builder(proto);
9189
}
9290

9391
private Violation(
@@ -130,6 +128,6 @@ public build.buf.validate.Violation getProto() {
130128
* @return A new {@link Builder} instance.
131129
*/
132130
public Builder toBuilder() {
133-
return new Builder().setProto(proto).setFieldValue(fieldValue).setRuleValue(ruleValue);
131+
return new Builder(proto).setFieldValue(fieldValue).setRuleValue(ruleValue);
134132
}
135133
}

src/main/java/build/buf/protovalidate/internal/evaluator/AnyEvaluator.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,7 @@ public ValidationResult evaluate(Value val, boolean failFast) throws ExecutionEx
8383
String typeURL = (String) anyValue.getField(typeURLDescriptor);
8484
if (!in.isEmpty() && !in.contains(typeURL)) {
8585
Violation violation =
86-
Violation.newBuilder()
87-
.setProto(
86+
Violation.newBuilder(
8887
build.buf.validate.Violation.newBuilder()
8988
.setRule(IN_RULE_PATH)
9089
.setConstraintId("any.in")
@@ -100,8 +99,7 @@ public ValidationResult evaluate(Value val, boolean failFast) throws ExecutionEx
10099
}
101100
if (!notIn.isEmpty() && notIn.contains(typeURL)) {
102101
Violation violation =
103-
Violation.newBuilder()
104-
.setProto(
102+
Violation.newBuilder(
105103
build.buf.validate.Violation.newBuilder()
106104
.setRule(NOT_IN_RULE_PATH)
107105
.setConstraintId("any.not_in")

src/main/java/build/buf/protovalidate/internal/evaluator/EnumEvaluator.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,7 @@ public ValidationResult evaluate(Value val, boolean failFast) throws ExecutionEx
8686
if (!values.contains(enumValue.getNumber())) {
8787
return new ValidationResult(
8888
Collections.singletonList(
89-
Violation.newBuilder()
90-
.setProto(
89+
Violation.newBuilder(
9190
build.buf.validate.Violation.newBuilder()
9291
.setRule(DEFINED_ONLY_RULE_PATH)
9392
.setConstraintId("enum.defined_only")

src/main/java/build/buf/protovalidate/internal/evaluator/FieldEvaluator.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,7 @@ public ValidationResult evaluate(Value val, boolean failFast) throws ExecutionEx
9393
if (required && !hasField) {
9494
return new ValidationResult(
9595
Collections.singletonList(
96-
Violation.newBuilder()
97-
.setProto(
96+
Violation.newBuilder(
9897
build.buf.validate.Violation.newBuilder()
9998
.setField(
10099
FieldPath.newBuilder()

src/main/java/build/buf/protovalidate/internal/evaluator/OneofEvaluator.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,7 @@ public ValidationResult evaluate(Value val, boolean failFast) throws ExecutionEx
5757
if (required && (message.getOneofFieldDescriptor(descriptor) == null)) {
5858
return new ValidationResult(
5959
Collections.singletonList(
60-
Violation.newBuilder()
61-
.setProto(
60+
Violation.newBuilder(
6261
build.buf.validate.Violation.newBuilder()
6362
.setField(
6463
FieldPath.newBuilder()

src/main/java/build/buf/protovalidate/internal/evaluator/UnknownDescriptorEvaluator.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,7 @@ public boolean tautology() {
4343
public ValidationResult evaluate(Value val, boolean failFast) throws ExecutionException {
4444
return new ValidationResult(
4545
Collections.singletonList(
46-
Violation.newBuilder()
47-
.setProto(
46+
Violation.newBuilder(
4847
build.buf.validate.Violation.newBuilder()
4948
.setMessage("No evaluator available for " + desc.getFullName())
5049
.build())

src/main/java/build/buf/protovalidate/internal/expression/CompiledProgram.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,7 @@ public Violation eval(Value fieldValue, Variable bindings) throws ExecutionExcep
8484
if (rulePath != null) {
8585
violation.setRule(rulePath);
8686
}
87-
return Violation.newBuilder()
88-
.setProto(violation.build())
87+
return Violation.newBuilder(violation.build())
8988
.setFieldValue(fieldValue)
9089
.setRuleValue(ruleValue)
9190
.build();
@@ -100,8 +99,7 @@ public Violation eval(Value fieldValue, Variable bindings) throws ExecutionExcep
10099
if (rulePath != null) {
101100
violation.setRule(rulePath);
102101
}
103-
return Violation.newBuilder()
104-
.setProto(violation.build())
102+
return Violation.newBuilder(violation.build())
105103
.setFieldValue(fieldValue)
106104
.setRuleValue(ruleValue)
107105
.build();

0 commit comments

Comments
 (0)