/*
* 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;
import java.util.List;
import java.util.Map;
/**
* ValidationPreferences
*
* @since 8.0
*/
public interface ValidationPreferences {
/**
* Preference name for eObjects with same uuids in a container
*/
String EOBJECT_UUID_UNIQUENESS = "corePreferences.eObjectUuidUniquess"; //$NON-NLS-1$
/**
* Preference name for indexes with columns from more than one table.
*/
String CORE_STRING_FUNCTIONS_ONE_BASED = "corePreferences.stringFunctionsAreOneBased"; //$NON-NLS-1$
/**
* Preference name for Name character restriction (RelationalStringNameRule) rule.
*/
String RELATIONAL_NAME_CHARACTER_RESTRICTION = "relationalPreferences.nameCharacterRestriction"; //$NON-NLS-1$
/**
* Preference name for table missing nameInSource rule.
*/
String RELATIONAL_TABLE_MISSING_NAME_IN_SOURCE = "relationalPreferences.missingNameInSource"; //$NON-NLS-1$
/**
* Preference name for siblings having same nameInSource rule.
*/
String RELATIONAL_SIBLING_NAME_IN_SOURCE = "relationalPreferences.siblingNameInSource"; //$NON-NLS-1$
/**
* Preference name for siblings having same nameInSource rule.
*/
String RELATIONAL_SIBLING_NAME = "relationalPreferences.siblingName"; //$NON-NLS-1$
/**
* Preference name for string/char datatype columns whose length is undefined.
*/
String RELATIONAL_MISSING_COLUMN_LENGTH = "relationalPreferences.missingColumnLength"; //$NON-NLS-1$
/**
* Preference name for string/char datatype columns whose length is undefined.
*/
String RELATIONAL_EMPTY_TRANSFORMATIONS = "relationalPreferences.emptyTransformations"; //$NON-NLS-1$
/**
* Preference name for numeric/timestamp datatype columns whose precision is undefined.
*/
String RELATIONAL_MISSING_COLUMN_PRECISION = "relationalPreferences.missingColumnPrecision"; //$NON-NLS-1$
/**
* Preference name for integer datatype elements.
*/
String RELATIONAL_COLUMN_INTEGER_TYPE = "relationalPreferences.integerDatatype"; //$NON-NLS-1$
/**
* Preference name for indexes with columns from more than one table.
*/
String RELATIONAL_INDEXES_WITH_COLUMNS_FROM_MULTIPLE_TABLES = "relationalPreferences.crossTableIndexes"; //$NON-NLS-1$
/**
* Preference name for siblings having same nameInSource rule.
*/
String DATAACCESS_SIBLING_NAME_IN_SOURCE = "dataaccessPreferences.siblingNameInSource"; //$NON-NLS-1$
/**
* Preference name for string/char datatype columns whose length is undefined.
*/
String DATAACCESS_MISSING_ELEMENT_LENGTH = "dataaccessPreferences.missingElementLength"; //$NON-NLS-1$
/**
* Preference name for string/char datatype columns whose precision is undefined.
*/
String DATAACCESS_MISSING_ELEMENT_PRECISION = "dataaccessPreferences.missingElementPrecision"; //$NON-NLS-1$
/**
* Preference name for integer datatype elements.
*/
String DATAACCESS_ELEMENT_INTEGER_TYPE = "dataaccessPreferences.integerDatatype"; //$NON-NLS-1$
/**
* Preference name for indexes with columns from more than one table.
*/
String DATAACCESS_INDEXES_WITH_COLUMNS_FROM_MULTIPLE_TABLES = "dataaccessPreferences.crossTableIndexes"; //$NON-NLS-1$
/**
* Preference name for elements/attributes in a document having no schema reference.
*/
String XML_ELEMENT_SCHEMA_REFERENCE = "xmlPreferences.elementSchemaRef"; //$NON-NLS-1$
/**
* Preference name for entity that violates shemas max occurs specification.
*/
String XML_ENTITY_MAXOCCURS_VIOLATION = "xmlPreferences.maxOccursViolation"; //$NON-NLS-1$
// The XML_REQUIRED_ELEMENT_MAPPING preference is not referenced in any validation rule
/**
* Preference name for elements/attributes in a document not mapped to a mapping class column attribute.
*/
String XML_REQUIRED_ELEMENT_MAPPING = "xmlPreferences.requiredElementMapping"; //$NON-NLS-1$
/**
* Preference name for elements/attributes required by the schema excluded in the document.
*/
String XML_REQUIRED_ELEMENT_EXCLUDE = "xmlPreferences.requiredElementExclude"; //$NON-NLS-1$
/**
* Preference name for fixed/default value elements/attributes mapped to a mapping class column attribute.
*/
String XML_FIXED_DEFAULT_ELEMENT_MAPPED = "xmlPreferences.fixedDefaultElementMapped"; //$NON-NLS-1$
/**
* Preference name for excluded elements/attributes mapped to a mapping class column attribute.
*/
String XML_EXCLUDED_ELEMENT_MAPPED = "xmlPreferences.excludeElementMapped"; //$NON-NLS-1$
/**
* Preference name for zero min occurs elements/attributes mapped to a mapping class column attribute.
*/
String XML_ELEMENT_ZERO_MIN_MAPPED = "xmlPreferences.mappedElementZeroMinOccurs"; //$NON-NLS-1$
/**
* Preference name for one max occurs elements/attributes mapped to a mapping class.
*/
String XML_ELEMENT_ONE_MAX_MAPPED = "xmlPreferences.mappedElementOneMaxOccurs"; //$NON-NLS-1$
/**
* Preference name for root element mapped to a mapping class.
*/
String XML_ROOT_ELEMENT_MAPPING_CLASS = "xmlPreferences.rootElementMappingClass"; //$NON-NLS-1$
/**
* Preference name for nillable elements/attributes mapped to a mapping class column attribute.
*/
String XML_ELEMENT_NILLABLE_MAPPED = "xmlPreferences.mappedElementNillable"; //$NON-NLS-1$
// Defect 18718 - Cannot find any reason why we check for this condition
// /**
// * Preference name for elements/attributes mapped to a mapping class column attribute have element/attribute children.
// */
// String XML_ELEMENT_CHILDREN_MAPPED = "xmlPreferences.mappedElementChildren"; //$NON-NLS-1$
/**
* Preference name for elements/attributes excluded from the document needing validation.
*/
String XML_ELEMENT_VALIDATE_EXCLUDED = "xmlPreferences.validateExcludedElements"; //$NON-NLS-1$
/**
* Preference name for how to handle XSD validation errors
*/
String XSD_MODEL_VALIDATION = "xsdPreferences.performValidation"; //$NON-NLS-1$
/**
* Preference name for incompatible element/mapping class column datatypes.
*/
String XML_INCOMPATIBLE_ELEMENT_COLUMN_DATATYPE = "xmlPreferences.incompatibleElementColumnDatatypes"; //$NON-NLS-1$
/**
* Preference name for ignoring cross-join warnings.
*/
String POSSIBLE_CROSS_JOIN = "relationalPreferences.possibleCrossJoin"; //$NON-NLS-1$
/**
* Get all the validation descriptors defines in the plugin.
* @return list of validation descriptors.
*/
List getValidationDescriptors();
/**
* Sets the map of options. All and only the options explicitly included in the given map
* are remembered; all previous option settings are forgotten, including ones not explicitly
* mentioned.
*
* @param newOptions the new options (key type: <code>ValidationDescriptor</code>; value type: <code>String</code>)
*/
void setOptions(Map newOptions);
/**
* Returns the map of the current options. Initially, all options have their default values,
* and this method returns a map that includes all known options.
*
* @return table of current settings of all options
* (key type: <code>String</code>; value type: <code>String</code>)
*/
Map getOptions();
}