package org.gsonformat.intellij.common; import org.gsonformat.intellij.config.Constant; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * Created by dim on 2015/8/21. */ public class CheckUtil { private static CheckUtil sCheckUtil; private List<String> keyWordList = new ArrayList<String>(); private List<String> simpleTypeList = new ArrayList<String>(); private Set<String> declareClassNameList = new HashSet(); private Set<String> declareFieldNameList = new HashSet(); private static Pattern sPattern = Pattern.compile("^\\d+"); private CheckUtil() { keyWordList.add("abstract"); keyWordList.add("assert"); keyWordList.add("boolean"); keyWordList.add("break"); keyWordList.add("byte"); keyWordList.add("case"); keyWordList.add("catch"); keyWordList.add("char"); keyWordList.add("class"); keyWordList.add("const"); keyWordList.add("continue"); keyWordList.add("default"); keyWordList.add("do"); keyWordList.add("double"); keyWordList.add("else"); keyWordList.add("enum"); keyWordList.add("extends"); keyWordList.add("final"); keyWordList.add("finally"); keyWordList.add("float"); keyWordList.add("for"); keyWordList.add("goto"); keyWordList.add("if"); keyWordList.add("implements"); keyWordList.add("import"); keyWordList.add("instanceof"); keyWordList.add("int"); keyWordList.add("interface"); keyWordList.add("long"); keyWordList.add("native"); keyWordList.add("new"); keyWordList.add("package"); keyWordList.add("private"); keyWordList.add("protected"); keyWordList.add("public"); keyWordList.add("return"); keyWordList.add("strictfp"); keyWordList.add("short"); keyWordList.add("static"); keyWordList.add("super"); keyWordList.add("switch"); keyWordList.add("synchronized"); keyWordList.add("this"); keyWordList.add("throw"); keyWordList.add("throws"); keyWordList.add("transient"); keyWordList.add("try"); keyWordList.add("abstract"); keyWordList.add("void"); keyWordList.add("volatile"); keyWordList.add("while"); simpleTypeList.add("String"); simpleTypeList.add("boolean"); simpleTypeList.add("Boolean"); simpleTypeList.add("int"); simpleTypeList.add("Integer"); simpleTypeList.add("Float"); simpleTypeList.add("float"); simpleTypeList.add("Double"); simpleTypeList.add("double"); simpleTypeList.add("Long"); simpleTypeList.add("long"); } public static CheckUtil getInstant() { if (sCheckUtil == null) { sCheckUtil = new CheckUtil(); } return sCheckUtil; } public void cleanDeclareData() { declareClassNameList.clear(); declareFieldNameList.clear(); } public boolean containsDeclareClassName(String name) { return declareClassNameList.contains(name); } public void addDeclareClassName(String name) { declareClassNameList.add(name.replace(".java", "")); } public void removeDeclareClassName(String name) { declareClassNameList.remove(name); } public boolean containsDeclareFieldName(String name) { return declareFieldNameList.contains(name); } public void addDeclareFieldName(String name) { declareFieldNameList.add(name); } public void removeDeclareFieldName(String name) { declareFieldNameList.remove(name); } public boolean checkSimpleType(String s) { return simpleTypeList.contains(s); } public boolean checkKeyWord(String key) { return keyWordList.contains(key); } public String handleArg(String arg) { arg = arg.replaceAll("-", ""); Matcher matcher = sPattern.matcher(arg); if (matcher.find()) { return Constant.DEFAULT_PREFIX + arg; } else { if (CheckUtil.getInstant().checkKeyWord(arg)) { return arg + "X"; } return arg; } } }