Skip to content

Commit

Permalink
0005105: Transforms should return old and new values for updates when
Browse files Browse the repository at this point in the history
column is primary key
  • Loading branch information
erilong committed Oct 19, 2021
1 parent ac2e218 commit ff5b853
Show file tree
Hide file tree
Showing 12 changed files with 27 additions and 68 deletions.
Expand Up @@ -32,7 +32,6 @@
import org.jumpmind.extension.IBuiltInExtensionPoint;
import org.jumpmind.symmetric.common.Constants;
import org.jumpmind.symmetric.io.data.DataContext;
import org.jumpmind.symmetric.io.data.DataEventType;
import org.jumpmind.symmetric.model.Data;
import org.jumpmind.util.FormatUtils;
import org.jumpmind.util.LinkedCaseInsensitiveMap;
Expand Down Expand Up @@ -108,11 +107,7 @@ public NewAndOldValue transform(IDatabasePlatform platform,
column.getTargetColumnName(), column.getTransformId());
}

if (data.getTargetDmlType().equals(DataEventType.DELETE) && data.getOldSourceValues() != null) {
return new NewAndOldValue(null, lookupValue);
} else {
return new NewAndOldValue(lookupValue, null);
}
return new NewAndOldValue(column, data, lookupValue);
}

protected String doTokenReplacementOnSql(DataContext context, String sql) {
Expand Down
Expand Up @@ -25,7 +25,6 @@
import org.jumpmind.db.platform.IDatabasePlatform;
import org.jumpmind.extension.IBuiltInExtensionPoint;
import org.jumpmind.symmetric.io.data.DataContext;
import org.jumpmind.symmetric.io.data.DataEventType;
import org.jumpmind.symmetric.service.IParameterService;

public class ParameterColumnTransform implements ISingleNewAndOldValueColumnTransform, IBuiltInExtensionPoint {
Expand Down Expand Up @@ -60,11 +59,7 @@ public NewAndOldValue transform(IDatabasePlatform platform,
value = parameterService.getString(paramName);
}

if (data.getTargetDmlType().equals(DataEventType.DELETE) && data.getOldSourceValues() != null) {
return new NewAndOldValue(null, value);
} else {
return new NewAndOldValue(value, null);
}
return new NewAndOldValue(column, data, value);
}

}
Expand Up @@ -137,11 +137,7 @@ public NewAndOldValue transform(IDatabasePlatform platform,
}
}

if (data.getTargetDmlType().equals(DataEventType.DELETE) && data.getOldSourceValues() != null) {
return new NewAndOldValue(null, value);
} else {
return new NewAndOldValue(value, null);
}
return new NewAndOldValue(column, data, value);
}

}
Expand Up @@ -26,7 +26,6 @@
import org.jumpmind.db.platform.IDatabasePlatform;
import org.jumpmind.extension.IBuiltInExtensionPoint;
import org.jumpmind.symmetric.io.data.DataContext;
import org.jumpmind.symmetric.io.data.DataEventType;

public class BinaryLeftColumnTransform implements ISingleNewAndOldValueColumnTransform, IBuiltInExtensionPoint {

Expand Down Expand Up @@ -57,11 +56,7 @@ public NewAndOldValue transform(IDatabasePlatform platform,
}
}

if (data.getTargetDmlType().equals(DataEventType.DELETE) && data.getOldSourceValues() != null) {
return new NewAndOldValue(null, newValue);
} else {
return new NewAndOldValue(newValue, null);
}
return new NewAndOldValue(column, data, newValue);
}

public String bleft(String value, int maxBytes) {
Expand Down
Expand Up @@ -28,7 +28,6 @@
import org.jumpmind.db.platform.IDatabasePlatform;
import org.jumpmind.extension.IBuiltInExtensionPoint;
import org.jumpmind.symmetric.io.data.DataContext;
import org.jumpmind.symmetric.io.data.DataEventType;

public class ClarionDateTimeColumnTransform implements ISingleNewAndOldValueColumnTransform, IBuiltInExtensionPoint {

Expand Down Expand Up @@ -60,11 +59,7 @@ public NewAndOldValue transform(IDatabasePlatform platform,
}
String value = convertClarionDate(newValue, clarionTimeStr);

if (data.getTargetDmlType().equals(DataEventType.DELETE) && data.getOldSourceValues() != null) {
return new NewAndOldValue(null, value);
} else {
return new NewAndOldValue(value, null);
}
return new NewAndOldValue(column, data, value);
}

public String convertClarionDate(String clarionDate, String clarionTime) {
Expand Down
Expand Up @@ -25,7 +25,6 @@
import org.jumpmind.db.platform.IDatabasePlatform;
import org.jumpmind.extension.IBuiltInExtensionPoint;
import org.jumpmind.symmetric.io.data.DataContext;
import org.jumpmind.symmetric.io.data.DataEventType;

public class ConstantColumnTransform implements ISingleNewAndOldValueColumnTransform, IBuiltInExtensionPoint {

Expand All @@ -49,12 +48,7 @@ public NewAndOldValue transform(IDatabasePlatform platform,
TransformColumn column, TransformedData data, Map<String, String> sourceValues,
String newValue, String oldValue) throws IgnoreColumnException, IgnoreRowException {

if (data.getTargetDmlType().equals(DataEventType.DELETE) && data.getOldSourceValues() != null) {
return new NewAndOldValue(null, column.getTransformExpression());
} else {
return new NewAndOldValue(column.getTransformExpression(), null);
}

return new NewAndOldValue(column, data, column.getTransformExpression());
}

}
Expand Up @@ -35,11 +35,7 @@ public NewAndOldValue transform(IDatabasePlatform platform,
}
}

if (data.getTargetDmlType().equals(DataEventType.DELETE) && data.getOldSourceValues() != null) {
return new NewAndOldValue(null, value);
} else {
return new NewAndOldValue(value, null);
}
return new NewAndOldValue(column, data, value);
}

