rename initial
[idea/javafx-plugin.git] / src / org / jetbrains / javafx / refactoring / rename / JavaFxNamesValidator.java
1 package org.jetbrains.javafx.refactoring.rename;
2
3 import com.intellij.lang.refactoring.NamesValidator;
4 import com.intellij.lexer.Lexer;
5 import com.intellij.openapi.project.Project;
6 import org.jetbrains.javafx.lang.lexer.JavaFxFlexLexer;
7 import org.jetbrains.javafx.lang.lexer.JavaFxTokenTypes;
8
9 /**
10  * Created by IntelliJ IDEA.
11  *
12  * @author: Alexey.Ivanov
13  */
14 public class JavaFxNamesValidator implements NamesValidator {
15   private static final Lexer ourLexer = new JavaFxFlexLexer();
16
17   @Override
18   public synchronized boolean isKeyword(final String name, final Project project) {
19     try {
20       ourLexer.start(name);
21       if (!JavaFxTokenTypes.RESERVED_WORDS.contains(ourLexer.getTokenType())) {
22         return false;
23       }
24       ourLexer.advance();
25       return (ourLexer.getTokenType() == null);
26     }
27     catch (StringIndexOutOfBoundsException e) {
28       return false;
29     }
30   }
31
32   @Override
33   public synchronized boolean isIdentifier(final String name, final Project project) {
34     try {
35       ourLexer.start(name);
36       if (!JavaFxTokenTypes.NAME_ALL.contains(ourLexer.getTokenType())) {
37         return false;
38       }
39       ourLexer.advance();
40       return (ourLexer.getTokenType() == null);
41     }
42     catch (StringIndexOutOfBoundsException e) {
43       return false;
44     }
45   }
46 }