001/*
002 * ModeShape (http://www.modeshape.org)
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 *       http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016package org.modeshape.sequencer.ddl.dialect.derby;
017
018import static org.modeshape.sequencer.ddl.dialect.derby.DerbyDdlLexicon.Namespace.PREFIX;
019import org.modeshape.sequencer.ddl.StandardDdlLexicon;
020
021/**
022 *
023 */
024public class DerbyDdlLexicon extends StandardDdlLexicon {
025
026    public static class Namespace {
027        public static final String URI = "http://www.modeshape.org/ddl/derby/1.0";
028        public static final String PREFIX = "derbyddl";
029    }
030
031    /*
032     * mixin types
033     * 
034     * SQL-92 Spec
035     * 
036     *      CREATE SCHEMA
037     *      CREATE DOMAIN
038     *      CREATE [ { GLOBAL | LOCAL } TEMPORARY ] TABLE
039     *      CREATE VIEW         
040     *      CREATE ASSERTION 
041     *      CREATE CHARACTER SET 
042     *      CREATE COLLATION 
043     *      CREATE TRANSLATION
044     * ===> CREATE FUNCTION
045     * ===> CREATE INDEX
046     * ===> CREATE PROCEDURE
047     * ===> CREATE ROLE
048     * ===> CREATE SYNONYM
049     * ===> CREATE TRIGGER
050     * 
051     *      ALTER TABLE
052     *
053     * ===> GRANT
054     * ===> LOCK TABLE
055     * ===> RENAME TABLE
056     * ===> RENAME INDEX
057     * ===> SET
058     * ===> DECLARE GLOBAL TEMPORARY TABLE
059     */
060
061    public static final String TYPE_CREATE_FUNCTION_STATEMENT = PREFIX + ":createFunctionStatement";
062    public static final String TYPE_CREATE_INDEX_STATEMENT = PREFIX + ":createIndexStatement";
063    public static final String TYPE_CREATE_PROCEDURE_STATEMENT = PREFIX + ":createProcedureStatement";
064    public static final String TYPE_CREATE_ROLE_STATEMENT = PREFIX + ":createRoleStatement";
065    public static final String TYPE_CREATE_SYNONYM_STATEMENT = PREFIX + ":createSynonymStatement";
066    public static final String TYPE_CREATE_TRIGGER_STATEMENT = PREFIX + ":createTriggerStatement";
067    public static final String TYPE_LOCK_TABLE_STATEMENT = PREFIX + ":lockTableStatement";
068    public static final String TYPE_RENAME_TABLE_STATEMENT = PREFIX + ":renameTableStatement";
069    public static final String TYPE_RENAME_INDEX_STATEMENT = PREFIX + ":renameIndexStatement";
070    public static final String TYPE_DECLARE_GLOBAL_TEMPORARY_TABLE_STATEMENT = PREFIX + ":declareGlobalTemporaryTableStatement";
071
072    public static final String TYPE_DROP_FUNCTION_STATEMENT = PREFIX + ":dropFunctionStatement";
073    public static final String TYPE_DROP_INDEX_STATEMENT = PREFIX + ":dropIndexStatement";
074    public static final String TYPE_DROP_PROCEDURE_STATEMENT = PREFIX + ":dropProcedureStatement";
075    public static final String TYPE_DROP_ROLE_STATEMENT = PREFIX + ":dropRoleStatement";
076    public static final String TYPE_DROP_SYNONYM_STATEMENT = PREFIX + ":dropSynonymStatement";
077    public static final String TYPE_DROP_TRIGGER_STATEMENT = PREFIX + ":dropTriggerStatement";
078
079    public static final String TYPE_FUNCTION_PARAMETER = PREFIX + ":functionParameter";
080    public static final String TYPE_INDEX_COLUMN_REFERENCE = PREFIX + ":indexColumnReference";
081    public static final String TYPE_GRANT_ON_FUNCTION_STATEMENT = PREFIX + ":grantOnFunctionStatement";
082    public static final String TYPE_GRANT_ON_PROCEDURE_STATEMENT = PREFIX + ":grantOnProcedureStatement";
083    public static final String TYPE_GRANT_ROLES_STATEMENT = PREFIX + ":grantRolesStatement";
084
085    public static final String UNIQUE_INDEX = PREFIX + ":unique";
086    public static final String ORDER = PREFIX + ":order";
087    public static final String TABLE_NAME = PREFIX + ":tableName";
088    public static final String ROLE_NAME = PREFIX + ":roleName";
089    public static final String IS_TABLE_TYPE = PREFIX + ":isTableType";
090    public static final String PARAMETER_STYLE = PREFIX + ":parameterStyle";
091}