1package com.github.javaparser.ast.validator;
2
3import com.github.javaparser.ast.expr.Name;
4import com.github.javaparser.ast.expr.SimpleName;
5
6import static com.github.javaparser.utils.CodeGenerationUtils.f;
7
8/**
9 * Validates that identifiers are not keywords - this for the few keywords that the parser
10 * accepts because they were added after Java 1.0.
11 */
12public class ReservedKeywordValidator extends VisitorValidator {
13    private final String keyword;
14    private final String error;
15
16    public ReservedKeywordValidator(String keyword) {
17        this.keyword = keyword;
18        error = f("'%s' cannot be used as an identifier as it is a keyword.", keyword);
19    }
20
21    @Override
22    public void visit(Name n, ProblemReporter arg) {
23        if (n.getIdentifier().equals(keyword)) {
24            arg.report(n, error);
25        }
26        super.visit(n, arg);
27    }
28
29    @Override
30    public void visit(SimpleName n, ProblemReporter arg) {
31        if (n.getIdentifier().equals(keyword)) {
32            arg.report(n, error);
33        }
34        super.visit(n, arg);
35    }
36}
37