Skip to content

Commit

Permalink
0001895: Add support for token replacement for $(sourceCatalogName) a…
Browse files Browse the repository at this point in the history
…nd $(sourceSchemaName) in lookup table transform
  • Loading branch information
chenson42 committed Aug 10, 2014
1 parent 58c223a commit 22cdbf5
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 3 deletions.
Expand Up @@ -20,6 +20,8 @@
*/
package org.jumpmind.symmetric.io.data.transform;

import static org.apache.commons.lang.StringUtils.isNotBlank;

import java.util.List;
import java.util.Map;

Expand All @@ -28,7 +30,10 @@
import org.jumpmind.db.sql.ISqlTransaction;
import org.jumpmind.db.sql.mapper.StringMapper;
import org.jumpmind.extension.IBuiltInExtensionPoint;
import org.jumpmind.symmetric.common.Constants;
import org.jumpmind.symmetric.io.data.DataContext;
import org.jumpmind.symmetric.model.Data;
import org.jumpmind.util.FormatUtils;
import org.jumpmind.util.LinkedCaseInsensitiveMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down Expand Up @@ -56,7 +61,9 @@ public boolean isLoadColumnTransform() {
public String transform(IDatabasePlatform platform, DataContext context,
TransformColumn column, TransformedData data, Map<String, String> sourceValues,
String newValue, String oldValue) throws IgnoreColumnException, IgnoreRowException {
String sql = column.getTransformExpression();

String sql = doTokenReplacementOnSql(context, column.getTransformExpression());

String lookupValue = null;

if (StringUtils.isNotBlank(sql)) {
Expand Down Expand Up @@ -91,5 +98,22 @@ public String transform(IDatabasePlatform platform, DataContext context,
}
return lookupValue;
}

protected String doTokenReplacementOnSql(DataContext context, String sql) {
if (isNotBlank(sql)) {
Data csvData = (Data) context.get(Constants.DATA_CONTEXT_CURRENT_CSV_DATA);

if (csvData != null && csvData.getTriggerHistory() != null) {
sql = FormatUtils.replaceToken(sql, "sourceCatalogName", csvData
.getTriggerHistory().getSourceCatalogName(), true);
}

if (csvData != null && csvData.getTriggerHistory() != null) {
sql = FormatUtils.replaceToken(sql, "sourceSchemaName", csvData.getTriggerHistory()
.getSourceSchemaName(), true);
}
}
return sql;
}

}
Expand Up @@ -36,6 +36,7 @@
import org.jumpmind.symmetric.io.data.transform.ColumnPolicy;
import org.jumpmind.symmetric.io.data.transform.DeleteAction;
import org.jumpmind.symmetric.io.data.transform.IColumnTransform;
import org.jumpmind.symmetric.io.data.transform.LookupColumnTransform;
import org.jumpmind.symmetric.io.data.transform.ParameterColumnTransform;
import org.jumpmind.symmetric.io.data.transform.TransformColumn;
import org.jumpmind.symmetric.io.data.transform.TransformColumn.IncludeOnType;
Expand Down Expand Up @@ -68,6 +69,7 @@ public TransformService(IParameterService parameterService, ISymmetricDialect sy
columnTransforms = TransformWriter.buildDefaultColumnTransforms();
addColumnTransform(new ParameterColumnTransform(parameterService));
addColumnTransform(new VariableColumnTransform());
addColumnTransform(new LookupColumnTransform());
addColumnTransform(new BshColumnTransform(parameterService));

setSqlMap(new TransformServiceSqlMap(symmetricDialect.getPlatform(),
Expand Down
Expand Up @@ -48,7 +48,6 @@
import org.jumpmind.symmetric.io.data.transform.IgnoreColumnException;
import org.jumpmind.symmetric.io.data.transform.IgnoreRowException;
import org.jumpmind.symmetric.io.data.transform.JavaColumnTransform;
import org.jumpmind.symmetric.io.data.transform.LookupColumnTransform;
import org.jumpmind.symmetric.io.data.transform.MathColumnTransform;
import org.jumpmind.symmetric.io.data.transform.MultiplierColumnTransform;
import org.jumpmind.symmetric.io.data.transform.NewAndOldValue;
Expand Down Expand Up @@ -97,7 +96,6 @@ public static Map<String, IColumnTransform<?>> buildDefaultColumnTransforms() {
addColumnTransform(columnTransforms, new IdentityColumnTransform());
addColumnTransform(columnTransforms, new MultiplierColumnTransform());
addColumnTransform(columnTransforms, new SubstrColumnTransform());
addColumnTransform(columnTransforms, new LookupColumnTransform());
addColumnTransform(columnTransforms, new RemoveColumnTransform());
addColumnTransform(columnTransforms, new MathColumnTransform());
addColumnTransform(columnTransforms, new ValueMapColumnTransform());
Expand Down

0 comments on commit 22cdbf5

Please sign in to comment.