/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.core.index; /** * IndexConstants * * @since 8.0 */ public class IndexConstants { //############################################################################################################################ //# Constants # //############################################################################################################################ public final static String INDEX_EXT = "INDEX"; //$NON-NLS-1$ public final static String SEARCH_INDEX_EXT = "SEARCH_INDEX"; //$NON-NLS-1$ public static final String EXTENSION_CHAR = "."; //$NON-NLS-1$ public final static char NAME_DELIM_CHAR = '.'; //Index file name Constants public static class INDEX_NAME { public final static String TABLES_INDEX = "TABLES.INDEX"; //$NON-NLS-1$ public final static String KEYS_INDEX = "KEYS.INDEX"; //$NON-NLS-1$ public final static String COLUMNS_INDEX = "COLUMNS.INDEX"; //$NON-NLS-1$ public final static String MODELS_INDEX = "MODELS.INDEX"; //$NON-NLS-1$ public final static String VDBS_INDEX = "VDBS.INDEX"; //$NON-NLS-1$ public final static String PROCEDURES_INDEX = "PROCEDURES.INDEX"; //$NON-NLS-1$ public final static String DATATYPES_INDEX = "DATATYPES.INDEX"; //$NON-NLS-1$ public final static String SELECT_TRANSFORM_INDEX = "SELECT_TRANSFORM.INDEX"; //$NON-NLS-1$ public final static String INSERT_TRANSFORM_INDEX = "INSERT_TRANSFORM.INDEX"; //$NON-NLS-1$ public final static String UPDATE_TRANSFORM_INDEX = "UPDATE_TRANSFORM.INDEX"; //$NON-NLS-1$ public final static String DELETE_TRANSFORM_INDEX = "DELETE_TRANSFORM.INDEX"; //$NON-NLS-1$ public final static String PROC_TRANSFORM_INDEX = "PROC_TRANSFORM.INDEX"; //$NON-NLS-1$ public final static String MAPPING_TRANSFORM_INDEX = "MAPPING_TRANSFORM.INDEX"; //$NON-NLS-1$ public final static String ANNOTATION_INDEX = "ANNOTATION.INDEX"; //$NON-NLS-1$ public final static String PROPERTIES_INDEX = "PROPERTIES.INDEX"; //$NON-NLS-1$ public final static String FILES_INDEX = "FILES.INDEX"; //$NON-NLS-1$ public final static String[] INDEX_NAMES = new String[]{TABLES_INDEX, KEYS_INDEX, COLUMNS_INDEX, PROCEDURES_INDEX, MODELS_INDEX, VDBS_INDEX, DATATYPES_INDEX, SELECT_TRANSFORM_INDEX, INSERT_TRANSFORM_INDEX, UPDATE_TRANSFORM_INDEX, DELETE_TRANSFORM_INDEX, PROC_TRANSFORM_INDEX, MAPPING_TRANSFORM_INDEX, ANNOTATION_INDEX, PROPERTIES_INDEX, FILES_INDEX}; public final static boolean isKnownIndex(String indexName) { for (int i = 0; i < INDEX_NAMES.length; i++) { if (INDEX_NAMES[i].equalsIgnoreCase(indexName)) { return true; } } return false; } } //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 = '&'; } //Search Record type Constants public static class SEARCH_RECORD_TYPE { public final static char RESOURCE = 'A'; public final static char MODEL_IMPORT = 'B'; public final static char OBJECT = 'C'; public final static char OBJECT_REF = 'D'; public final static char RELATIONSHIP = 'E'; public final static char RELATED_OBJECT = 'F'; public final static char RELATIONSHIP_TYPE = 'G'; public final static char RELATIONSHIP_ROLE = 'H'; public final static char TYPED_OBJECT = 'I'; public final static char ANNOTATION = 'J'; } public static final char[] SEARCH_RECORD_TYPES = new char[]{ SEARCH_RECORD_TYPE.RESOURCE, SEARCH_RECORD_TYPE.MODEL_IMPORT, SEARCH_RECORD_TYPE.OBJECT, SEARCH_RECORD_TYPE.OBJECT_REF, SEARCH_RECORD_TYPE.RELATIONSHIP, SEARCH_RECORD_TYPE.RELATED_OBJECT, SEARCH_RECORD_TYPE.RELATIONSHIP_TYPE, SEARCH_RECORD_TYPE.RELATIONSHIP_ROLE, SEARCH_RECORD_TYPE.TYPED_OBJECT, SEARCH_RECORD_TYPE.ANNOTATION }; public static final char[] RECORD_TYPES = new char[]{ RECORD_TYPE.MODEL, RECORD_TYPE.TABLE, RECORD_TYPE.RESULT_SET, RECORD_TYPE.JOIN_DESCRIPTOR, RECORD_TYPE.CALLABLE, RECORD_TYPE.CALLABLE_PARAMETER, RECORD_TYPE.COLUMN, RECORD_TYPE.ACCESS_PATTERN, RECORD_TYPE.UNIQUE_KEY, RECORD_TYPE.FOREIGN_KEY, RECORD_TYPE.PRIMARY_KEY, RECORD_TYPE.INDEX, RECORD_TYPE.DATATYPE, //RECORD_TYPE.DATATYPE_ELEMENT, //RECORD_TYPE.DATATYPE_FACET, RECORD_TYPE.SELECT_TRANSFORM, RECORD_TYPE.INSERT_TRANSFORM, RECORD_TYPE.UPDATE_TRANSFORM, RECORD_TYPE.DELETE_TRANSFORM, RECORD_TYPE.PROC_TRANSFORM, RECORD_TYPE.MAPPING_TRANSFORM, RECORD_TYPE.VDB_ARCHIVE, RECORD_TYPE.ANNOTATION, RECORD_TYPE.PROPERTY, RECORD_TYPE.FILE, RECORD_TYPE.RECORD_CONTINUATION }; public static class RECORD_STRING { public final static char TRUE = '1'; public final static char FALSE = '0'; public final static char SPACE = ' '; // The record delimiter is the character used to delineate the fields of an index record. // Since a field in our index records may represent a description, sql string, or xml/html text // a delimiter was chosen that will never be present in typed text. public final static char RECORD_DELIMITER = '\u00A0'; // separator between data values (ASCII no-break space) // public final static char RECORD_DELIMITER = '|'; // separator between data values // Fix for defect 13393 public final static char LIST_DELIMITER_OLD = ','; // separator used when the data value is a list public final static char PROP_DELIMITER_OLD = '='; // separator used to seperate prop-value pairs public final static char LIST_DELIMITER = '\u001F'; // separator used when the data value is a list (ASCII unit separator) public final static char PROP_DELIMITER = '\u2060'; // separator used to seperate prop-value pairs (ASCII word joiner) public final static char MATCH_CHAR = '*'; // wild card that may match one or more characters public final static char SINGLE_CHAR_MATCH = '?'; // match a single character public final static String MATCH_CHAR_STRING = (new Character(MATCH_CHAR)).toString(); // wild card that may match one or more characters public final static String SINGLE_CHAR_MATCH_STRING = (new Character(SINGLE_CHAR_MATCH)).toString(); // match a single character public final static char INDEX_VERSION_MARKER = '\u00A1'; // marker to indicate index version information (ASCII inverted exclamation mark) } }