/* * JBoss, Home of Professional Open Source. * See the COPYRIGHT.txt file distributed with this work for information * regarding copyright ownership. Some portions may be licensed * to Red Hat, Inc. under one or more contributor license agreements. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301 USA. */ package org.teiid.metadata.index; import org.teiid.core.util.StringUtil; /** * MetadataConstants are all the constant values used to identify all the valid values for a multi-value attribute. * All assigned short values start with 1. Therefore, when the get...TypeName(type) method is called, the * method needs to subtract 1 from the argument. */ public final class MetadataConstants { /** Definition of not defined long type. */ public static final long NOT_DEFINED_LONG = Long.MIN_VALUE; /** Definition of not defined int type. */ public static final int NOT_DEFINED_INT = Integer.MIN_VALUE; /** Definition of not defined short type. */ public static final short NOT_DEFINED_SHORT = Short.MIN_VALUE; public final static String BLANK = StringUtil.Constants.EMPTY_STRING; //properties public static final String VERSION_DATE = "versionDate"; //$NON-NLS-1$ /** * These types are associated with a KEY, indicating the type of matching that can be performed on it. */ public final static class MATCH_TYPES { public final static short FULL_MATCH = 0; public final static short PARTIAL_MATCH = 1; public final static short NEITHER_MATCH = 2; public final static short NA = 3; public final static String[] TYPE_NAMES = { "Full", //$NON-NLS-1$ "Partial", //$NON-NLS-1$ "Neither", //$NON-NLS-1$ "N/A" }; //$NON-NLS-1$ } public final static String getMatchTypeName(short type) { return MATCH_TYPES.TYPE_NAMES[type]; } /** * These types indicate the type of KEY it is. * The values must be kept consistent with the values referenced in * KeyTypeEnumeration.properties in connector.metadata */ public final static class KEY_TYPES { public final static short PRIMARY_KEY = 0; public final static short FOREIGN_KEY = 1; public final static short UNIQUE_KEY = 2; public final static short NON_UNIQUE_KEY = 3; public final static short ACCESS_PATTERN = 4; public final static short INDEX = 5; public final static String[] TYPE_NAMES = { "Primary", //$NON-NLS-1$ "Foreign", //$NON-NLS-1$ "Unique", //$NON-NLS-1$ "NonUnique", //$NON-NLS-1$ "AccessPattern", //$NON-NLS-1$ "Index" }; //$NON-NLS-1$ } public final static String getKeyTypeName(short type) { return KEY_TYPES.TYPE_NAMES[type]; } /** * These types indicate the type of COLUMN_SET it is. * The values must be kept consistent with the values referenced in * KeyTypeEnumeration.properties in connector.metadata */ public final static class COLUMN_SET_TYPES { public final static short FOREIGN_KEY = 0; public final static short UNIQUE_KEY = 1; public final static short ACCESS_PATTERN = 2; public final static short INDEX = 3; public final static short PROCEDURE_RESULT = 4; public final static short TABLE = 5; public final static String[] TYPE_NAMES = { "Foreign", //$NON-NLS-1$ "Unique", //$NON-NLS-1$ "AccessPattern", //$NON-NLS-1$ "Index", //$NON-NLS-1$ "Procedure_Result", //$NON-NLS-1$ "Table"}; //$NON-NLS-1$ } public final static String getColumnSetTypeName(short type) { return KEY_TYPES.TYPE_NAMES[type]; } /** * These types indicate the type of PROCEDURE it is. * The values must be kept consistent with the values referenced in * ProcTypeEnumeration.properties in connector.metadata */ public final static class PROCEDURE_TYPES { public final static short FUNCTION = 0; public final static short STORED_PROCEDURE = 1; public final static short STORED_QUERY = 2; public final static String[] TYPE_NAMES = { "Function", //$NON-NLS-1$ "StoredProc", //$NON-NLS-1$ "StoredQuery" }; //$NON-NLS-1$ } public final static String getProcedureTypeName(short type) { return PROCEDURE_TYPES.TYPE_NAMES[type]; } /** * These types indicate the type of TRANSFORMATION it it. */ public final static class SQL_TRANSFORMATION_TYPES { public final static short MAPPING_DEFN = 0; public final static short QUERY_PLAN_SELECT_QUERY = 1; public final static short QUERY_PLAN_INSERT_QUERY = 2; public final static short QUERY_PLAN_UPDATE_QUERY = 3; public final static short QUERY_PLAN_DELETE_QUERY = 4; public final static short QUERY_PLAN_STORED_QUERY = 5; public final static String[] TYPE_NAMES = { "MappingDefn", //$NON-NLS-1$ "QueryPlanSelectQuery", //$NON-NLS-1$ "QueryPlanInsertQuery", //$NON-NLS-1$ "QueryPlanUpdateQuery", //$NON-NLS-1$ "QueryPlanDeleteQuery", //$NON-NLS-1$ "QueryPlanStoredQuery"}; //$NON-NLS-1$ } public final static String getSqlTransformationTypeName(short type) { return SQL_TRANSFORMATION_TYPES.TYPE_NAMES[type]; } /** * These types indicate the type of PROCEDURE_PARAMETER it is. * The values must be kept consistent with the DirectionKind enumeration in the relational * metamodel and the values referenced in ProcParamDirectionEnumeration.properties in connector.metadata */ public final static class PARAMETER_TYPES { public final static short IN_PARM = 0; public final static short OUT_PARM = 1; public final static short INOUT_PARM = 2; public final static short RETURN_VALUE = 3; public final static short RESULT_SET = 4; public final static String[] TYPE_NAMES = { "In", //$NON-NLS-1$ "Out", //$NON-NLS-1$ "InOut", //$NON-NLS-1$ "ReturnValue", //$NON-NLS-1$ "ResultSet" }; //$NON-NLS-1$ } public final static String getParameterTypeName(short type) { return PARAMETER_TYPES.TYPE_NAMES[type]; } /** * These types are associated with the Element having valid search types. * The values must be kept consistent with the SearchabilityType enumeration in the relational * metamodel and the values referenced in SearchTypeEnumeration.properties in connector.metadata */ public final static class SEARCH_TYPES { public final static short SEARCHABLE = 0; public final static short ALLEXCEPTLIKE = 1; public final static short LIKE_ONLY = 2; public final static short UNSEARCHABLE = 3; public final static String[] TYPE_NAMES = { "Searchable", //$NON-NLS-1$ "All Except Like", //$NON-NLS-1$ "Like Only", //$NON-NLS-1$ "Unsearchable" }; //$NON-NLS-1$ } public final static String getSearchTypeName(short type) { return SEARCH_TYPES.TYPE_NAMES[type]; } /** * A DataType object will be identified as being of one of these types. * The values must be kept consistent with the values referenced in * DatatypeTypeEnumeration.properties in connector.metadata */ public final static class DATATYPE_TYPES { public final static short BASIC = 0; public final static short USER_DEFINED = 1; public final static short RESULT_SET = 2; public final static String[] TYPE_NAMES = { "Basic", //$NON-NLS-1$ "UserDefined", //$NON-NLS-1$ "ResultSet" }; //$NON-NLS-1$ } public final static String getDataTypeTypeName(short type) { return DATATYPE_TYPES.TYPE_NAMES[type]; } /** * User defined DataType objects will be categorized by a variety * The values must be kept consistent with the XSDVariety enumeration in the xsd * metamodel and the values referenced in DatatypeVarietyEnumeration.properties in * connector.metadata */ public final static class DATATYPE_VARIETIES { public final static short ATOMIC = 0; public final static short LIST = 1; public final static short UNION = 2; public final static short COMPLEX = 3; public final static String[] TYPE_NAMES = { "Atomic", //$NON-NLS-1$ "List", //$NON-NLS-1$ "Union", //$NON-NLS-1$ "Complex" }; //$NON-NLS-1$ } public final static String getDataTypeVarietyName(short type) { return DATATYPE_VARIETIES.TYPE_NAMES[type]; } /** * These types represent the type of table a Group is. */ public final static class TABLE_TYPES { public static final short TABLE_TYPE = 0; public static final short VIEW_TYPE = 1; public static final short DOCUMENT_TYPE = 2; public static final short XML_MAPPING_CLASS_TYPE = 3; public static final short XML_STAGING_TABLE_TYPE = 4; public static final short MATERIALIZED_TYPE = 5; public final static String[] TYPE_NAMES = { "Table", //$NON-NLS-1$ "View", //$NON-NLS-1$ "Document", //$NON-NLS-1$ "XmlMappingClass", //$NON-NLS-1$ "XmlStagingTable", //$NON-NLS-1$ "MaterializedTable" }; //$NON-NLS-1$ } public final static String getTableTypeName(short type) { return TABLE_TYPES.TYPE_NAMES[type]; } /** * These types are associated with a DataType or an Element needing the indication of null types. * The values must be kept consistent with the NullableType enumeration in the relational * metamodel and the values referenced in NullTypeEnumeration.properties in connector.metadata */ public final static class NULL_TYPES { public static final short NOT_NULL = 0; public static final short NULLABLE = 1; public static final short UNKNOWN = 2; public final static String[] TYPE_NAMES = { "No Nulls", //$NON-NLS-1$ "Nullable", //$NON-NLS-1$ "Unknown" }; //$NON-NLS-1$ } //Record type Constants public static class RECORD_TYPE { public final static char MODEL = 'A'; public final static char TABLE = 'B'; public final static char RESULT_SET = 'C'; public final static char JOIN_DESCRIPTOR = 'D'; public final static char CALLABLE = 'E'; public final static char CALLABLE_PARAMETER = 'F'; public final static char COLUMN = 'G'; public final static char ACCESS_PATTERN = 'H'; public final static char UNIQUE_KEY = 'I'; public final static char FOREIGN_KEY = 'J'; public final static char PRIMARY_KEY = 'K'; public final static char INDEX = 'L'; public final static char DATATYPE = 'M'; //public final static char DATATYPE_ELEMENT = 'N'; //public final static char DATATYPE_FACET = 'O'; public final static char SELECT_TRANSFORM = 'P'; public final static char INSERT_TRANSFORM = 'Q'; public final static char UPDATE_TRANSFORM = 'R'; public final static char DELETE_TRANSFORM = 'S'; public final static char PROC_TRANSFORM = 'T'; public final static char MAPPING_TRANSFORM = 'U'; public final static char VDB_ARCHIVE = 'V'; public final static char ANNOTATION = 'W'; public final static char PROPERTY = 'X'; public final static char FILE = 'Z'; public final static char RECORD_CONTINUATION = '&'; } public final static String getNullTypeName(short type) { return NULL_TYPES.TYPE_NAMES[type]; } }