001package gudusoft.gsqlparser.util; 002 003import gudusoft.gsqlparser.EDbVendor; 004import gudusoft.gsqlparser.nodes.TObjectName; 005 006import java.util.List; 007 008public class KeywordUtil { 009 010 public static boolean isKeyword(TObjectName object) { 011 if (object == null || object.getGsqlparser() == null) 012 return false; 013 try { 014 EDbVendor vendor = object.getGsqlparser().getDbVendor(); 015 016 List<String> versions = keywordChecker.getAvailableDbVersions(vendor); 017 if (versions != null && versions.size() > 0) { 018 for (int i = 0; i < versions.size(); i++) { 019 List<String> segments = SQLUtil.parseNames(object.toString()); 020 boolean result = keywordChecker.isKeyword(segments.get(segments.size() - 1), 021 object.getGsqlparser().getDbVendor(), versions.get(i), false); 022 if (result) { 023 return result; 024 } 025 } 026 } 027 } catch (Exception e) { 028 } 029 030 return false; 031 } 032 033 public static boolean isKeyword(String text, EDbVendor vendor) { 034 try { 035 List<String> versions = keywordChecker.getAvailableDbVersions(vendor); 036 if (versions != null && versions.size() > 0) { 037 for (int i = 0; i < versions.size(); i++) { 038 List<String> segments = SQLUtil.parseNames(text); 039 boolean result = keywordChecker.isKeyword(segments.get(segments.size() - 1), 040 vendor, versions.get(i), false); 041 if (result) { 042 return result; 043 } 044 } 045 } 046 } catch (Exception e) { 047 } 048 return false; 049 } 050 051 public static boolean isKeyword(String text, EDbVendor vendor, boolean reservedOnly) { 052 try { 053 List<String> versions = keywordChecker.getAvailableDbVersions(vendor); 054 if (versions != null && versions.size() > 0) { 055 for (int i = 0; i < versions.size(); i++) { 056 List<String> segments = SQLUtil.parseNames(text); 057 boolean result = keywordChecker.isKeyword(segments.get(segments.size() - 1), 058 vendor, versions.get(i), reservedOnly); 059 if (result) { 060 return result; 061 } 062 } 063 } 064 } catch (Exception e) { 065 } 066 return false; 067 } 068 069 public static boolean isLatestVersionKeyword(String text, EDbVendor vendor, boolean reservedOnly) { 070 try { 071 String latestVersion = keywordChecker.getDbLatestVersion(vendor); 072 if (latestVersion != null) { 073 List<String> segments = SQLUtil.parseNames(text); 074 boolean result = keywordChecker.isKeyword(segments.get(segments.size() - 1), 075 vendor, latestVersion, reservedOnly); 076 if (result) { 077 return result; 078 } 079 } 080 } catch (Exception e) { 081 } 082 return false; 083 } 084 085 public static void main(String[] args) { 086 for(EDbVendor vendor: EDbVendor.values()) { 087 System.out.println(vendor.name()+": "+ keywordChecker.getDbLatestVersion(vendor)); 088 } 089 } 090}