// ============================================================================
//
// 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.core.model.metadata.designerproperties;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.eclipse.emf.common.util.EList;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.talend.commons.ui.runtime.exception.ExceptionHandler;
import org.talend.commons.utils.PasswordEncryptUtil;
import org.talend.core.database.EDatabase4DriverClassName;
import org.talend.core.database.EDatabaseTypeName;
import org.talend.core.database.conn.DatabaseConnStrUtil;
import org.talend.core.database.conn.version.EDatabaseVersion4Drivers;
import org.talend.core.model.metadata.MetadataTalendType;
import org.talend.core.model.metadata.builder.connection.BRMSConnection;
import org.talend.core.model.metadata.builder.connection.Connection;
import org.talend.core.model.metadata.builder.connection.ConnectionFactory;
import org.talend.core.model.metadata.builder.connection.DatabaseConnection;
import org.talend.core.model.metadata.builder.connection.DelimitedFileConnection;
import org.talend.core.model.metadata.builder.connection.EbcdicConnection;
import org.talend.core.model.metadata.builder.connection.Escape;
import org.talend.core.model.metadata.builder.connection.FileExcelConnection;
import org.talend.core.model.metadata.builder.connection.HL7Connection;
import org.talend.core.model.metadata.builder.connection.LDAPSchemaConnection;
import org.talend.core.model.metadata.builder.connection.LdifFileConnection;
import org.talend.core.model.metadata.builder.connection.MDMConnection;
import org.talend.core.model.metadata.builder.connection.PositionalFileConnection;
import org.talend.core.model.metadata.builder.connection.RegexpFileConnection;
import org.talend.core.model.metadata.builder.connection.SAPConnection;
import org.talend.core.model.metadata.builder.connection.SalesforceSchemaConnection;
import org.talend.core.model.metadata.builder.connection.SchemaTarget;
import org.talend.core.model.metadata.builder.connection.WSDLSchemaConnection;
import org.talend.core.model.metadata.builder.connection.XmlFileConnection;
import org.talend.core.model.metadata.builder.connection.XmlXPathLoopDescriptor;
import org.talend.core.model.metadata.designerproperties.PropertyConstants.CDCTypeMode;
import org.talend.core.model.process.EParameterFieldType;
import org.talend.core.model.process.IContext;
import org.talend.core.model.process.IContextManager;
import org.talend.core.model.process.IContextParameter;
import org.talend.core.model.process.IElementParameter;
import org.talend.core.model.process.INode;
import org.talend.core.model.repository.DragAndDropManager;
import org.talend.core.model.utils.ContextParameterUtils;
import org.talend.core.model.utils.IDragAndDropServiceHandler;
import org.talend.core.runtime.i18n.Messages;
import org.talend.core.utils.TalendQuoteUtils;
import org.talend.cwm.helper.ConnectionHelper;
/**
* DOC wzhang class global comment. Detailled comment
*/
public class ComponentToRepositoryProperty {
/**
* DOC wzhang Comment method "setValue".
*
* @param connection
* @param node
*/
public static boolean setValue(Connection connection, INode node) {
if (connection == null || node == null) {
return false;
}
if (connection instanceof DatabaseConnection) {
setDatabaseType((DatabaseConnection) connection, node);
}
// impossible to use OCI in oracle
IElementParameter elementParameter = node.getElementParameter("CONNECTION_TYPE"); //$NON-NLS-1$
if (elementParameter != null) {
if ("ORACLE_OCI".equals(elementParameter.getValue())) { //$NON-NLS-1$
Shell shell = Display.getCurrent().getActiveShell();
String title = Messages.getString("ComponentToRepositoryProperty.error"); //$NON-NLS-1$
String message = Messages.getString("ComponentToRepositoryProperty.ImpossibleUseOCI"); //$NON-NLS-1$
MessageDialog.openError(shell, title, message);
return false;
}
}
for (IElementParameter param : node.getElementParameters()) {
param.getName();
String repositoryValue = param.getRepositoryValue();
setValue(connection, node, repositoryValue);
}
if (connection instanceof DatabaseConnection) {
// add url instance ------DataStringConnection
DatabaseConnection conn = (DatabaseConnection) connection;
// see bug in 18011, set url and driver_jar.
conn.setURL(DatabaseConnStrUtil.getURLString(conn));
// see bug in feature 5998, set dbmsId.
String repositoryType = node.getElementParameter("PROPERTY_TYPE").getRepositoryValue(); //$NON-NLS-1$
if (repositoryType.startsWith("DATABASE") && repositoryType.contains(":")) { //$NON-NLS-1$ //$NON-NLS-2$
String product = repositoryType.substring(repositoryType.indexOf(":") + 1); //$NON-NLS-1$
// see bug in feature 17761.
if (product.equals(EDatabaseTypeName.GENERAL_JDBC.getProduct())) {
String driverClass = getParameterValue(connection, node, "DRIVER_CLASS"); //$NON-NLS-1$
List<EDatabase4DriverClassName> driverClasses = EDatabase4DriverClassName.indexOfByDriverClass(driverClass);
if (driverClasses.size() > 0) { // use the first one
product = driverClasses.get(0).getDbType().getProduct();
} else {
product = EDatabaseTypeName.MYSQL.getProduct();
}
}
String mapping = MetadataTalendType.getDefaultDbmsFromProduct(product).getId();
conn.setDbmsId(mapping);
}
}
return true;
}
/**
*
* DOC wzhang Comment method "setValue".
*
* @param connection
* @param node
* @param repositoryValue
*/
public static void setValue(Connection connection, INode node, String repositoryValue) {
if (connection == null || node == null || repositoryValue == null) {
return;
} else if (connection instanceof XmlFileConnection) {
setXmlFileValue((XmlFileConnection) connection, node, repositoryValue);
} else if (connection instanceof DatabaseConnection) {
setDatabaseValue((DatabaseConnection) connection, node, repositoryValue);
} else if (connection instanceof EbcdicConnection) {
setEbcdicValue((EbcdicConnection) connection, node, repositoryValue);
} else if (connection instanceof DelimitedFileConnection) {
setDelimitedFileValue((DelimitedFileConnection) connection, node, repositoryValue);
} else if (connection instanceof LDAPSchemaConnection) {
setLDAPSchemaValue((LDAPSchemaConnection) connection, node, repositoryValue);
} else if (connection instanceof WSDLSchemaConnection) {
setWSDLSchemaValue((WSDLSchemaConnection) connection, node, repositoryValue);
} else if (connection instanceof LdifFileConnection) {
setLdifFileValue((LdifFileConnection) connection, node, repositoryValue);
} else if (connection instanceof RegexpFileConnection) {
setRegexpFileValue((RegexpFileConnection) connection, node, repositoryValue);
} else if (connection instanceof PositionalFileConnection) {
setPositionalFileValue((PositionalFileConnection) connection, node, repositoryValue);
} else if (connection instanceof FileExcelConnection) {
setFileExcelValue((FileExcelConnection) connection, node, repositoryValue);
} else if (connection instanceof SAPConnection) {
setSAPValue((SAPConnection) connection, node, repositoryValue);
} else if (connection instanceof SalesforceSchemaConnection) {
setSalesforceSchema((SalesforceSchemaConnection) connection, node, repositoryValue);
} else if (connection instanceof MDMConnection) {
setMDMValue((MDMConnection) connection, node, repositoryValue);
} else if (connection instanceof BRMSConnection) {
setBRMSValue((BRMSConnection) connection, node, repositoryValue);
} else if (connection instanceof HL7Connection) {
setHL7Value((HL7Connection) connection, node, repositoryValue);
}
for (IDragAndDropServiceHandler handler : DragAndDropManager.getHandlers()) {
if (handler.canHandle(connection)) {
handler.setComponentValue(connection, node, repositoryValue);
}
}
}
/**
*
* DOC wzhang Comment method "getParameterValue".
*
* @param node
* @param paramName
* @return
*/
private static String getParameterValue(Connection connection, INode node, String paramName) {
String originalValue = getParameterOriginalValue(connection, node, paramName);
if (originalValue != null) {
return TalendQuoteUtils.removeQuotes(originalValue);
}
return null;
}
private static String getParameterOriginalValue(Connection connection, INode node, String paramName) {
if (node != null || paramName != null) {
IElementParameter param = node.getElementParameter(paramName);
if (param != null) {
Object o = param.getValue();
if (o instanceof String || o instanceof Boolean || o instanceof Integer || o instanceof Long
|| o instanceof Character) {
String value = String.valueOf(o);
if (isConetxtParaMode(connection, value)) {
value = getContextOriginalValue(connection, node, value);
}
return value;
} else if (o instanceof List && paramName.equals("DRIVER_JAR")) {
List<Map<String, Object>> list = (List<Map<String, Object>>) o;
String userDir = System.getProperty("user.dir"); //$NON-NLS-1$
String pathSeparator = System.getProperty("file.separator"); //$NON-NLS-1$
String defaultPath = userDir + pathSeparator + "lib" + pathSeparator + "java"; //$NON-NLS-1$ //$NON-NLS-2$
Character comma = ';';
String symbol = "\\";
String jarspath = "";
for (int i = 0; i < list.size(); i++) {
jarspath = jarspath + defaultPath + symbol + list.get(i).get("JAR_NAME");
if (i < list.size() - 1) {
jarspath = jarspath + comma.toString();
}
}
return jarspath;
}
}
}
return null;
}
protected static String getValueFromRepositoryName(Connection connection, INode node, String repositoryName) {
for (IElementParameter param : (List<IElementParameter>) node.getElementParameters()) {
if (param.getRepositoryValue() != null) {
if (param.getRepositoryValue().equals(repositoryName)) {
if (param.getFieldType().equals(EParameterFieldType.CLOSED_LIST)) {
String repositoryItem = getRepositoryItemFromRepositoryName(param, repositoryName);
if (isConetxtParaMode(connection, repositoryItem)) {
return getContextOriginalValue(connection, node, repositoryItem);
}
return repositoryItem;
} else {
String value = (String) param.getValue();
if (isConetxtParaMode(connection, value)) {
return getContextOriginalValue(connection, node, value);
}
return value;
}
}
}
}
return ""; //$NON-NLS-1$
}
protected static String getRepositoryItemFromRepositoryName(IElementParameter param, String repositoryName) {
String value = (String) param.getValue();
Object[] valuesList = param.getListItemsValue();
String[] originalList = param.getListItemsDisplayName();
for (int i = 0; i < valuesList.length; i++) {
if (valuesList[i].equals(value)) {
return originalList[i];
}
}
return ""; //$NON-NLS-1$
}
private static Object getParameterObjectValue(INode node, String paramName) {
if (node != null || paramName != null) {
IElementParameter param = node.getElementParameter(paramName);
if (param != null) {
Object o = param.getValue();
return o;
}
}
return null;
}
/**
*
* DOC wzhang Comment method "setDatabaseType".
*
* @param connection
* @param node
*/
private static void setDatabaseType(DatabaseConnection connection, INode node) {
IElementParameter parameter = node.getElementParameter("TYPE"); //$NON-NLS-1$
if (parameter == null) {
// GreePlum
IElementParameter para = node.getElementParameter("PROPERTY"); //$NON-NLS-1$
if (para.getRepositoryValue().endsWith(EDatabaseTypeName.GREENPLUM.getProduct())) {
connection.setDatabaseType(EDatabaseTypeName.GREENPLUM.getDisplayName());
connection.setProductId(EDatabaseTypeName.GREENPLUM.getProduct());
}
// PostgresPlus
if (para.getRepositoryValue().endsWith(EDatabaseTypeName.PLUSPSQL.getProduct())) {
connection.setDatabaseType(EDatabaseTypeName.PLUSPSQL.getDisplayName());
connection.setProductId(EDatabaseTypeName.PLUSPSQL.getProduct());
}
// jdbc
if (para.getRepositoryValue().endsWith(EDatabaseTypeName.GENERAL_JDBC.getProduct())) {
connection.setDatabaseType(EDatabaseTypeName.GENERAL_JDBC.getDisplayName());
connection.setProductId(EDatabaseTypeName.GENERAL_JDBC.getProduct());
}
return;
}
// mysql
else if (EDatabaseTypeName.MYSQL.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.MYSQL.getDisplayName());
connection.setProductId(EDatabaseTypeName.MYSQL.getProduct());
}
// mssql
else if (EDatabaseTypeName.MSSQL.getXmlName().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.MSSQL.getDisplayName());
connection.setProductId(EDatabaseTypeName.MSSQL.getProduct());
}
// Exasolution
else if (EDatabaseTypeName.EXASOL.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.EXASOL.getDisplayName());
connection.setProductId(EDatabaseTypeName.EXASOL.getProduct());
}
// Psql
else if (EDatabaseTypeName.PSQL.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.PSQL.getDisplayName());
connection.setProductId(EDatabaseTypeName.PSQL.getProduct());
}
// PlusSql
else if (EDatabaseTypeName.PLUSPSQL.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.PLUSPSQL.getDisplayName());
connection.setProductId(EDatabaseTypeName.PLUSPSQL.getProduct());
}
// DB2
else if (EDatabaseTypeName.IBMDB2.getProduct().equalsIgnoreCase(((String) parameter.getValue()).replace(' ', '_'))) {
connection.setDatabaseType(EDatabaseTypeName.IBMDB2.getDisplayName());
connection.setProductId(EDatabaseTypeName.IBMDB2.getProduct());
}
// Ingres
else if (EDatabaseTypeName.INGRES.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.INGRES.getDisplayName());
connection.setProductId(EDatabaseTypeName.INGRES.getProduct());
}
// Interbase
else if (EDatabaseTypeName.INTERBASE.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.INTERBASE.getDisplayName());
connection.setProductId(EDatabaseTypeName.INTERBASE.getProduct());
}
// Sqlite
else if (EDatabaseTypeName.SQLITE.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.SQLITE.getDisplayName());
connection.setProductId(EDatabaseTypeName.SQLITE.getProduct());
}
// Firebird
else if (EDatabaseTypeName.FIREBIRD.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.FIREBIRD.getDisplayName());
connection.setProductId(EDatabaseTypeName.FIREBIRD.getProduct());
}
// Informix
else if (EDatabaseTypeName.INFORMIX.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.INFORMIX.getDisplayName());
connection.setProductId(EDatabaseTypeName.INFORMIX.getProduct());
}
// Access
else if (EDatabaseTypeName.ACCESS.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.ACCESS.getDisplayName());
connection.setProductId(EDatabaseTypeName.ACCESS.getProduct());
}
// Teradata
else if (EDatabaseTypeName.TERADATA.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.TERADATA.getDisplayName());
connection.setProductId(EDatabaseTypeName.TERADATA.getProduct());
}
// AS400
else if (EDatabaseTypeName.AS400.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.AS400.getDisplayName());
connection.setProductId(EDatabaseTypeName.AS400.getProduct());
}
// Vertica
// not exist in "DB Type" in Database Connection page.
// else if (EDatabaseTypeName.VERTICA.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
// connection.setDatabaseType(EDatabaseTypeName.VERTICA.getDisplayName());
// connection.setProductId(EDatabaseTypeName.VERTICA.getProduct());
// }
// MaxDB
else if (EDatabaseTypeName.MAXDB.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.MAXDB.getDisplayName());
connection.setProductId(EDatabaseTypeName.MAXDB.getProduct());
}
// Paraccel
else if (EDatabaseTypeName.PARACCEL.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.PARACCEL.getDisplayName());
connection.setProductId(EDatabaseTypeName.PARACCEL.getProduct());
}
// NeTezza
else if (EDatabaseTypeName.NETEZZA.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.NETEZZA.getDisplayName());
connection.setProductId(EDatabaseTypeName.NETEZZA.getProduct());
}
// Sybase
else if (((String) parameter.getValue()).toLowerCase().startsWith(EDatabaseTypeName.SYBASEASE.getProduct().toLowerCase())) {
parameter = node.getElementParameter("TYPE"); //$NON-NLS-1$
if ("SybaseASE".equals(parameter.getValue())) { //$NON-NLS-1$
connection.setDatabaseType(EDatabaseTypeName.SYBASEASE.getDisplayName());
connection.setProductId(EDatabaseTypeName.SYBASEASE.getProduct());
}
// not exist in "DB Type" in Database Connection page.
// else if ("SybaseIQ".equals(parameter.getValue())) {
// connection.setDatabaseType(EDatabaseTypeName.SYBASEIQ.getDisplayName());
// }
return;
}
// oracle
else if (EDatabaseTypeName.ORACLEFORSID.getProduct().equalsIgnoreCase((String) parameter.getValue())
|| EDatabaseTypeName.ORACLEFORSID.getXmlName().equalsIgnoreCase((String) parameter.getValue())
|| EDatabaseTypeName.ORACLESN.getXmlName().equalsIgnoreCase((String) parameter.getValue())
|| EDatabaseTypeName.ORACLE_OCI.getXmlName().equalsIgnoreCase((String) parameter.getValue())
|| EDatabaseTypeName.ORACLE_RAC.getXmlName().equalsIgnoreCase((String) parameter.getValue())) {
parameter = node.getElementParameter("CONNECTION_TYPE"); //$NON-NLS-1$
// if ("ORACLE_OCI".equals(parameter.getValue())) {
// }
if ("ORACLE_SERVICE_NAME".equals(parameter.getValue()) || "service_name".equals(parameter.getValue())) { //$NON-NLS-1$ //$NON-NLS-2$
connection.setDatabaseType(EDatabaseTypeName.ORACLESN.getDisplayName());
connection.setProductId(EDatabaseTypeName.ORACLESN.getProduct());
} else if ("ORACLE_SID".equals(parameter.getValue()) || "sid".equals(parameter.getValue())) { //$NON-NLS-1$ //$NON-NLS-2$
connection.setDatabaseType(EDatabaseTypeName.ORACLEFORSID.getDisplayName());
connection.setProductId(EDatabaseTypeName.ORACLESN.getProduct());
} else if ("ORACLE_RAC".equals(parameter.getValue()) || "rac".equals(parameter.getValue())) { //$NON-NLS-1$ //$NON-NLS-2$
connection.setDatabaseType(EDatabaseTypeName.ORACLE_RAC.getDisplayName());
connection.setProductId(EDatabaseTypeName.ORACLESN.getProduct());
}
return;
}
// HSql
else if (EDatabaseTypeName.HSQLDB_SERVER.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
parameter = node.getElementParameter("RUNNING_MODE"); //$NON-NLS-1$
if ("HSQLDB_SERVER".equals(parameter.getValue())) { //$NON-NLS-1$
connection.setDatabaseType(EDatabaseTypeName.HSQLDB_SERVER.getDisplayName());
connection.setProductId(EDatabaseTypeName.HSQLDB_SERVER.getProduct());
} else if ("HSQLDB_WEBSERVER".equals(parameter.getValue())) { //$NON-NLS-1$
connection.setDatabaseType(EDatabaseTypeName.HSQLDB_WEBSERVER.getDisplayName());
connection.setProductId(EDatabaseTypeName.HSQLDB_WEBSERVER.getProduct());
} else if ("HSQLDB_INPROGRESS_PERSISTENT".equals(parameter.getValue())) { //$NON-NLS-1$
connection.setDatabaseType(EDatabaseTypeName.HSQLDB_IN_PROGRESS.getDisplayName());
connection.setProductId(EDatabaseTypeName.HSQLDB_IN_PROGRESS.getProduct());
}
return;
}
// JavaDB
else if (EDatabaseTypeName.JAVADB_EMBEDED.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
parameter = node.getElementParameter("FRAMEWORK_TYPE"); //$NON-NLS-1$
if ("EMBEDED".equals(parameter.getValue())) { //$NON-NLS-1$
connection.setDatabaseType(EDatabaseTypeName.JAVADB_EMBEDED.getDisplayName());
connection.setProductId(EDatabaseTypeName.JAVADB_EMBEDED.getProduct());
} else if ("JCCJDBC".equals(parameter.getValue())) { //$NON-NLS-1$
connection.setDatabaseType(EDatabaseTypeName.JAVADB_JCCJDBC.getDisplayName());
connection.setProductId(EDatabaseTypeName.JAVADB_JCCJDBC.getProduct());
} else if ("DERBYCLIENT".equals(parameter.getValue())) { //$NON-NLS-1$
connection.setDatabaseType(EDatabaseTypeName.JAVADB_DERBYCLIENT.getDisplayName());
connection.setProductId(EDatabaseTypeName.JAVADB_DERBYCLIENT.getProduct());
}
return;
}
// DB
else if (node.getComponent().getName().startsWith("tDBInput") || node.getComponent().getName().startsWith("tDBOutput")) { //$NON-NLS-1$ //$NON-NLS-2$
parameter = node.getElementParameter("PROPERTY"); //$NON-NLS-1$
if (parameter.getRepositoryValue().endsWith(EDatabaseTypeName.GODBC.getProduct())) {
connection.setDatabaseType(EDatabaseTypeName.GODBC.getDisplayName());
connection.setProductId(EDatabaseTypeName.GODBC.getProduct());
}
}
// SAX
// can not find corresponding component. also not exist in EDatabaseType.java.
}
/**
*
* DOC wzhang Comment method "setDatabaseValue".
*
* @param connection
* @param node
* @param repositoryValue
*/
private static void setDatabaseValue(DatabaseConnection connection, INode node, String repositoryValue) {
if ("USERNAME".equals(repositoryValue)) { //$NON-NLS-1$
String value = getValueFromRepositoryName(connection, node, "USERNAME"); //$NON-NLS-1$
if (value != null) {
connection.setUsername(TalendQuoteUtils.removeQuotes(value));
}
}
if ("PASSWORD".equals(repositoryValue)) { //$NON-NLS-1$
String value = getValueFromRepositoryName(connection, node, "PASSWORD"); //$NON-NLS-1$
if (value != null) {
// see bug in feature 5998,encrypt the password.
try {
connection.setPassword(PasswordEncryptUtil.encryptPassword(TalendQuoteUtils.removeQuotes(value)));
} catch (Exception e) {
ExceptionHandler.process(e);
}
}
}
if ("SERVER_NAME".equals(repositoryValue)) { //$NON-NLS-1$
String value = getValueFromRepositoryName(connection, node, "SERVER_NAME"); //$NON-NLS-1$
if (value != null) {
connection.setServerName(TalendQuoteUtils.removeQuotes(value));
}
}
if ("PORT".equals(repositoryValue)) { //$NON-NLS-1$
String value = getValueFromRepositoryName(connection, node, "PORT"); //$NON-NLS-1$
if (value != null) {
connection.setPort(TalendQuoteUtils.removeQuotes(value));
}
}
if ("SID".equals(repositoryValue)) { //$NON-NLS-1$
String value = getValueFromRepositoryName(connection, node, "SID"); //$NON-NLS-1$
if (value != null) {
connection.setSID(TalendQuoteUtils.removeQuotes(value));
}
}
if ("SCHEMA".equals(repositoryValue)) { //$NON-NLS-1$
String value = getValueFromRepositoryName(connection, node, "SCHEMA"); //$NON-NLS-1$
if (value != null) {
if (connection.getDatabaseType().equals(EDatabaseTypeName.ORACLEFORSID.getDisplayName())) {
connection.setUiSchema(TalendQuoteUtils.removeQuotes(value.toUpperCase()));
} else {
connection.setUiSchema(TalendQuoteUtils.removeQuotes(value));
}
}
}
if ("CDC_TYPE_MODE".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "CDC_TYPE_MODE"); //$NON-NLS-1$
if (value != null && Boolean.valueOf(value).booleanValue()) {
connection.setCdcTypeMode(CDCTypeMode.LOG_MODE.getName());
}
}
// for feature 11674
if ("DBPATH".equals(repositoryValue)) {//$NON-NLS-1$
String value = getParameterValue(connection, node, "DBPATH"); //$NON-NLS-1$
if (value != null) {
connection.setDBRootPath(value);
}
}
if (connection.getDatabaseType().equals(EDatabaseTypeName.ORACLEFORSID.getDisplayName())) {
setDatabaseValueForOracleSid(connection, node, repositoryValue);
}
if (connection.getDatabaseType().equals(EDatabaseTypeName.ORACLESN.getDisplayName())) {
setDatabaseValueForOracleSeverName(connection, node, repositoryValue);
}
if (connection.getDatabaseType().equals(EDatabaseTypeName.MYSQL.getDisplayName())) {
setDatabaseValueForMysql(connection, node, repositoryValue);
}
if (connection.getDatabaseType().equals(EDatabaseTypeName.EXASOL.getDisplayName())) {
setDatabaseValueForEXASolution(connection, node, repositoryValue);
}
if (connection.getDatabaseType().equals(EDatabaseTypeName.SYBASEASE.getDisplayName())
|| connection.getDatabaseType().equals(EDatabaseTypeName.SYBASEIQ.getDisplayName())) {
setDatabaseValueForSysbase(connection, node, repositoryValue);
}
if (connection.getDatabaseType().equals(EDatabaseTypeName.ACCESS.getDisplayName())) {
setDatabaseValueForAccess(connection, node, repositoryValue);
}
if (connection.getDatabaseType().equals(EDatabaseTypeName.SQLITE.getDisplayName())) {
setDatabaseValueForSqlite(connection, node, repositoryValue);
}
if (connection.getDatabaseType().equals(EDatabaseTypeName.FIREBIRD.getDisplayName())) {
setDatabaseValueForFileBird(connection, node, repositoryValue);
}
if (connection.getDatabaseType().equals(EDatabaseTypeName.AS400.getDisplayName())) {
setDatabaseValueForAs400(connection, node, repositoryValue);
}
if (connection.getDatabaseType().equals(EDatabaseTypeName.MSSQL.getDisplayName())) {
setDatabaseValueForMSSql(connection, node, repositoryValue);
}
if (connection.getDatabaseType().equals(EDatabaseTypeName.GODBC.getDisplayName())) {
setDatabaseValueForDB(connection, node, repositoryValue);
}
if (connection.getDatabaseType().equals(EDatabaseTypeName.INGRES.getDisplayName())) {
setDatabaseValueForIngres(connection, node, repositoryValue);
}
if (connection.getDatabaseType().equals(EDatabaseTypeName.INFORMIX.getDisplayName())) {
setDatabaseValueForInformix(connection, node, repositoryValue);
}
if (connection.getDatabaseType().equals(EDatabaseTypeName.JAVADB.getDisplayName())
|| connection.getDatabaseType().equals(EDatabaseTypeName.JAVADB_EMBEDED.getDisplayName())
|| connection.getDatabaseType().equals(EDatabaseTypeName.JAVADB_JCCJDBC.getDisplayName())
|| connection.getDatabaseType().equals(EDatabaseTypeName.JAVADB_DERBYCLIENT.getDisplayName())) {
setDatabaseValueForjavadb(connection, node, repositoryValue);
}
if (connection.getDatabaseType().equals(EDatabaseTypeName.NETEZZA.getDisplayName())) {
setDatabaseValueForNetezza(connection, node, repositoryValue);
}
if (connection.getDatabaseType().equals(EDatabaseTypeName.GENERAL_JDBC.getDisplayName())) {
setDatabaseValueForJdbc(connection, node, repositoryValue);
}
}
/**
*
* DOC wzhang Comment method "setDatabaseValueForOracleSid".
*
* @param connection
* @param node
* @param repositoryValue
*/
private static void setDatabaseValueForOracleSid(DatabaseConnection connection, INode node, String repositoryValue) {
if ("DB_VERSION".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "DB_VERSION"); //$NON-NLS-1$
String dbVersionName = EDatabaseVersion4Drivers.getDbVersionName(EDatabaseTypeName.ORACLEFORSID, value);
if (value != null) {
connection.setDbVersionString(dbVersionName);
}
}
if ("SID".equals(repositoryValue)) { //$NON-NLS-1$
IElementParameter param = node.getElementParameter("CONNECTION_TYPE"); //$NON-NLS-1$
if (param != null && "ORACLE_OCI".equals(param.getValue())) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "LOCAL_SERVICE_NAME"); //$NON-NLS-1$
if (value != null) {
connection.setSID(value);
}
} else {
String value = getParameterValue(connection, node, "DBNAME"); //$NON-NLS-1$
if (value != null) {
connection.setSID(value);
}
}
}
}
private static void setDatabaseValueForOracleSeverName(DatabaseConnection connection, INode node, String repositoryValue) {
if ("DB_VERSION".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "DB_VERSION"); //$NON-NLS-1$
String dbVersionName = EDatabaseVersion4Drivers.getDbVersionName(EDatabaseTypeName.ORACLESN, value);
if (value != null) {
connection.setDbVersionString(dbVersionName);
}
}
if ("SID".equals(repositoryValue)) { //$NON-NLS-1$
IElementParameter param = node.getElementParameter("CONNECTION_TYPE"); //$NON-NLS-1$
if (param != null && "ORACLE_OCI".equals(param.getValue())) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "LOCAL_SERVICE_NAME"); //$NON-NLS-1$
if (value != null) {
connection.setSID(value);
}
} else {
String value = getParameterValue(connection, node, "DBNAME"); //$NON-NLS-1$
if (value != null) {
connection.setSID(value);
}
}
}
}
private static void setDatabaseValueForAs400(DatabaseConnection connection, INode node, String repositoryValue) {
if ("DB_VERSION".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "DB_VERSION"); //$NON-NLS-1$
String dbVersionName = EDatabaseVersion4Drivers.getDbVersionName(EDatabaseTypeName.AS400, value);
if (value != null) {
connection.setDbVersionString(dbVersionName);
}
}
if ("PROPERTIES_STRING".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "PROPERTIES"); //$NON-NLS-1$
if (value != null) {
connection.setAdditionalParams(value);
}
}
}
private static void setDatabaseValueForMysql(DatabaseConnection connection, INode node, String repositoryValue) {
if ("PROPERTIES_STRING".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "PROPERTIES"); //$NON-NLS-1$
if (value != null) {
connection.setAdditionalParams(value);
}
}
}
private static void setDatabaseValueForEXASolution(DatabaseConnection connection, INode node, String repositoryValue) {
if ("PROPERTIES_STRING".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "PROPERTIES"); //$NON-NLS-1$
if (value != null) {
connection.setAdditionalParams(value);
}
}
}
private static void setDatabaseValueForMSSql(DatabaseConnection connection, INode node, String repositoryValue) {
if ("PROPERTIES_STRING".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "PROPERTIES"); //$NON-NLS-1$
if (value != null) {
connection.setAdditionalParams(value);
}
}
}
private static void setDatabaseValueForDB(DatabaseConnection connection, INode node, String repositoryValue) {
if ("DATASOURCE".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "DBNAME"); //$NON-NLS-1$
if (value != null) {
connection.setDatasourceName(value);
}
}
}
private static void setDatabaseValueForSysbase(DatabaseConnection connection, INode node, String repositoryValue) {
if ("SERVER_NAME".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "SERVER"); //$NON-NLS-1$
if (value != null) {
connection.setServerName(value);
}
}
}
private static void setDatabaseValueForAccess(DatabaseConnection connection, INode node, String repositoryValue) {
if ("DB_VERSION".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "DB_VERSION"); //$NON-NLS-1$
if (value != null) {
EDatabaseVersion4Drivers version = EDatabaseVersion4Drivers.indexOfByVersion(value);
if (version != null) {
connection.setDbVersionString(version.getVersionValue());
}
}
}
if ("FILE".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "DBNAME"); //$NON-NLS-1$
if (value != null) {
connection.setFileFieldName(value);
}
}
}
private static void setDatabaseValueForFileBird(DatabaseConnection connection, INode node, String repositoryValue) {
if ("FILE".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "DB"); //$NON-NLS-1$
if (value != null) {
connection.setFileFieldName(value);
}
}
}
private static void setDatabaseValueForSqlite(DatabaseConnection connection, INode node, String repositoryValue) {
if ("FILE".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "DBNAME"); //$NON-NLS-1$
if (value != null) {
connection.setFileFieldName(value);
}
}
}
private static void setDatabaseValueForIngres(DatabaseConnection connection, INode node, String repositoryValue) {
if ("SERVER_NAME".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "SERVER"); //$NON-NLS-1$
if (value != null) {
connection.setServerName(value);
}
}
}
private static void setDatabaseValueForInformix(DatabaseConnection connection, INode node, String repositoryValue) {
if ("PROPERTIES_STRING".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "PROPERTIES"); //$NON-NLS-1$
if (value != null) {
connection.setAdditionalParams(value);
}
}
if ("DATASOURCE".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "DBSERVER"); //$NON-NLS-1$
if (value != null) {
connection.setDatasourceName(value);
}
}
}
private static void setDatabaseValueForjavadb(DatabaseConnection connection, INode node, String repositoryValue) {
if ("SID".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "DB"); //$NON-NLS-1$
if (value != null) {
connection.setSID(value);
}
}
if ("DIRECTORY".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "DBPATH"); //$NON-NLS-1$
if (value != null) {
connection.setDBRootPath(value);
}
}
}
private static void setDatabaseValueForNetezza(DatabaseConnection connection, INode node, String repositoryValue) {
if ("DBNAME".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "DBNAME"); //$NON-NLS-1$
if (value != null) {
connection.setDatasourceName(value);
}
}
}
private static void setDatabaseValueForJdbc(DatabaseConnection connection, INode node, String repositoryValue) {
if ("URL".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "URL"); //$NON-NLS-1$
if (value != null) {
connection.setURL(value);
}
}
if ("DRIVER_JAR".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "DRIVER_JAR"); //$NON-NLS-1$
if (value != null) {
connection.setDriverJarPath(value);
}
}
if ("DRIVER_CLASS".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "DRIVER_CLASS"); //$NON-NLS-1$
if (value != null) {
connection.setDriverClass(value);
}
}
}
/**
*
* DOC wzhang Comment method "setXmlFileValue".
*
* @param connection
* @param node
* @param repositoryValue
*/
private static void setXmlFileValue(XmlFileConnection connection, INode node, String repositoryValue) {
if ("FILE_PATH".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "FILENAME"); //$NON-NLS-1$
if (value != null) {
connection.setXmlFilePath(value);
}
}
if ("ENCODING".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "ENCODING"); //$NON-NLS-1$
if (value != null) {
connection.setEncoding(value);
}
}
EList emfSchemaList = connection.getSchema();
if (emfSchemaList.size() < 1) {
emfSchemaList.add(ConnectionFactory.eINSTANCE.createXmlXPathLoopDescriptor());
}
XmlXPathLoopDescriptor xmlDesc = (XmlXPathLoopDescriptor) emfSchemaList.get(0);
if ("XPATH_QUERY".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "LOOP_QUERY"); //$NON-NLS-1$
if (value != null) {
xmlDesc.setAbsoluteXPathQuery(value);
}
}
if ("LIMIT".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "LIMIT"); //$NON-NLS-1$
if (value != null && value.trim().length() > 0) {
xmlDesc.setLimitBoucle(Integer.valueOf(value));
}
}
if ("XML_MAPPING".equals(repositoryValue)) { //$NON-NLS-1$
IElementParameter param = node.getElementParameter("MAPPING"); //$NON-NLS-1$
if (param != null) {
EList schemaTargets = xmlDesc.getSchemaTargets();
List<Map<String, Object>> tableInfo = (List<Map<String, Object>>) param.getValue();
for (Map<String, Object> mapObject : tableInfo) {
String schema = (String) mapObject.get("SCHEMA_COLUMN"); //$NON-NLS-1$
if (schema != null) {
String query = (String) mapObject.get("QUERY"); //$NON-NLS-1$
SchemaTarget schemaTarget = ConnectionFactory.eINSTANCE.createSchemaTarget();
schemaTargets.add(schemaTarget);
schemaTarget.setTagName(schema);
schemaTarget.setRelativeXPathQuery(TalendQuoteUtils.removeQuotes(query));
}
}
}
}
}
/**
*
* DOC wzhang Comment method "setLDAPSchemaValue".
*
* @param connection
* @param node
* @param repositoryValue
*/
private static void setLDAPSchemaValue(LDAPSchemaConnection connection, INode node, String repositoryValue) {
if ("HOST".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "HOST").replaceAll("\\\\\\\\", "\\\\"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
if (value != null) {
connection.setHost(value);
}
}
if ("PORT".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "PORT"); //$NON-NLS-1$
if (value != null) {
connection.setPort(value);
}
}
if ("BASEDN".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "BASEDN").replaceAll("\\\\\\\\", "\\\\"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
if (value != null) {
connection.setSelectedDN(value);
}
}
if ("PROTOCOL".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "PROTOCOL"); //$NON-NLS-1$
if (value != null) {
connection.setEncryptionMethodName(value);
}
}
if ("AUTHENTIFICATION".equals(repositoryValue)) { //$NON-NLS-1$
IElementParameter param = node.getElementParameter("AUTHENTIFICATION"); //$NON-NLS-1$
if (param != null) {
Object o = param.getValue();
if (o != null && o instanceof Boolean) {
connection.setUseAuthen((Boolean) o);
}
}
}
if ("USER".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "USER").replaceAll("\\\\\\\\", "\\\\"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
if (value != null) {
connection.setBindPrincipal(value);
}
}
if ("PASSWORD".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "PASS").replaceAll("\\\\\\\\", "\\\\"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
if (value != null) {
connection.setBindPassword(value);
}
}
if ("FILTER".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "FILTER"); //$NON-NLS-1$
if (value != null) {
connection.setFilter(value);
}
}
if ("ALIASES".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "ALIASES"); //$NON-NLS-1$
if (value != null) {
connection.setAliases(value);
}
}
if ("REFERRALS".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "REFERRALS"); //$NON-NLS-1$
if (value != null) {
connection.setReferrals(value);
}
}
if ("COLUMN_COUNT_LIMIT".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "LIMIT"); //$NON-NLS-1$
if (value != null) {
connection.setCountLimit(value);
}
}
if ("TIME_OUT_LIMIT".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "TIMEOUT"); //$NON-NLS-1$
if (value != null) {
connection.setTimeOutLimit(value);
}
}
}
private static void setWSDLSchemaValue(WSDLSchemaConnection connection, INode node, String repositoryValue) {
if ("ENDPOINT".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "ENDPOINT"); //$NON-NLS-1$
if (value != null) {
connection.setWSDL(value);
}
}
if ("WSDLURL".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "WSDL"); //$NON-NLS-1$
if (value != null) {
connection.setEndpointURI(value);
}
}
if ("NEED_AUTH".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "NEED_AUTH"); //$NON-NLS-1$
if (value != null) {
connection.setNeedAuth(Boolean.valueOf(value));
}
}
if ("AUTH_USERNAME".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "AUTH_USERNAME"); //$NON-NLS-1$
if (value != null) {
connection.setUserName(value);
}
}
if ("AUTH_PASSWORD".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "AUTH_PASSWORD"); //$NON-NLS-1$
if (value != null) {
connection.setPassword(value);
}
}
if ("UES_PROXY".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "UES_PROXY"); //$NON-NLS-1$
if (value != null) {
connection.setUseProxy(Boolean.valueOf(value));
}
}
if ("PROXY_HOST".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "PROXY_HOST"); //$NON-NLS-1$
if (value != null) {
connection.setProxyHost(value);
}
}
if ("PROXY_PORT".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "PROXY_PORT"); //$NON-NLS-1$
if (value != null) {
connection.setProxyPort(value);
}
}
if ("PROXY_USERNAME".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "PROXY_USERNAME"); //$NON-NLS-1$
if (value != null) {
connection.setProxyUser(value);
}
}
if ("PROXY_PASSWORD".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "PROXY_PASSWORD"); //$NON-NLS-1$
if (value != null) {
connection.setProxyPassword(value);
}
}
if ("METHOD".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "METHOD"); //$NON-NLS-1$
if (value != null) {
connection.setMethodName(value);
}
}
if ("TIMEOUT".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "TIMEOUT"); //$NON-NLS-1$
if (value != null) {
connection.setTimeOut(Integer.valueOf(value));
}
}
if ("WSDL_PARAMS".equals(repositoryValue)) { //$NON-NLS-1$
Object value = getParameterObjectValue(node, "PARAMS"); //$NON-NLS-1$
if (value != null && value instanceof ArrayList) {
ArrayList<HashMap<String, String>> list = (ArrayList<HashMap<String, String>>) value;
ArrayList<String> result = new ArrayList<String>();
for (HashMap<String, String> m : list) {
Iterator<Map.Entry<String, String>> it = m.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, String> entry = it.next();
result.add(entry.getValue());
}
}
connection.setParameters((ArrayList) result);
}
}
}
private static void setEbcdicValue(EbcdicConnection connection, INode node, String repositoryValue) {
if ("DATA_FILE".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "FILENAME"); //$NON-NLS-1$
if (value != null) {
connection.setDataFile(value);
}
}
if ("XC2J_FILE".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "COPYBOOK"); //$NON-NLS-1$
if (value != null) {
connection.setMidFile(value);
}
}
if ("ENCODING".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "ENCODING"); //$NON-NLS-1$
if (value != null) {
connection.setEncoding(value);
}
}
}
private static void setMDMValue(MDMConnection connection, INode node, String repositoryValue) {
if ("USERNAME".equals(repositoryValue)) {//$NON-NLS-1$
String value = getParameterValue(connection, node, "USERNAME"); //$NON-NLS-1$
if (value != null) {
connection.setUsername(value);
}
}
if ("PASSWORD".equals(repositoryValue)) {//$NON-NLS-1$
String value = getParameterValue(connection, node, "PASSWORD"); //$NON-NLS-1$
if (value != null) {
ConnectionHelper.setPassword(connection, value);
}
}
if ("MDMURL".equals(repositoryValue)) {//$NON-NLS-1$
String value = getParameterValue(connection, node, "MDMURL"); //$NON-NLS-1$
if (value != null) {
String[] values = value.split(":"); //$NON-NLS-1$
String server = values[1].substring(values[1].indexOf("//") + 2); //$NON-NLS-1$
String port = values[2].substring(0, values[2].indexOf("/")); //$NON-NLS-1$
connection.setServer(server);
connection.setPort(port);
}
}
if ("UNIVERSE".equals(repositoryValue)) {//$NON-NLS-1$
String value = getParameterValue(connection, node, "UNIVERSE"); //$NON-NLS-1$
if (value != null) {
connection.setUniverse(value);
}
}
if ("DATAMODEL".equals(repositoryValue)) {//$NON-NLS-1$
String value = getParameterValue(connection, node, "DATAMODEL"); //$NON-NLS-1$
if (value != null) {
connection.setDatamodel(value);
}
}
if ("DATACLUSTER".equals(repositoryValue)) {//$NON-NLS-1$
String value = getParameterValue(connection, node, "DATACLUSTER"); //$NON-NLS-1$
if (value != null) {
connection.setDatacluster(value);
}
}
}
private static void setBRMSValue(BRMSConnection connection, INode node, String repositoryValue) {
if ("XML_FIELD".equals(repositoryValue)) {//$NON-NLS-1$
String value = getParameterValue(connection, node, "XMLFIELD"); //$NON-NLS-1$
if (value != null) {
connection.setXmlField(value);
}
}
if ("GUVNOR_URL".equals(repositoryValue)) {//$NON-NLS-1$
String value = getParameterValue(connection, node, "GUVNOR_URL"); //$NON-NLS-1$
if (value != null) {
connection.setUrlName(value);
}
}
if ("CLASS_NAME".equals(repositoryValue)) {//$NON-NLS-1$
String value = getParameterValue(connection, node, "CLASS_NAME"); //$NON-NLS-1$
if (value != null) {
connection.setClassName(value);
}
}
if ("GUVNOR_PACKAGE".equals(repositoryValue)) {//$NON-NLS-1$
String value = getParameterValue(connection, node, "GUVNOR_PACKAGE"); //$NON-NLS-1$
if (value != null) {
connection.setPackage(value);
}
}
if ("MODULE_USED".equals(repositoryValue)) {//$NON-NLS-1$
String value = getParameterValue(connection, node, "LIBRARY"); //$NON-NLS-1$
if (value != null) {
connection.setModuleUsed(value);
}
}
}
private static void setHL7Value(HL7Connection connection, INode node, String repositoryValue) {
if ("FILE_PATH".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "FILENAME"); //$NON-NLS-1$
if (value != null) {
connection.setFilePath(value);
}
}
if ("START_MSG".equals(repositoryValue)) { //$NON-NLS-1$
final String value = getParameterValue(connection, node, "START_MSG"); //$NON-NLS-1$
if (value != null) {
connection.setStartChar(value);
}
}
if ("END_MSG".equals(repositoryValue)) { //$NON-NLS-1$
final String value = getParameterValue(connection, node, "END_MSG"); //$NON-NLS-1$
if (value != null) {
connection.setEndChar(value);
}
}
}
private static void setLdifFileValue(LdifFileConnection connection, INode node, String repositoryValue) {
if ("FILE_PATH".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "FILENAME"); //$NON-NLS-1$
if (value != null) {
connection.setFilePath(value);
}
}
}
private static void setFileExcelValue(FileExcelConnection connection, INode node, String repositoryValue) {
if ("FILE_PATH".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "FILENAME"); //$NON-NLS-1$
if (value != null) {
connection.setFilePath(value);
}
}
if ("SELECT_ALL_SHEETS".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "ALL_SHEETS"); //$NON-NLS-1$
if (value != null) {
connection.setSelectAllSheets(Boolean.valueOf(value).booleanValue());
}
}
// if ("SHEET_LIST".equals(repositoryValue)) {
// Object value = getParameterObjectValue(node, "SHEETLIST");
// if (value != null && value instanceof ArrayList) {
// ArrayList<HashMap<String, String>> list = (ArrayList<HashMap<String, String>>) value;
// ArrayList<String> result = new ArrayList<String>();
// for (HashMap<String, String> m : list) {
// Iterator<Map.Entry<String, String>> it = m.entrySet().iterator();
// while (it.hasNext()) {
// Map.Entry<String, String> entry = it.next();
// result.add(entry.getValue());
// }
// }
// connection.setSheetList((ArrayList) result);
// }
// }
if ("ADVANCED_SEPARATOR".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "ADVANCED_SEPARATOR"); //$NON-NLS-1$
if (value != null) {
connection.setAdvancedSpearator(Boolean.valueOf(value).booleanValue());
}
}
if ("HEADER".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "HEADER"); //$NON-NLS-1$
if (value != null) {
connection.setHeaderValue(value);
}
}
if ("FOOTER".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "FOOTER"); //$NON-NLS-1$
if (value != null) {
connection.setFooterValue(value);
}
}
if ("LIMIT".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "LIMIT"); //$NON-NLS-1$
if (value != null) {
connection.setLimitValue(value);
}
}
if ("FIRST_COLUMN".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "FIRST_COLUMN"); //$NON-NLS-1$
if (value != null) {
connection.setFirstColumn(value);
}
}
if ("LAST_COLUMN".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "LAST_COLUMN"); //$NON-NLS-1$
if (value != null) {
connection.setLastColumn(value);
}
}
if ("THOUSANDS_SEPARATOR".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "THOUSANDS_SEPARATOR"); //$NON-NLS-1$
if (value != null) {
connection.setThousandSeparator(value);
}
}
if ("DECIMAL_SEPARATOR".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "DECIMAL_SEPARATOR"); //$NON-NLS-1$
if (value != null) {
connection.setDecimalSeparator(value);
}
}
if ("ENCODING".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "ENCODING"); //$NON-NLS-1$
if (value != null) {
connection.setEncoding(value);
}
}
}
/**
*
* DOC wzhang Comment method "setDelimitedFileValue".
*
* @param connection
* @param node
* @param repositoryValue
*/
private static void setDelimitedFileValue(DelimitedFileConnection connection, INode node, String repositoryValue) {
if ("FILE_PATH".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "FILENAME"); //$NON-NLS-1$
if (value != null) {
connection.setFilePath(value);
}
}
if ("ROW_SEPARATOR".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "ROWSEPARATOR"); //$NON-NLS-1$
if (value != null) {
connection.setRowSeparatorValue(value);
}
}
if ("FIELD_SEPARATOR".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "FIELDSEPARATOR"); //$NON-NLS-1$
if (value != null) {
connection.setFieldSeparatorValue(value);
}
}
if ("CSV_OPTION".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "CSV_OPTION"); //$NON-NLS-1$
if (value != null) {
connection.setCsvOption(Boolean.valueOf(value).booleanValue());
}
if (connection.isCsvOption()) {
connection.setEscapeType(Escape.CSV);
} else {
connection.setEscapeType(Escape.DELIMITED);
}
}
if ("ESCAPE_CHAR".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterOriginalValue(connection, node, "ESCAPE_CHAR"); //$NON-NLS-1$
if (value != null) {
connection.setEscapeChar(value);
}
}
if ("TEXT_ENCLOSURE".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterOriginalValue(connection, node, "TEXT_ENCLOSURE"); //$NON-NLS-1$
if (value != null) {
connection.setTextEnclosure(value);
}
}
if ("HEADER".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "HEADER"); //$NON-NLS-1$
if (value != null) {
connection.setHeaderValue(value);
}
}
if ("FOOTER".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "FOOTER"); //$NON-NLS-1$
if (value != null) {
connection.setFooterValue(value);
}
}
if ("LIMIT".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "LIMIT"); //$NON-NLS-1$
if (value != null) {
connection.setLimitValue(value);
}
}
if ("REMOVE_EMPTY_ROW".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "REMOVE_EMPTY_ROW"); //$NON-NLS-1$
if (value != null) {
connection.setRemoveEmptyRow(Boolean.valueOf(value).booleanValue());
}
}
if ("ENCODING".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "ENCODING"); //$NON-NLS-1$
if (value != null) {
connection.setEncoding(value);
}
}
if ("SPLITRECORD".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "SPLITRECORD"); //$NON-NLS-1$
if (value != null) {
connection.setSplitRecord(Boolean.valueOf(value).booleanValue());
}
}
}
/**
*
* DOC wzhang Comment method "setPositionalFileValue".
*
* @param connection
* @param node
* @param repositoryValue
*/
private static void setPositionalFileValue(PositionalFileConnection connection, INode node, String repositoryValue) {
if ("FILE_PATH".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "FILENAME"); //$NON-NLS-1$
if (value != null) {
connection.setFilePath(value);
}
}
if ("ROW_SEPARATOR".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "ROWSEPARATOR"); //$NON-NLS-1$
if (value != null) {
connection.setRowSeparatorValue(value);
}
}
if ("PATTERN".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "PATTERN"); //$NON-NLS-1$
if (value != null) {
connection.setFieldSeparatorValue(value);
}
}
if ("REMOVE_EMPTY_ROW".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "REMOVE_EMPTY_ROW"); //$NON-NLS-1$
if (value != null) {
connection.setRemoveEmptyRow(Boolean.valueOf(value).booleanValue());
}
}
if ("HEADER".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "HEADER"); //$NON-NLS-1$
if (value != null) {
connection.setHeaderValue(value);
}
}
if ("FOOTER".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "FOOTER"); //$NON-NLS-1$
if (value != null) {
connection.setFooterValue(value);
}
}
if ("LIMIT".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "LIMIT"); //$NON-NLS-1$
if (value != null) {
connection.setLimitValue(value);
}
}
}
/**
*
* DOC wzhang Comment method "setRegexpFileValue".
*
* @param connection
* @param node
* @param repositoryValue
*/
private static void setRegexpFileValue(RegexpFileConnection connection, INode node, String repositoryValue) {
if ("FILE_PATH".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "FILENAME"); //$NON-NLS-1$
if (value != null) {
connection.setFilePath(value);
}
}
if ("ROW_SEPARATOR".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "ROWSEPARATOR"); //$NON-NLS-1$
if (value != null) {
connection.setRowSeparatorValue(value);
}
}
if ("REGEXP".equals(repositoryValue)) { //$NON-NLS-1$
IElementParameter param = node.getElementParameter("REGEX"); //$NON-NLS-1$
if (param != null) {
String value = (String) param.getValue();
if (value != null) {
connection.setFieldSeparatorValue(value);
}
}
}
if ("HEADER".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "HEADER"); //$NON-NLS-1$
if (value != null) {
connection.setHeaderValue(value);
}
}
if ("FOOTER".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "FOOTER"); //$NON-NLS-1$
if (value != null) {
connection.setFooterValue(value);
}
}
if ("LIMIT".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "LIMIT"); //$NON-NLS-1$
if (value != null) {
connection.setLimitValue(value);
}
}
if ("REMOVE_EMPTY_ROW".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "REMOVE_EMPTY_ROW"); //$NON-NLS-1$
if (value != null) {
connection.setRemoveEmptyRow(Boolean.valueOf(value).booleanValue());
}
}
if ("ENCODING".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "ENCODING"); //$NON-NLS-1$
if (value != null) {
connection.setEncoding(value);
}
}
}
/*
* SAP
*/
private static void setSAPValue(SAPConnection connection, INode node, String repositoryValue) {
if ("CLIENT".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "CLIENT"); //$NON-NLS-1$
if (value != null) {
connection.setClient(value);
}
}
if ("PASSWORD".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "PASSWORD"); //$NON-NLS-1$
if (value != null) {
connection.setPassword(value);
}
}
if ("LANGUAGE".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "LANGUAGE"); //$NON-NLS-1$
if (value != null) {
connection.setLanguage(value);
}
}
if ("HOSTNAME".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "HOSTNAME"); //$NON-NLS-1$
if (value != null) {
connection.setHost(value);
}
}
if ("USERID".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "USERID"); //$NON-NLS-1$
if (value != null) {
connection.setUsername(value);
}
}
if ("SYSTEMNUMBER".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "SYSTEMNUMBER"); //$NON-NLS-1$
if (value != null) {
connection.setSystemNumber(value);
}
}
}
/**
*
* DOC wzhang Comment method "setSalesforceSchema".
*
* @param connection
* @param node
* @param repositoryValue
*/
private static void setSalesforceSchema(SalesforceSchemaConnection connection, INode node, String repositoryValue) {
if ("ENDPOINT".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "ENDPOINT"); //$NON-NLS-1$
if (value != null) {
connection.setWebServiceUrl(value);
}
}
if ("USER_NAME".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "USER"); //$NON-NLS-1$
if (value != null) {
connection.setUserName(value);
}
}
if ("PASSWORD".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "PASS"); //$NON-NLS-1$
if (value != null) {
connection.setPassword(value);
}
}
if ("MODULENAME".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "MODULENAME"); //$NON-NLS-1$
if (value != null) {
connection.setModuleName(value);
}
}
if ("QUERY_CONDITION".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "CONDITION"); //$NON-NLS-1$
if (value != null) {
connection.setQueryCondition(value);
}
}
if ("BATCH_SIZE".equals(repositoryValue)) { //$NON-NLS-1$
connection.setBatchSize(getParameterValue(connection, node, "BATCH_SIZE")); //$NON-NLS-1$
// add for feature 7507
}
if ("UES_PROXY".equals(repositoryValue)) { //$NON-NLS-1$
String parameterValue = getParameterValue(connection, node, "UES_PROXY"); //$NON-NLS-1$
connection.setUseProxy(Boolean.valueOf(parameterValue));
}
if ("PROXY_HOST".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "PROXY_HOST"); //$NON-NLS-1$
if (value != null) {
connection.setProxyHost(value);
}
}
if ("PROXY_PORT".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "PROXY_PORT"); //$NON-NLS-1$
if (value != null) {
connection.setProxyPort(value);
}
}
if ("PROXY_USERNAME".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "PROXY_USERNAME"); //$NON-NLS-1$
if (value != null) {
connection.setProxyUsername(value);
}
}
if ("PROXY_PASSWORD".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "PROXY_PASSWORD"); //$NON-NLS-1$
if (value != null) {
connection.setProxyPassword(value);
}
}
if ("TIMEOUT".equals(repositoryValue)) { //$NON-NLS-1$
String value = getParameterValue(connection, node, "TIMEOUT"); //$NON-NLS-1$
if (value != null) {
connection.setTimeOut(value);
}
}
}
/**
* wzhang Comment method "isConetxtParaMode".
*/
private static boolean isConetxtParaMode(Connection connection, String value) {
if (value == null) {
return false;
}
if (connection.isContextMode() && ContextParameterUtils.isContainContextParam(value)) {
return true;
}
return false;
}
/**
* wzhang Comment method "getContextOriginalValue".
*/
private static String getContextOriginalValue(Connection connection, INode node, String value) {
if (!isConetxtParaMode(connection, value)) {
String variable = ContextParameterUtils.getVariableFromCode(value);
IContextManager contextManager = node.getProcess().getContextManager();
IContext context = contextManager.getContext(value);
List<IContextParameter> contextParameterList = context.getContextParameterList();
for (IContextParameter contextPara : contextParameterList) {
String contextName = contextPara.getName();
if (contextName != null && contextName.equals(variable)) {
value = contextPara.getValue();
}
}
}
return value;
}
}