/*
* 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.extension;
import java.io.File;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Set;
import org.teiid.core.util.SmartTestDesignerSuite;
import org.teiid.designer.extension.definition.ModelExtensionDefinitionHeader;
import org.teiid.designer.extension.properties.ModelExtensionPropertyDefinition.Type;
import org.teiid.designer.extension.properties.Translation;
/**
*
*/
@SuppressWarnings("javadoc")
public interface Constants {
String TESTDATA = SmartTestDesignerSuite.getTestDataPath(Constants.class);
String FUNCTION_METAMODEL = "http://www.metamatrix.com/metamodels/MetaMatrixFunction"; //$NON-NLS-1$
String RELATIONAL_METAMODEL = "http://www.metamatrix.com/metamodels/Relational"; //$NON-NLS-1$
String WEB_SERVICE_METAMODEL = "http://www.metamatrix.com/metamodels/WebService"; //$NON-NLS-1$
String XML_METAMODEL = "http://www.metamatrix.com/metamodels/XmlDocument"; //$NON-NLS-1$
String MED_SCHEMA = TESTDATA + File.separatorChar + ExtensionConstants.SCHEMA_FILENAME;
String TABLE_METACLASS_NAME = "org.teiid.designer.metamodels.relational.impl.BaseTableImpl"; //$NON-NLS-1$
String COLUMN_METACLASS_NAME = "org.teiid.designer.metamodels.relational.impl.ColumnImpl"; //$NON-NLS-1$
String PROCEDURE_METACLASS_NAME = "org.teiid.designer.metamodels.relational.impl.ProcedureImpl"; //$NON-NLS-1$
String SALESFORCE_MED_FILE_NAME = TESTDATA + File.separatorChar + "salesforce" + ExtensionConstants.DOT_MED_EXTENSION; //$NON-NLS-1$
String SALESFORCE_MED_PREFIX = "salesforce"; //$NON-NLS-1$
String SALESFORCE_MED_URI = "http://www.teiid.org/translator/salesforce/2012"; //$NON-NLS-1$
String[] SALESFORCE_MED_METACLASSES = new String[] { TABLE_METACLASS_NAME, COLUMN_METACLASS_NAME };
String[] SALESFORCE_METACLASS_0_PROP_IDS = new String[] { "custom", "supportsCreate", "supportsDelete", "supportsIdLookup", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
"supportsMerge", "supportsQuery", "supportsReplicate", "supportsRetrieve", "supportsSearch" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
String[] SALESFORCE_METACLASS_1_PROP_IDS = new String[] { "custom", "calculated", "defaultedOnCreate", "picklistValues" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
String REST_MED_FILE_NAME = TESTDATA + File.separatorChar + "rest" + ExtensionConstants.DOT_MED_EXTENSION; //$NON-NLS-1$
String REST_MED_PREFIX = "REST"; //$NON-NLS-1$
String REST_MED_URI = "http://teiid.org/rest"; //$NON-NLS-1$
String[] REST_MED_METACLASSES = new String[] { PROCEDURE_METACLASS_NAME };
String[] REST_METACLASS_0_PROP_IDS = new String[] { "METHOD", "URI" }; //$NON-NLS-1$ //$NON-NLS-2$
String RELATIONAL_MED_FILE_NAME = TESTDATA + File.separatorChar + "relational" + ExtensionConstants.DOT_MED_EXTENSION; //$NON-NLS-1$
String RELATIONAL_MED_PREFIX = "relational"; //$NON-NLS-1$
String RELATIONAL_MED_URI = "http://www.teiid.org/ext/relational/2012"; //$NON-NLS-1$
String[] RELATIONAL_MED_METACLASSES = new String[] { PROCEDURE_METACLASS_NAME };
String[] RELATIONAL_METACLASS_0_PROP_IDS = new String[] { "deterministic" }; //$NON-NLS-1$
String DEPRECATED_MED_FILE_NAME = TESTDATA + File.separatorChar + "deprecated" + ExtensionConstants.DOT_MED_EXTENSION; //$NON-NLS-1$
String DEPRECATED_MED_PREFIX = "ext-custom"; //$NON-NLS-1$
String DEPRECATED_MED_URI = "http://www.jboss.org/teiiddesigner/ext/deprecated/2012"; //$NON-NLS-1$
String[] DEPRECATED_MED_METACLASSES = new String[] { PROCEDURE_METACLASS_NAME };
String[] DEPRECATED_METACLASS_0_PROP_IDS = new String[] { "deterministic", "REST-METHOD", "URI" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
String[] BUILT_IN_MEDS = new String[] {
SALESFORCE_MED_FILE_NAME,
REST_MED_FILE_NAME,
RELATIONAL_MED_FILE_NAME,
DEPRECATED_MED_FILE_NAME };
String[] BUILT_IN_MEDS_NAMESPACE_PREFIXES = new String[] {
SALESFORCE_MED_PREFIX,
REST_MED_PREFIX,
RELATIONAL_MED_PREFIX,
DEPRECATED_MED_PREFIX };
String[] BUILT_IN_MEDS_NAMESPACE_URIS = new String[] {
SALESFORCE_MED_URI,
REST_MED_URI,
RELATIONAL_MED_URI,
DEPRECATED_MED_URI };
String EMPTY_MED_FILE_NAME = TESTDATA + File.separatorChar + "emptyMed" + ExtensionConstants.DOT_MED_EXTENSION; //$NON-NLS-1$
String MED_WITHOUT_METACLASSES_FILE_NAME = TESTDATA + File.separatorChar
+ "medWithoutMetaclasses" + ExtensionConstants.DOT_MED_EXTENSION; //$NON-NLS-1$
String MED_WITHOUT_PROPERTIES_FILE_NAME = TESTDATA + File.separatorChar
+ "medWithoutProperties" + ExtensionConstants.DOT_MED_EXTENSION; //$NON-NLS-1$
String TEMP_MED_FILE_NAME = TESTDATA + File.separatorChar + "tempMed" + ExtensionConstants.DOT_MED_EXTENSION; //$NON-NLS-1$
String DEFAULT_MED_DESCRIPTION = "This is a MED description"; //$NON-NLS-1$
String DEFAULT_NAMESPACE_PREFIX = SALESFORCE_MED_PREFIX;
String DEFAULT_NAMESPACE_URI = SALESFORCE_MED_URI;
String DEFAULT_METAMODEL_URI = RELATIONAL_METAMODEL;
String DEFAULT_VERSION = String.valueOf(ModelExtensionDefinitionHeader.DEFAULT_VERSION);
String DEFAULT_METACLASS = TABLE_METACLASS_NAME;
Locale[] DEFAULT_LOCALES = new Locale[] { Locale.CANADA, Locale.CHINA, Locale.ENGLISH, Locale.FRANCE, Locale.GERMAN };
String[] DEFAULT_TRANSLATION_TEXTS = new String[] { DEFAULT_LOCALES[0].toString(), DEFAULT_LOCALES[1].toString(),
DEFAULT_LOCALES[2].toString(), DEFAULT_LOCALES[3].toString(), DEFAULT_LOCALES[4].toString() };
Translation[] DEFAULT_TRANSLATIONS = new Translation[] { new Translation(DEFAULT_LOCALES[0], DEFAULT_TRANSLATION_TEXTS[0]),
new Translation(DEFAULT_LOCALES[1], DEFAULT_TRANSLATION_TEXTS[1]),
new Translation(DEFAULT_LOCALES[2], DEFAULT_TRANSLATION_TEXTS[2]),
new Translation(DEFAULT_LOCALES[3], DEFAULT_TRANSLATION_TEXTS[3]),
new Translation(DEFAULT_LOCALES[4], DEFAULT_TRANSLATION_TEXTS[4]) };
Locale NON_DEFAULT_LOCALE = Locale.US;
Translation NON_DEFAULT_TRANSLATION = new Translation(NON_DEFAULT_LOCALE, NON_DEFAULT_LOCALE.toString());
String[] MODEL_TYPES = new String[] {"PHYSICAL", "VIRTUAL"}; //$NON-NLS-1$ //$NON-NLS-2$
String[] DEFAULT_STRING_ALLOWED_VALUES = new String[] { "value-0", "value-1", "value-2", "value-3", "value-4" }; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
String DEFAULT_SIMPLE_ID = "simpleId"; //$NON-NLS-1$
String DEFAULT_RUNTIME_TYPE = Type.STRING.toString();
String DEFAULT_INITIAL_VALUE = "initialValue"; //$NON-NLS-1$
String DUPLICATE_METACLASSES_MED_FILE_NAME = TESTDATA + File.separatorChar
+ "duplicateMetaclasses" + ExtensionConstants.DOT_MED_EXTENSION; //$NON-NLS-1$
String DUPLICATE_PROP_IDS_MED_FILE_NAME = TESTDATA + File.separatorChar
+ "duplicatePropIds" + ExtensionConstants.DOT_MED_EXTENSION; //$NON-NLS-1$
String DUPLICATE_PROP_IDS_DIFFERENT_METACLASSES_MED_FILE_NAME = TESTDATA + File.separatorChar
+ "duplicatePropIdsDifferentMetaclasses" + ExtensionConstants.DOT_MED_EXTENSION; //$NON-NLS-1$
String DUPLICATE_MODEL_TYPES_MED_FILE_NAME = TESTDATA + File.separatorChar
+ "duplicateModelTypes" + ExtensionConstants.DOT_MED_EXTENSION; //$NON-NLS-1$
String ILLEGAL_MODEL_TYPE_MED_FILE_NAME = TESTDATA + File.separatorChar
+ "illegalModelType" + ExtensionConstants.DOT_MED_EXTENSION; //$NON-NLS-1$
String MODEL_TYPES_MAX_EXCEEDED_MED_FILE_NAME = TESTDATA + File.separatorChar
+ "modelTypesMaxExceeded" + ExtensionConstants.DOT_MED_EXTENSION; //$NON-NLS-1$
String DUPLICATE_ALLOWED_VALUES_MED_FILE_NAME = TESTDATA + File.separatorChar
+ "duplicateAllowedValues" + ExtensionConstants.DOT_MED_EXTENSION; //$NON-NLS-1$
String DUPLICATE_ALLOWED_VALUES_DIFFERENT_PROPS_MED_FILE_NAME = TESTDATA + File.separatorChar
+ "duplicateAllowedValuesInDifferentProperties" + ExtensionConstants.DOT_MED_EXTENSION; //$NON-NLS-1$
String DUPLICATE_PROPERTY_DESCRIPTION_LOCALE_MED_FILE_NAME = TESTDATA + File.separatorChar
+ "duplicatePropDescriptionLocale" + ExtensionConstants.DOT_MED_EXTENSION; //$NON-NLS-1$
String DUPLICATE_PROPERTY_DESCRIPTION_LOCALE_FROM_DIFFERENT_PROPERTIES_MED_FILE_NAME = TESTDATA + File.separatorChar
+ "duplicatePropDescriptionLocaleFromDifferentProperties" + ExtensionConstants.DOT_MED_EXTENSION; //$NON-NLS-1$
String DUPLICATE_PROPERTY_DISPLAY_LOCALE_MED_FILE_NAME = TESTDATA + File.separatorChar
+ "duplicatePropDisplayLocale" + ExtensionConstants.DOT_MED_EXTENSION; //$NON-NLS-1$
String DUPLICATE_PROPERTY_DISPLAY_LOCALE_FROM_DIFFERENT_PROPERTIES_MED_FILE_NAME = TESTDATA + File.separatorChar
+ "duplicatePropDisplayLocaleFromDifferentProperties" + ExtensionConstants.DOT_MED_EXTENSION; //$NON-NLS-1$
String INVALID_PROPERTY_TYPE_MED_FILE_NAME = TESTDATA + File.separatorChar
+ "invalidPropertyType" + ExtensionConstants.DOT_MED_EXTENSION; //$NON-NLS-1$
String TEIID = "Teiid"; //$NON-NLS-1$
String TRANSLATORS = "Translators"; //$NON-NLS-1$
String JAVA = "java"; //$NON-NLS-1$
String ODATA_TRANSLATOR_SOURCE = TESTDATA + File.separatorChar + TEIID + "87" + TRANSLATORS + //$NON-NLS-1$
File.separatorChar + "ODataMetadataProcessor.java"; //$NON-NLS-1$
public class Utils {
public static Set<String> getExtendableMetamodelUris() {
Set<String> metamodelUris = new HashSet<String>();
metamodelUris.add(FUNCTION_METAMODEL);
metamodelUris.add(RELATIONAL_METAMODEL);
metamodelUris.add(WEB_SERVICE_METAMODEL);
metamodelUris.add(XML_METAMODEL);
return metamodelUris;
}
public static Set<String> getDefaultModelTypes() {
Set<String> modelTypes = new HashSet<String>(MODEL_TYPES.length);
for (String modelType : MODEL_TYPES) {
modelTypes.add(modelType);
}
return modelTypes;
}
public static Set<String> getStringAllowedValues() {
return new HashSet<String>(Factory.createDefaultStringAllowedValues());
}
public static Collection<String> getStringAllowedValuesWithDuplicates() {
List<String> allowedValues = new ArrayList<String>(Factory.createDefaultStringAllowedValues());
allowedValues.add(0, DEFAULT_STRING_ALLOWED_VALUES[0]);
allowedValues.add(DEFAULT_STRING_ALLOWED_VALUES[0]);
return allowedValues;
}
public static Set<Translation> getTranslations() {
return new HashSet<Translation>(Factory.createDefaultTranslations());
}
public static Collection<Translation> getTranslationsWithDuplicates() {
List<Translation> translations = new ArrayList<Translation>(Factory.createDefaultTranslations());
translations.add(0, DEFAULT_TRANSLATIONS[0]);
translations.add(DEFAULT_TRANSLATIONS[0]);
return translations;
}
public static Collection<String> getTeiidTranslatorSources() {
List<String> teiidTranslators = new ArrayList<String>();
File testDataDir = new File(TESTDATA);
for (File dataSubDir : testDataDir.listFiles()) {
if (! dataSubDir.isDirectory())
continue;
String dataSubDirName = dataSubDir.getName();
if (! dataSubDirName.startsWith(TEIID))
continue;
if (! dataSubDirName.endsWith(TRANSLATORS))
continue;
for (String testFile : dataSubDir.list()) {
if (! testFile.endsWith(JAVA))
continue;
teiidTranslators.add(TESTDATA + File.separator + dataSubDirName + File.separator + testFile);
}
}
return teiidTranslators;
}
}
}