Thanks to visit codestin.com
Credit goes to github.com

Skip to content

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

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

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)