Home | History | Annotate | Download | only in validator
      1 package com.github.javaparser.ast.validator;
      2 
      3 import com.github.javaparser.ast.expr.Name;
      4 import com.github.javaparser.ast.expr.SimpleName;
      5 
      6 import 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  */
     12 public 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