diff options
Diffstat (limited to 'javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java9Validator.java')
-rw-r--r-- | javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java9Validator.java | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java9Validator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java9Validator.java new file mode 100644 index 000000000..2175c9af3 --- /dev/null +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/validator/Java9Validator.java @@ -0,0 +1,30 @@ +package com.github.javaparser.ast.validator; + +import com.github.javaparser.ast.expr.Expression; +import com.github.javaparser.ast.expr.VariableDeclarationExpr; +import com.github.javaparser.ast.stmt.TryStmt; +import com.github.javaparser.ast.validator.chunks.ModifierValidator; +import com.github.javaparser.ast.validator.chunks.UnderscoreKeywordValidator; + +/** + * This validator validates according to Java 9 syntax rules. + */ +public class Java9Validator extends Java8Validator { + protected final Validator underscoreKeywordValidator = new UnderscoreKeywordValidator(); + protected final Validator modifiers = new ModifierValidator(true, true, true); + protected final SingleNodeTypeValidator<TryStmt> tryWithResources = new SingleNodeTypeValidator<>(TryStmt.class, (n, reporter) -> { + if (n.getCatchClauses().isEmpty() + && n.getResources().isEmpty() + && !n.getFinallyBlock().isPresent()) { + reporter.report(n, "Try has no finally, no catch, and no resources."); + } + }); + + public Java9Validator() { + super(); + add(underscoreKeywordValidator); + remove(noModules); + replace(modifiersWithoutPrivateInterfaceMethods, modifiers); + replace(tryWithLimitedResources, tryWithResources); + } +} |