/* * Copyright 1999-2012 Alibaba Group. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * Project: fastjson * * File Created at 2010-12-2 * * Copyright 1999-2100 Alibaba.com Corporation Limited. * All rights reserved. * * This software is the confidential and proprietary information of * Alibaba Company. ("Confidential Information"). You shall not * disclose such Confidential Information and shall use it only in * accordance with the terms of the license agreement you entered into * with Alibaba.com. */ package com.alibaba.cobar.parser.recognizer.mysql.lexer; import java.util.HashMap; import java.util.Map; import com.alibaba.cobar.parser.recognizer.mysql.MySQLToken; /** * @author <a href="mailto:shuo.qius@alibaba-inc.com">QIU Shuo</a> */ class MySQLKeywords { public static final MySQLKeywords DEFAULT_KEYWORDS = new MySQLKeywords(); private final Map<String, MySQLToken> keywords = new HashMap<String, MySQLToken>(230); private MySQLKeywords() { for (MySQLToken type : MySQLToken.class.getEnumConstants()) { String name = type.name(); if (name.startsWith("KW_")) { String kw = name.substring("KW_".length()); keywords.put(kw, type); } } keywords.put("NULL", MySQLToken.LITERAL_NULL); keywords.put("FALSE", MySQLToken.LITERAL_BOOL_FALSE); keywords.put("TRUE", MySQLToken.LITERAL_BOOL_TRUE); } /** * @param keyUpperCase must be uppercase * @return <code>KeyWord</code> or {@link MySQLToken#LITERAL_NULL NULL} or * {@link MySQLToken#LITERAL_BOOL_FALSE FALSE} or * {@link MySQLToken#LITERAL_BOOL_TRUE TRUE} */ public MySQLToken getKeyword(String keyUpperCase) { return keywords.get(keyUpperCase); } }