Skip to content

Commit a554ada

Browse files
committed
remove unneeded uses of Violation interface when RuleViolation will suffice. RuleViolation is the only implementation of Violation; the interface should be removed entirely.
1 parent 11c77c1 commit a554ada

4 files changed

Lines changed: 19 additions & 31 deletions

File tree

conformance/src/test/java/build/buf/protovalidate/NativeRulesParityTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import static org.assertj.core.api.Assertions.assertThat;
1818

1919
import build.buf.protovalidate.exceptions.ValidationException;
20+
import build.buf.validate.Violation;
2021
import build.buf.validate.conformance.cases.AnEnum;
2122
import build.buf.validate.conformance.cases.BoolConstTrue;
2223
import build.buf.validate.conformance.cases.BytesContains;
@@ -133,7 +134,7 @@ void parityForFixture(String name, Message msg) throws ValidationException {
133134
.isEqualTo(toProtoList(celResult));
134135
}
135136

136-
private static List<build.buf.validate.Violation> toProtoList(ValidationResult result) {
137-
return result.getViolations().stream().map(Violation::toProto).collect(Collectors.toList());
137+
private static List<Violation> toProtoList(ValidationResult result) {
138+
return result.getViolations().stream().map(RuleViolation::toProto).collect(Collectors.toList());
138139
}
139140
}

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@
2626
public class ValidationResult {
2727

2828
/**
29-
* violations is a list of {@link Violation} that occurred during the validations of a message.
29+
* violations is a list of {@link RuleViolation} that occurred during the validations of a
30+
* message.
3031
*/
31-
private final List<Violation> violations;
32+
private final List<RuleViolation> violations;
3233

3334
/** A violation result with an empty violation list. */
3435
public static final ValidationResult EMPTY = new ValidationResult(Collections.emptyList());
@@ -38,7 +39,7 @@ public class ValidationResult {
3839
*
3940
* @param violations violation list for the result.
4041
*/
41-
public ValidationResult(List<Violation> violations) {
42+
public ValidationResult(List<RuleViolation> violations) {
4243
this.violations = violations;
4344
}
4445

@@ -56,7 +57,7 @@ public boolean isSuccess() {
5657
*
5758
* @return the violation list.
5859
*/
59-
public List<Violation> getViolations() {
60+
public List<RuleViolation> getViolations() {
6061
return violations;
6162
}
6263

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

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
import build.buf.protovalidate.exceptions.ValidationException;
1919
import com.google.protobuf.Descriptors.Descriptor;
2020
import com.google.protobuf.Message;
21-
import java.util.ArrayList;
2221
import java.util.List;
22+
import java.util.stream.Collectors;
2323

2424
final class ValidatorImpl implements Validator {
2525
/** evaluatorBuilder is the builder used to construct the evaluator for a given message. */
@@ -54,10 +54,7 @@ public ValidationResult validate(Message msg) throws ValidationException {
5454
if (result.isEmpty()) {
5555
return ValidationResult.EMPTY;
5656
}
57-
List<Violation> violations = new ArrayList<>(result.size());
58-
for (RuleViolation.Builder builder : result) {
59-
violations.add(builder.build());
60-
}
61-
return new ValidationResult(violations);
57+
return new ValidationResult(
58+
result.stream().map(RuleViolation.Builder::build).collect(Collectors.toList()));
6259
}
6360
}

src/test/java/build/buf/protovalidate/ValidationResultTest.java

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,16 @@
1818

1919
import build.buf.validate.FieldPathElement;
2020
import java.util.ArrayList;
21+
import java.util.Arrays;
22+
import java.util.Collections;
2123
import java.util.List;
2224
import org.junit.jupiter.api.Test;
2325

2426
class ValidationResultTest {
2527
@Test
2628
void testToStringNoViolations() {
2729

28-
List<Violation> violations = new ArrayList<>();
30+
List<RuleViolation> violations = new ArrayList<>();
2931
ValidationResult result = new ValidationResult(violations);
3032

3133
assertThat(result.toString()).isEqualTo("Validation OK");
@@ -43,9 +45,7 @@ void testToStringSingleViolation() {
4345
.setMessage("must equal 42")
4446
.addFirstFieldPathElement(elem)
4547
.build();
46-
List<Violation> violations = new ArrayList<>();
47-
violations.add(violation);
48-
ValidationResult result = new ValidationResult(violations);
48+
ValidationResult result = new ValidationResult(Collections.singletonList(violation));
4949

5050
assertThat(result.toString())
5151
.isEqualTo("Validation error:\n - test_field_name: must equal 42 [int32.const]");
@@ -69,10 +69,7 @@ void testToStringMultipleViolations() {
6969
.setMessage("value is required")
7070
.addFirstFieldPathElement(elem)
7171
.build();
72-
List<Violation> violations = new ArrayList<>();
73-
violations.add(violation1);
74-
violations.add(violation2);
75-
ValidationResult result = new ValidationResult(violations);
72+
ValidationResult result = new ValidationResult(Arrays.asList(violation1, violation2));
7673

7774
assertThat(result.toString())
7875
.isEqualTo(
@@ -86,20 +83,14 @@ void testToStringSingleViolationMultipleFieldPathElements() {
8683
FieldPathElement elem2 =
8784
FieldPathElement.newBuilder().setFieldNumber(5).setFieldName("nested_name").build();
8885

89-
List<FieldPathElement> elems = new ArrayList<>();
90-
elems.add(elem1);
91-
elems.add(elem2);
92-
9386
RuleViolation violation1 =
9487
RuleViolation.newBuilder()
9588
.setRuleId("int32.const")
9689
.setMessage("must equal 42")
97-
.addAllFieldPathElements(elems)
90+
.addAllFieldPathElements(Arrays.asList(elem1, elem2))
9891
.build();
9992

100-
List<Violation> violations = new ArrayList<>();
101-
violations.add(violation1);
102-
ValidationResult result = new ValidationResult(violations);
93+
ValidationResult result = new ValidationResult(Collections.singletonList(violation1));
10394

10495
assertThat(result.toString())
10596
.isEqualTo(
@@ -110,9 +101,7 @@ void testToStringSingleViolationMultipleFieldPathElements() {
110101
void testToStringSingleViolationNoFieldPathElements() {
111102
RuleViolation violation =
112103
RuleViolation.newBuilder().setRuleId("int32.const").setMessage("must equal 42").build();
113-
List<Violation> violations = new ArrayList<>();
114-
violations.add(violation);
115-
ValidationResult result = new ValidationResult(violations);
104+
ValidationResult result = new ValidationResult(Collections.singletonList(violation));
116105

117106
assertThat(result.toString()).isEqualTo("Validation error:\n - must equal 42 [int32.const]");
118107
}

0 commit comments

Comments
 (0)