View Javadoc

1   /*
2    * ModeShape (http://www.modeshape.org)
3    * See the COPYRIGHT.txt file distributed with this work for information
4    * regarding copyright ownership.  Some portions may be licensed
5    * to Red Hat, Inc. under one or more contributor license agreements.
6    * See the AUTHORS.txt file in the distribution for a full listing of 
7    * individual contributors.
8    *
9    * ModeShape is free software. Unless otherwise indicated, all code in ModeShape
10   * is licensed to you under the terms of the GNU Lesser General Public License as
11   * published by the Free Software Foundation; either version 2.1 of
12   * the License, or (at your option) any later version.
13   * 
14   * ModeShape is distributed in the hope that it will be useful,
15   * but WITHOUT ANY WARRANTY; without even the implied warranty of
16   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17   * Lesser General Public License for more details.
18   *
19   * You should have received a copy of the GNU Lesser General Public
20   * License along with this software; if not, write to the Free
21   * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
22   * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
23   */
24  package org.modeshape.sequencer.ddl;
25  
26  import org.modeshape.graph.property.Name;
27  import org.modeshape.graph.property.basic.BasicName;
28  
29  /**
30   * Lexicon for DDL concepts.
31   */
32  public class StandardDdlLexicon {
33  
34      public static class Namespace {
35          public static final String URI = "http://www.modeshape.org/ddl/1.0";
36          public static final String PREFIX = "ddl";
37      }
38  
39      public static final Name PARSER_ID = new BasicName(Namespace.URI, "parserId");
40  
41      public static final Name STATEMENTS_CONTAINER = new BasicName(Namespace.URI, "statements");
42      /*
43       * mixin types
44       * 
45       * SQL-92 Spec
46       * 
47       * 		CREATE SCHEMA
48       *		CREATE DOMAIN
49       * 		CREATE [ { GLOBAL | LOCAL } TEMPORARY ] TABLE
50       *		CREATE VIEW 		
51       *		CREATE ASSERTION 
52       *		CREATE CHARACTER SET 
53       *		CREATE COLLATION 
54       *		CREATE TRANSLATION
55       *
56       *		ALTER TABLE
57       */
58  
59      public static final Name TYPE_MISSING_TERMINATOR = new BasicName(Namespace.URI, "missingTerminator");
60      public static final Name TYPE_UNKNOWN_STATEMENT = new BasicName(Namespace.URI, "unknownStatement");
61  
62      public static final Name TYPE_OPERATION = new BasicName(Namespace.URI, "operation");
63      public static final Name TYPE_OPERAND = new BasicName(Namespace.URI, "operand");
64      public static final Name TYPE_STATEMENT = new BasicName(Namespace.URI, "statement");
65  
66      public static final Name TYPE_CREATEABLE = new BasicName(Namespace.URI, "creatable");
67      public static final Name TYPE_ALTERABLE = new BasicName(Namespace.URI, "alterable");
68      public static final Name TYPE_DROPPABLE = new BasicName(Namespace.URI, "droppable");
69      public static final Name TYPE_INSERTABLE = new BasicName(Namespace.URI, "insertable");
70      public static final Name TYPE_SETTABLE = new BasicName(Namespace.URI, "settable");
71      public static final Name TYPE_GRANTABLE = new BasicName(Namespace.URI, "grantable");
72      public static final Name TYPE_REVOKABLE = new BasicName(Namespace.URI, "revokable");
73  
74      public static final Name TYPE_SCHEMA_OPERAND = new BasicName(Namespace.URI, "schemaOperand");
75      public static final Name TYPE_TABLE_OPERAND = new BasicName(Namespace.URI, "tableOperand");
76      public static final Name TYPE_DOMAIN_OPERAND = new BasicName(Namespace.URI, "domainOperand");
77      public static final Name TYPE_VIEW_OPERAND = new BasicName(Namespace.URI, "viewOperand");
78      public static final Name TYPE_ASSERTION_OPERAND = new BasicName(Namespace.URI, "assertionOperand");
79      public static final Name TYPE_CHARACTER_SET_OPERAND = new BasicName(Namespace.URI, "characterSetOperand");
80      public static final Name TYPE_COLLATION_OPERAND = new BasicName(Namespace.URI, "collationOperand");
81      public static final Name TYPE_TRANSLATION_OPERAND = new BasicName(Namespace.URI, "translationOperand");
82      public static final Name TYPE_COLUMN_OPERAND = new BasicName(Namespace.URI, "columnOperand");
83      public static final Name TYPE_TABLE_CONSTRAINT_OPERAND = new BasicName(Namespace.URI, "tableConstraintOperand");
84      public static final Name TYPE_REFERENCE_OPERAND = new BasicName(Namespace.URI, "referenceOperand");
85  
86      public static final Name TYPE_CREATE_TABLE_STATEMENT = new BasicName(Namespace.URI, "createTableStatement");
87      public static final Name TYPE_CREATE_SCHEMA_STATEMENT = new BasicName(Namespace.URI, "createSchemaStatement");
88      public static final Name TYPE_CREATE_VIEW_STATEMENT = new BasicName(Namespace.URI, "createViewStatement");
89      public static final Name TYPE_CREATE_DOMAIN_STATEMENT = new BasicName(Namespace.URI, "createDomainStatement");
90      public static final Name TYPE_CREATE_ASSERTION_STATEMENT = new BasicName(Namespace.URI, "createAssertionStatement");
91      public static final Name TYPE_CREATE_CHARACTER_SET_STATEMENT = new BasicName(Namespace.URI, "createCharacterSetStatement");
92      public static final Name TYPE_CREATE_COLLATION_STATEMENT = new BasicName(Namespace.URI, "createCollationStatement");
93      public static final Name TYPE_CREATE_TRANSLATION_STATEMENT = new BasicName(Namespace.URI, "createTranslationStatement");
94  
95      public static final Name TYPE_ALTER_TABLE_STATEMENT = new BasicName(Namespace.URI, "alterTableStatement");
96      public static final Name TYPE_ALTER_DOMAIN_STATEMENT = new BasicName(Namespace.URI, "alterDomainStatement");
97      public static final Name TYPE_GRANT_STATEMENT = new BasicName(Namespace.URI, "grantStatement");
98      public static final Name TYPE_GRANT_ON_TABLE_STATEMENT = new BasicName(Namespace.URI, "grantOnTableStatement");
99      public static final Name TYPE_GRANT_ON_DOMAIN_STATEMENT = new BasicName(Namespace.URI, "grantOnDomainStatement");
100     public static final Name TYPE_GRANT_ON_COLLATION_STATEMENT = new BasicName(Namespace.URI, "grantOnCollationStatement");
101     public static final Name TYPE_GRANT_ON_CHARACTER_SET_STATEMENT = new BasicName(Namespace.URI, "grantOnCharacterSetStatement");
102     public static final Name TYPE_GRANT_ON_TRANSLATION_STATEMENT = new BasicName(Namespace.URI, "grantOnTranslationStatement");
103     public static final Name TYPE_REVOKE_STATEMENT = new BasicName(Namespace.URI, "revokeStatement");
104     public static final Name TYPE_REVOKE_ON_TABLE_STATEMENT = new BasicName(Namespace.URI, "revokeOnTableStatement");
105     public static final Name TYPE_REVOKE_ON_DOMAIN_STATEMENT = new BasicName(Namespace.URI, "revokeOnDomainStatement");
106     public static final Name TYPE_REVOKE_ON_COLLATION_STATEMENT = new BasicName(Namespace.URI, "revokeOnCollationStatement");
107     public static final Name TYPE_REVOKE_ON_CHARACTER_SET_STATEMENT = new BasicName(Namespace.URI,
108                                                                                     "revokeOnCharacterSetStatement");
109     public static final Name TYPE_REVOKE_ON_TRANSLATION_STATEMENT = new BasicName(Namespace.URI, "revokeOnTranslationStatement");
110     public static final Name TYPE_SET_STATEMENT = new BasicName(Namespace.URI, "setStatement");
111     public static final Name TYPE_INSERT_STATEMENT = new BasicName(Namespace.URI, "insertStatement");
112 
113     public static final Name TYPE_DROP_SCHEMA_STATEMENT = new BasicName(Namespace.URI, "dropSchemaStatement");
114     public static final Name TYPE_DROP_TABLE_STATEMENT = new BasicName(Namespace.URI, "dropTableStatement");
115     public static final Name TYPE_DROP_VIEW_STATEMENT = new BasicName(Namespace.URI, "dropViewStatement");
116     public static final Name TYPE_DROP_DOMAIN_STATEMENT = new BasicName(Namespace.URI, "dropDomainStatement");
117     public static final Name TYPE_DROP_CHARACTER_SET_STATEMENT = new BasicName(Namespace.URI, "dropCharacterSetStatement");
118     public static final Name TYPE_DROP_COLLATION_STATEMENT = new BasicName(Namespace.URI, "dropCollationStatement");
119     public static final Name TYPE_DROP_TRANSLATION_STATEMENT = new BasicName(Namespace.URI, "dropTranslationStatement");
120     public static final Name TYPE_DROP_ASSERTION_STATEMENT = new BasicName(Namespace.URI, "dropAssertionStatement");
121 
122     public static final Name TYPE_DROP_COLUMN_DEFINITION = new BasicName(Namespace.URI, "dropColumnDefinition");
123     public static final Name TYPE_ALTER_COLUMN_DEFINITION = new BasicName(Namespace.URI, "alterColumnDefinition");
124     public static final Name TYPE_ADD_COLUMN_DEFINITION = new BasicName(Namespace.URI, "addColumnDefinition");
125     public static final Name TYPE_DROP_TABLE_CONSTRAINT_DEFINITION = new BasicName(Namespace.URI, "dropTableConstraintDefinition");
126     public static final Name TYPE_ADD_TABLE_CONSTRAINT_DEFINITION = new BasicName(Namespace.URI, "addTableConstraintDefinition");
127 
128     public static final Name TYPE_PROBLEM = new BasicName(Namespace.URI, "problem");
129     public static final Name TYPE_COLUMN_DEFINITION = new BasicName(Namespace.URI, "columnDefinition");
130     public static final Name TYPE_COLUMN_REFERENCE = new BasicName(Namespace.URI, "columnReference");
131     public static final Name TYPE_TABLE_CONSTRAINT = new BasicName(Namespace.URI, "tableConstraint");
132     public static final Name TYPE_STATEMENT_OPTION = new BasicName(Namespace.URI, "statementOption");
133     public static final Name TYPE_TABLE_REFERENCE = new BasicName(Namespace.URI, "tableReference");
134     public static final Name TYPE_FK_COLUMN_REFERENCE = new BasicName(Namespace.URI, "fkColumnReference");
135     public static final Name TYPE_CLAUSE = new BasicName(Namespace.URI, "clause");
136 
137     public static final Name DDL_EXPRESSION = new BasicName(Namespace.URI, "expression");
138     public static final Name DDL_ORIGINAL_EXPRESSION = new BasicName(Namespace.URI, "originalExpression");
139     public static final Name DDL_START_LINE_NUMBER = new BasicName(Namespace.URI, "startLineNumber");
140     public static final Name DDL_START_COLUMN_NUMBER = new BasicName(Namespace.URI, "startColumnNumber");
141     public static final Name DDL_START_CHAR_INDEX = new BasicName(Namespace.URI, "startCharIndex");
142     // public static final Name DDL_LENGTH = new BasicName(Namespace.URI, "length");
143 
144     /*
145      * node property names
146      */
147     public static final Name NAME = new BasicName(Namespace.URI, "name");
148     public static final Name OPTION = new BasicName(Namespace.URI, "option");
149     public static final Name TYPE = new BasicName(Namespace.URI, "type");
150     public static final Name NEW_NAME = new BasicName(Namespace.URI, "newName");
151     public static final Name SQL = new BasicName(Namespace.URI, "sql");
152     public static final Name TEMPORARY = new BasicName(Namespace.URI, "temporary");
153     public static final Name ON_COMMIT_VALUE = new BasicName(Namespace.URI, "onCommitValue");
154     public static final Name NULLABLE = new BasicName(Namespace.URI, "nullable");
155     public static final Name DEFAULT_OPTION = new BasicName(Namespace.URI, "defaultOption");
156     public static final Name COLLATION_NAME = new BasicName(Namespace.URI, "collationName");
157     public static final Name CONSTRAINT_TYPE = new BasicName(Namespace.URI, "constraintType");
158     public static final Name DEFERRABLE = new BasicName(Namespace.URI, "deferrable");
159     public static final Name CHECK_SEARCH_CONDITION = new BasicName(Namespace.URI, "searchCondition");
160     public static final Name DATATYPE_NAME = new BasicName(Namespace.URI, "datatypeName");
161     public static final Name DATATYPE_LENGTH = new BasicName(Namespace.URI, "datatypeLength");
162     public static final Name DATATYPE_PRECISION = new BasicName(Namespace.URI, "datatypePrecision");
163     public static final Name DATATYPE_SCALE = new BasicName(Namespace.URI, "datatypeScale");
164     public static final Name DEFAULT_VALUE = new BasicName(Namespace.URI, "defaultValue");
165     public static final Name DEFAULT_PRECISION = new BasicName(Namespace.URI, "defaultprecision");
166     public static final Name VALUE = new BasicName(Namespace.URI, "value");
167     public static final Name DROP_BEHAVIOR = new BasicName(Namespace.URI, "dropBehavior");
168     public static final Name PROPERTY_VALUE = new BasicName(Namespace.URI, "propValue");
169     public static final Name PROBLEM_LEVEL = new BasicName(Namespace.URI, "problemLevel");
170     public static final Name GRANT_PRIVILEGE = new BasicName(Namespace.URI, "grantPrivilege");
171     public static final Name ALL_PRIVILEGES = new BasicName(Namespace.URI, "allPrivileges");
172     public static final Name WITH_GRANT_OPTION = new BasicName(Namespace.URI, "withGrantOption");
173     public static final Name GRANTEE = new BasicName(Namespace.URI, "grantee");
174 
175     public static final Name CREATE_VIEW_QUERY_EXPRESSION = new BasicName(Namespace.URI, "queryExpression");
176     public static final Name CREATE_VIEW_OPTION_CLAUSE = new BasicName(Namespace.URI, "createViewOption");
177 
178     public static final Name MESSAGE = new BasicName(Namespace.URI, "message");
179 
180     /*
181      * node child types
182      */
183 
184     public static final Name DROP_OPTION_TYPE = new BasicName(Namespace.URI, "dropOption");
185     public static final Name COLUMN_ATTRIBUTE_TYPE = new BasicName(Namespace.URI, "columnAttribute");
186     public static final Name CONSTRAINT_ATTRIBUTE_TYPE = new BasicName(Namespace.URI, "constraintAttribute ");
187 }