// ============================================================================ // // Copyright (C) 2006-2012 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.designer.core.ui.editor.process; import org.talend.core.database.EDatabaseTypeName; import org.talend.core.model.metadata.builder.connection.DatabaseConnection; import org.talend.core.model.properties.BRMSConnectionItem; import org.talend.core.model.properties.DatabaseConnectionItem; import org.talend.core.model.properties.DelimitedFileConnectionItem; import org.talend.core.model.properties.EDIFACTConnectionItem; import org.talend.core.model.properties.EbcdicConnectionItem; import org.talend.core.model.properties.ExcelFileConnectionItem; import org.talend.core.model.properties.FTPConnectionItem; import org.talend.core.model.properties.GenericSchemaConnectionItem; import org.talend.core.model.properties.HL7ConnectionItem; import org.talend.core.model.properties.Item; import org.talend.core.model.properties.LDAPSchemaConnectionItem; import org.talend.core.model.properties.LdifFileConnectionItem; import org.talend.core.model.properties.LinkRulesItem; import org.talend.core.model.properties.MDMConnectionItem; import org.talend.core.model.properties.PositionalFileConnectionItem; import org.talend.core.model.properties.ProcessItem; import org.talend.core.model.properties.RegExFileConnectionItem; import org.talend.core.model.properties.RulesItem; import org.talend.core.model.properties.SAPConnectionItem; import org.talend.core.model.properties.SalesforceSchemaConnectionItem; import org.talend.core.model.properties.WSDLSchemaConnectionItem; import org.talend.core.model.properties.XmlFileConnectionItem; import org.talend.core.model.properties.impl.ConnectionItemImpl; import org.talend.core.model.repository.ERepositoryObjectType; import org.talend.core.model.utils.IComponentName; /** * DOC bqian TalendEditor class global comment. Detailled comment <br/> * * $Id: talend.epf 1 2006-09-29 17:06:40 +0000 (星期五, 29 九月 2006) nrousseau $ * * @deprecated use extension point in class RepositoryComponentManager */ public enum EDatabaseComponentName implements IComponentName { // DATABASES DBIBMDB2ZOS(DatabaseConnectionItem.class, EDatabaseTypeName.IBMDB2ZOS, "tDB2Input", "tDB2Output", true), //$NON-NLS-1$ //$NON-NLS-2$ DBJAVADBEMBEDED(DatabaseConnectionItem.class, EDatabaseTypeName.JAVADB_EMBEDED, "tJavaDBInput", "tJavaDBOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ // SAS(DatabaseConnectionItem.class, EDatabaseTypeName.SAS, "tSASInput", "tSASOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ HSQLDB_IN_PROGRESS(DatabaseConnectionItem.class, EDatabaseTypeName.HSQLDB_IN_PROGRESS, "tHSQLDbInput", "tHSQLDbOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ HSQLDB_WEBSERVER(DatabaseConnectionItem.class, EDatabaseTypeName.HSQLDB_WEBSERVER, "tHSQLDbInput", "tHSQLDbOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ HSQLDB_SERVER(DatabaseConnectionItem.class, EDatabaseTypeName.HSQLDB_SERVER, "tHSQLDbInput", "tHSQLDbOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ JAVADB_DERBYCLIENT(DatabaseConnectionItem.class, EDatabaseTypeName.JAVADB_DERBYCLIENT, "tJavaDBInput", "tJavaDBOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ JAVADB_JCCJDBC(DatabaseConnectionItem.class, EDatabaseTypeName.JAVADB_JCCJDBC, "tJavaDBInput", "tJavaDBOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ DBMYSQL(DatabaseConnectionItem.class, EDatabaseTypeName.MYSQL, "tMysqlInput", "tMysqlOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ DBPSQL(DatabaseConnectionItem.class, EDatabaseTypeName.PSQL, "tPostgresqlInput", "tPostgresqlOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ PARACCEL(DatabaseConnectionItem.class, EDatabaseTypeName.PARACCEL, "tParAccelInput", "tParAccelOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ GREENPLUM(DatabaseConnectionItem.class, EDatabaseTypeName.GREENPLUM, "tGreenplumInput", "tGreenplumOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ NETEZZA(DatabaseConnectionItem.class, EDatabaseTypeName.NETEZZA, "tNetezzaInput", "tNetezzaOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ DBPLUSPSQL(DatabaseConnectionItem.class, EDatabaseTypeName.PLUSPSQL, "tPostgresPlusInput", "tPostgresPlusOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ DBORACLEFORSID(DatabaseConnectionItem.class, EDatabaseTypeName.ORACLEFORSID, "tOracleInput", "tOracleOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ DBORACLESN(DatabaseConnectionItem.class, EDatabaseTypeName.ORACLESN, "tOracleInput", "tOracleOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ DBORACLEOCI(DatabaseConnectionItem.class, EDatabaseTypeName.ORACLE_OCI, "tOracleInput", "tOracleOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ DBORACLERAC(DatabaseConnectionItem.class, EDatabaseTypeName.ORACLE_RAC, "tOracleInput", "tOracleOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ DBGODBC(DatabaseConnectionItem.class, EDatabaseTypeName.GODBC, "tDBInput", "tDBOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ MSODBC(DatabaseConnectionItem.class, EDatabaseTypeName.MSODBC, "tDBInput", "tDBOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ IBMDB2(DatabaseConnectionItem.class, EDatabaseTypeName.IBMDB2, "tDB2Input", "tDB2Output", true), //$NON-NLS-1$ //$NON-NLS-2$ SYBASEASE(DatabaseConnectionItem.class, EDatabaseTypeName.SYBASEASE, "tSybaseInput", "tSybaseOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ AS400(DatabaseConnectionItem.class, EDatabaseTypeName.AS400, "tAS400Input", "tAS400Output", true), //$NON-NLS-1$ //$NON-NLS-2$ // General JDBC GENERAL_JDBC(DatabaseConnectionItem.class, EDatabaseTypeName.GENERAL_JDBC, "tJDBCInput", "tJDBCOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ // this Sybase IQ not used. // SYBASEIQ(DatabaseConnectionItem.class,"SYBASE", "Sybase IQ", new Boolean(false), "SYBASE"), MSSQLODBC(DatabaseConnectionItem.class, EDatabaseTypeName.MSSQL, "tMSSqlInput", "tMSSqlOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ // this don't use in Branch 2.0 HSQL(DatabaseConnectionItem.class, EDatabaseTypeName.HSQLDB, "tHSQLDbInput", "tHSQLDbOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ JAVADB(DatabaseConnectionItem.class, EDatabaseTypeName.JAVADB, "tJavaDBInput", "tJavaDBOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ INGRES(DatabaseConnectionItem.class, EDatabaseTypeName.INGRES, "tIngresInput", "tIngresOutput", true), // "INGRES"), //$NON-NLS-1$ //$NON-NLS-2$ INTERBASE(DatabaseConnectionItem.class, EDatabaseTypeName.INTERBASE, "tInterbaseInput", "tInterbaseOutput", true), // "INTERBASE" //$NON-NLS-1$ //$NON-NLS-2$ EXASOL(DatabaseConnectionItem.class, EDatabaseTypeName.EXASOL, "tEXAInput", "tEXAOutput", true), // "INGRES"), //$NON-NLS-1$ //$NON-NLS-2$ VECTORWISE(DatabaseConnectionItem.class, EDatabaseTypeName.VECTORWISE, "tVectorWiseInput", "tVectorWiseOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ // ) // , SQLITE(DatabaseConnectionItem.class, EDatabaseTypeName.SQLITE, "tSQLiteInput", "tSQLiteOutput", true), // "SQLITE"), //$NON-NLS-1$ //$NON-NLS-2$ FIREBIRD(DatabaseConnectionItem.class, EDatabaseTypeName.FIREBIRD, "tFirebirdInput", "tFirebirdOutput", true), // "FIREBIRD" //$NON-NLS-1$ //$NON-NLS-2$ // ), INFORMIX(DatabaseConnectionItem.class, EDatabaseTypeName.INFORMIX, "tInformixInput", "tInformixOutput", true), // "INFORMIX" //$NON-NLS-1$ //$NON-NLS-2$ // ); ACCESS(DatabaseConnectionItem.class, EDatabaseTypeName.ACCESS, "tAccessInput", "tAccessOutput", true), // "ACCESS"); //$NON-NLS-1$ //$NON-NLS-2$ TERADATA(DatabaseConnectionItem.class, EDatabaseTypeName.TERADATA, "tTeradataInput", "tTeradataOutput", true), // "TERADATA" //$NON-NLS-1$ //$NON-NLS-2$ // ); TERADATA_TABLE(DatabaseConnectionItem.class, EDatabaseTypeName.TERADATA, "tELTTeradataInput", "tELTTeradataOutput", true), // "TERADATA" //$NON-NLS-1$ //$NON-NLS-2$ // ) // ; VERTICA(DatabaseConnectionItem.class, EDatabaseTypeName.VERTICA, "tVerticaInput", "tVerticaOutput", true), //"VERTICA" //$NON-NLS-1$ //$NON-NLS-2$ MAXDB(DatabaseConnectionItem.class, EDatabaseTypeName.MAXDB, "tMaxDBInput", "tMaxDBOutput", true), // "MAXDB"); //$NON-NLS-1$ //$NON-NLS-2$ SAS(DatabaseConnectionItem.class, EDatabaseTypeName.SAS, "tSasInput", "tSasOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ HIVE(DatabaseConnectionItem.class, EDatabaseTypeName.HIVE, (String) null, (String) null, true), //$NON-NLS-1$ //$NON-NLS-2$ HBASE(DatabaseConnectionItem.class, EDatabaseTypeName.HBASE, "tHBaseInput", "tHBaseOutput", true), //$NON-NLS-1$ //$NON-NLS-2$ // FILES FILEARFF(FakeFileConnectionItem.class, "tFileInputARFF", "tFileOutputARFF", "DELIMITED"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ FILEDELIMITED(DelimitedFileConnectionItem.class, "tFileInputDelimited", "tFileOutputDelimited", "DELIMITED"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ FILEEXCEL(ExcelFileConnectionItem.class, "tFileInputExcel", "tFileOutputExcel", "EXCEL"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ FILELDIF(LdifFileConnectionItem.class, "tFileInputLDIF", "tFileOutputLDIF", "LDIF"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ FILEPOSITIONAL(PositionalFileConnectionItem.class, "tFileInputPositional", "tFileOutputPositional", "POSITIONAL"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ FILEREGEX(RegExFileConnectionItem.class, "tFileInputRegex", null, "REGEX"), //$NON-NLS-1$ //$NON-NLS-2$ FILEXML(XmlFileConnectionItem.class, "tFileInputXML", "tFileOutputXML", "XML"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ FILEXMLOUTPUT(XmlFileConnectionItem.class, "tFileInputXML", "tAdvancedFileOutputXML", "XMLOUTPUT"), //$NON-NLS-1$ //$NON-NLS-2$ SAPFFUNCTION(SAPConnectionItem.class, "tSAPInput", "tSAPOutput", "SAP"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ SAPIDOC(SAPConnectionItem.class, "tSAPIDocInput", "tSAPIDocOutput", "SAPIDOC"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ GENERICSCHEMA(GenericSchemaConnectionItem.class, (String) null, null, "GENERICSCHEMA"), //$NON-NLS-1$ FILEEBCDIC(EbcdicConnectionItem.class, "tFileInputEBCDIC", "tFileOutputEBCDIC", "EBCDIC"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ FILEHL7(HL7ConnectionItem.class, "tHL7Input", null, "HL7"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ EDIFACT(EDIFACTConnectionItem.class, "tUN/EDIFACT", null, "UN/EDIFACT"), FILEMDM(MDMConnectionItem.class, "tMDMInput", "tMDMOutput", "MDM"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ FTP(FTPConnectionItem.class, "", null, "FTP"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ BRMS(BRMSConnectionItem.class, "tBRMS", "tBRMS", "BRMS"), LDAP(LDAPSchemaConnectionItem.class, "tLDAPInput", "tLDAPOutput", "LDAP"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ WSDL(WSDLSchemaConnectionItem.class, "tWebServiceInput", null, "WSDL"), //$NON-NLS-1$ //$NON-NLS-2$ WEBSERVICE(WSDLSchemaConnectionItem.class, (String) null, "tWebService", "WEBSERVICE"), //$NON-NLS-1$ //$NON-NLS-2$ SALESFORCE(SalesforceSchemaConnectionItem.class, "tSalesforceInput", "tSalesforceOutput", "SALESFORCE"), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ // hywang add for Rule Rules(RulesItem.class, "tRules", "tRules", "RULE"), //$NON-NLS-1$ //$NON-NLS-2$ LinkRules(LinkRulesItem.class, "tRules", "tRules", "RULE"), // RunJob RunJob(ProcessItem.class, "tRunJob", "tRunJob"); //$NON-NLS-1$ //$NON-NLS-2$ // DBORACLESN("ORACLE", "Oracle with service name", new Boolean(true), "ORACLE"), // DBGODBC(DatabaseConnectionItem.class,"MSODBC", "Generic ODBC", new Boolean(false), "MSODBC"), // DBMSODBC("Microsoft SQL (Odbc driver)", "Microsoft SQL Server (Odbc driver)", new Boolean(false), "MSODBC"), // DBIBMDB2("IBM DB2", "IBM DB2", new Boolean(false), "IBMDB2"), // DBSYBASEASE("SybaseASE", "Sybase ASE", new Boolean(false), "SYBASE"), // // // this Sybase IQ not used. // DBSYBASEIQ("Sybase IQ", "Sybase IQ", new Boolean(false), "SYBASE"), // DBMSSQL("MSSQL", "Microsoft SQL Server", new Boolean(false), "MSODBC"), // // this don't use in Branch 2.0 // DBHSQL("HSQL","HSQL",new Boolean(false),"HSQLDB"), // DBJAVADB("JavaDB", "JavaDB", new Boolean(false), "JAVADB"), // DBINGRES("Ingres", "Ingres", new Boolean(false), "INGRES"), // "INGRES"), // DBINTERBASE("Interbase", "Interbase", new Boolean(false), "Interbase"), // "INTERBASE"), // DBSQLITE("SQLite", "SQLite", new Boolean(false), "SQLITE"), // "SQLITE"), // DBFIREBIRD("FireBird", "FireBird", new Boolean(false), "FIREBIRD"), // "FIREBIRD"), // DBINFORMIX("Informix", "Informix", new Boolean(true), "INFORMIX"), // "INFORMIX"); // // DBACCESS("Access", "Access", new Boolean(false), "ACCESS"); // "ACCESS"); // JAVADB_EMBEDED("JavaDB Embeded", "JavaDB Embeded", new Boolean(false), "JAVADB"), // JAVADB_JCCJDBC("JavaDB JCCJDBC", "JavaDB JCCJDBC", new Boolean(false), "JAVADB"), // JAVADB_DERBYCLIENT("JavaDB DerbyClient", "JavaDB DerbyClient", new Boolean(false), "JAVADB"); Class clazz; String inputComponentName; String outPutComponentName; EDatabaseTypeName dbTypeName; boolean forTableItem; private String productName; public boolean isForTableItem() { return this.forTableItem; } /** * Getter for clazz. * * @return the clazz */ public Class getMappingKey() { return this.clazz; } public String getDBType() { if (dbTypeName != null) { return dbTypeName.getDisplayName(); } return null; } public String getProductName() { if (dbTypeName != null) { return "DATABASE:" + dbTypeName.getProduct(); //$NON-NLS-1$ } return this.productName; } public String getDefaultComponentName() { return getInputComponentName(); } public void setProductName(String productName) { this.productName = productName; } /** * Getter for inputComponentName. * * @return the inputComponentName */ public String getInputComponentName() { return this.inputComponentName; } /** * Getter for outPutComponentName. * * @return the outPutComponentName */ public String getOutPutComponentName() { return this.outPutComponentName; } EDatabaseComponentName(Class clazz, String inputComponentName, String outPutComponentName, String productName) { this.clazz = clazz; this.inputComponentName = inputComponentName; this.outPutComponentName = outPutComponentName; this.productName = productName; } // TODO need to be removed after implementing this feature // EDatabaseComponentName(Class clazz, String inputComponentName, String outPutComponentName) { this.clazz = clazz; this.inputComponentName = inputComponentName; this.outPutComponentName = outPutComponentName; } /** * Contructor for files. * * @param clazz * @param dbTypeName * @param inputComponentName * @param outPutComponentName */ EDatabaseComponentName(Class clazz, EDatabaseTypeName dbTypeName, String inputComponentName, String outPutComponentName) { this(clazz, dbTypeName, inputComponentName, outPutComponentName, false); } /** * Contructor for databases. * * @param clazz * @param type * @param inputComponentName * @param outPutComponentName */ EDatabaseComponentName(Class clazz, EDatabaseTypeName dbTypeName, String inputComponentName, String outPutComponentName, boolean tableItem) { this(clazz, inputComponentName, outPutComponentName); this.dbTypeName = dbTypeName; this.forTableItem = tableItem; } public static EDatabaseComponentName getCorrespondingComponentName(Item item, ERepositoryObjectType type) { if (type == ERepositoryObjectType.METADATA_CON_TABLE) { for (EDatabaseComponentName typeName : EDatabaseComponentName.values()) { if (typeName.getMappingKey().isAssignableFrom(item.getClass())) { if (typeName.getMappingKey() == DatabaseConnectionItem.class) { DatabaseConnectionItem dbItem = (DatabaseConnectionItem) item; DatabaseConnection dbConnection = (DatabaseConnection) dbItem.getConnection(); if (typeName.getDBType().equals(dbConnection.getDatabaseType()) && typeName.isForTableItem()) { return typeName; } } else { return typeName; } } } return null; } else if (type == ERepositoryObjectType.METADATA_SAP_IDOC) { return EDatabaseComponentName.SAPIDOC; } else { return getCorrespondingComponentName(item, true); } } private static EDatabaseComponentName getCorrespondingComponentName(Item item, boolean flag) { for (EDatabaseComponentName typeName : EDatabaseComponentName.values()) { if (typeName.getMappingKey().isAssignableFrom(item.getClass())) { if (typeName.getMappingKey() == DatabaseConnectionItem.class) { DatabaseConnectionItem dbItem = (DatabaseConnectionItem) item; DatabaseConnection dbConnection = (DatabaseConnection) dbItem.getConnection(); if (typeName.getDBType().equals(dbConnection.getDatabaseType()) && flag) { return typeName; } } else { return typeName; } } } return null; } public static String getProductName(Item item) { for (EDatabaseComponentName typeName : EDatabaseComponentName.values()) { if (typeName.getMappingKey().isAssignableFrom(item.getClass())) { return typeName.getProductName(); // if (typeName.getMappingKey() == DatabaseConnectionItem.class) { // DatabaseConnectionItem dbItem = (DatabaseConnectionItem) item; // DatabaseConnection dbConnection = (DatabaseConnection) dbItem.getConnection(); // if (typeName.getDBType().equals(dbConnection.getDatabaseType()) && flag) { // return typeName; // } // } else { // return typeName; // } } } return null; } /******************************************************************************************************************* * * DOC xye EDatabaseComponentName class global comment. Detailled comment */ class FakeFileConnectionItem extends ConnectionItemImpl { } }