@Override
Expand Down
Expand Up @@ -62,11 +62,7 @@ public NewAndOldValue transform(IDatabasePlatform platform,
}
}

if (data.getTargetDmlType().equals(DataEventType.DELETE) && data.getOldSourceValues() != null) {
return new NewAndOldValue(null, value);
} else {
return new NewAndOldValue(value, null);
}
return new NewAndOldValue(column, data, value);
}

}
Expand Up @@ -22,13 +22,12 @@

import java.util.Map;

import net.sourceforge.jeval.EvaluationException;
import net.sourceforge.jeval.Evaluator;

import org.jumpmind.db.platform.IDatabasePlatform;
import org.jumpmind.extension.IBuiltInExtensionPoint;
import org.jumpmind.symmetric.io.data.DataContext;
import org.jumpmind.symmetric.io.data.DataEventType;

import net.sourceforge.jeval.EvaluationException;
import net.sourceforge.jeval.Evaluator;

public class MathColumnTransform implements ISingleNewAndOldValueColumnTransform, IBuiltInExtensionPoint {

Expand Down Expand Up @@ -73,11 +72,7 @@ public NewAndOldValue transform(IDatabasePlatform platform,
result = result.substring(0, result.length()-2);
}

if (data.getTargetDmlType().equals(DataEventType.DELETE) && data.getOldSourceValues() != null) {
return new NewAndOldValue(null, result);
} else {
return new NewAndOldValue(result, null);
}
return new NewAndOldValue(column, data, result);
} catch (EvaluationException e) {
throw new RuntimeException("Unable to evaluate transform expression: " + transformExpression);
}
Expand Down
Expand Up @@ -20,6 +20,8 @@
*/
package org.jumpmind.symmetric.io.data.transform;

import org.jumpmind.symmetric.io.data.DataEventType;

public class NewAndOldValue {

protected String newValue;
Expand All @@ -33,6 +35,17 @@ public NewAndOldValue(String newValue, String oldValue) {
this.oldValue = oldValue;
}

public NewAndOldValue(TransformColumn column, TransformedData data, String value) {
if (data.getTargetDmlType() == DataEventType.DELETE && data.getOldSourceValues() != null) {
this.oldValue = value;
} else if (data.getTargetDmlType() == DataEventType.UPDATE && column.isPk()) {
this.oldValue = value;
this.newValue = value;
} else {
this.newValue = value;
}
}

public void setNewValue(String newValue) {
this.newValue = newValue;
}
Expand Down
Expand Up @@ -26,7 +26,6 @@
import org.jumpmind.db.platform.IDatabasePlatform;
import org.jumpmind.extension.IBuiltInExtensionPoint;
import org.jumpmind.symmetric.io.data.DataContext;
import org.jumpmind.symmetric.io.data.DataEventType;

public class SubstrColumnTransform implements ISingleNewAndOldValueColumnTransform, IBuiltInExtensionPoint {

Expand Down Expand Up @@ -75,11 +74,7 @@ public NewAndOldValue transform(IDatabasePlatform platform,
}
}

if (data.getTargetDmlType().equals(DataEventType.DELETE) && data.getOldSourceValues() != null) {
return new NewAndOldValue(null, newValue);
} else {
return new NewAndOldValue(newValue, null);
}
return new NewAndOldValue(column, data, newValue);
}

protected String[] prepend(String v, String[] array) {
Expand Down
Expand Up @@ -26,7 +26,6 @@
import org.jumpmind.db.platform.IDatabasePlatform;
import org.jumpmind.extension.IBuiltInExtensionPoint;
import org.jumpmind.symmetric.io.data.DataContext;
import org.jumpmind.symmetric.io.data.DataEventType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -82,11 +81,6 @@ public NewAndOldValue transform(IDatabasePlatform platform,

String value = getValue(newValue,column.getTransformExpression());

if (data.getTargetDmlType().equals(DataEventType.DELETE) && data.getOldSourceValues() != null) {
return new NewAndOldValue(null, value);
} else {
return new NewAndOldValue(value, null);
}

return new NewAndOldValue(column, data, value);
}
}

0 comments on commit ff5b853

Please sign in to comment.