Visitar URL original
[ggj][ast][engx] fix: validate non-null elements for IfStatement (#456) · googleapis/sdk-platform-java@4fe7d3f · GitHub
Skip to content
This repository was archived by the owner on Oct 29, 2026. It is now read-only.

Commit 4fe7d3f

Browse files
authored
[ggj][ast][engx] fix: validate non-null elements for IfStatement (#456)
* fix: swap assertEquals args in JavaWriterVisitorTest to match (expected, actusl) order * fix: swap assertEquals args in ImportWriterVisitorTest to match (expected, actusl) order * fix: add node validator to refactor/centralize null element checks * fix: validate non-null elements for IfStatement
1 parent 7bfe9d5 commit 4fe7d3f

2 files changed

Lines changed: 12 additions & 0 deletions

File tree

‎src/main/java/com/google/api/generator/engine/ast/IfStatement.java‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@ public Builder addElseIf(Expr conditionExpr, List<Statement> body) {
6363

6464
public IfStatement build() {
6565
IfStatement ifStatement = autoBuild();
66+
NodeValidator.checkNoNullElements(ifStatement.body(), "body", "if-statement");
67+
NodeValidator.checkNoNullElements(ifStatement.elseIfs(), "else-ifs", "if-statement");
68+
NodeValidator.checkNoNullElements(ifStatement.elseBody(), "else-body", "if-statement");
69+
6670
Preconditions.checkState(
6771
ifStatement.conditionExpr().type().equals(TypeNode.BOOLEAN),
6872
"If-condition must be a boolean-typed expression");

‎src/main/java/com/google/api/generator/engine/ast/NodeValidator.java‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
import com.google.common.base.Preconditions;
1818
import java.util.Collection;
19+
import java.util.Map;
1920
import java.util.Objects;
2021

2122
public class NodeValidator {
@@ -26,4 +27,11 @@ public static void checkNoNullElements(
2627
String.format(
2728
"Found null expression in %s %s for %s", fieldTypeName, collection, nodeContextInfo));
2829
}
30+
31+
public static void checkNoNullElements(
32+
Map<?, ?> map, String fieldTypeName, String nodeContextInfo) {
33+
checkNoNullElements(map.keySet(), String.format("key of %s", fieldTypeName), nodeContextInfo);
34+
checkNoNullElements(
35+
map.values(), String.format("values of %s", fieldTypeName), nodeContextInfo);
36+
}
2937
}

0 commit comments

Comments
 (0)