Skip to content

Commit

Permalink
SYMMETRICDS-462 - refactor transformer
Browse files Browse the repository at this point in the history
  • Loading branch information
chenson42 committed Jun 28, 2011
1 parent 71a25c8 commit 1d01dee
Showing 1 changed file with 14 additions and 7 deletions.
Expand Up @@ -68,17 +68,18 @@ protected boolean transform(DmlType dmlType, IDataLoaderContext context, String[
protected boolean perform(TransformedData data, TransformTable transformation,
Map<String, String> originalValues) {
boolean persistData = false;

for (String columnName : originalValues.keySet()) {
List<TransformColumn> transformColumns = transformation.getTransformColumnFor(columnName);
for (TransformColumn transformColumn : transformColumns) {
transformColumn(data, transformColumn, originalValues, false);
}
}

if (data.getTargetDmlType() != DmlType.DELETE) {
if (data.getTargetDmlType() == DmlType.INSERT && transformation.isUpdateFirst()) {
data.setTargetDmlType(DmlType.UPDATE);
}
for (String columnName : originalValues.keySet()) {
List<TransformColumn> transformColumns = transformation.getTransformColumnFor(columnName);
for (TransformColumn transformColumn : transformColumns) {
transformColumn(data, transformColumn, originalValues, false);
}
}

persistData = true;
} else {
// handle the delete action
Expand Down Expand Up @@ -134,11 +135,17 @@ public void apply(IDataLoaderContext context, TransformedData data) {
try {
tableTemplate.insert(context, data.getColumnValues());
} catch (DataIntegrityViolationException ex) {
data.setTargetDmlType(DmlType.UPDATE);
tableTemplate.setColumnNames(data.getColumnNames());
tableTemplate.setKeyNames(data.getKeyNames());
tableTemplate.update(context, data.getColumnValues(), data.getKeyValues());
}
break;
case UPDATE:
if (0 == tableTemplate.update(context, data.getColumnValues(), data.getKeyValues())) {
data.setTargetDmlType(DmlType.INSERT);
tableTemplate.setColumnNames(data.getColumnNames());
tableTemplate.setKeyNames(data.getKeyNames());
tableTemplate.insert(context, data.getColumnValues());
}
break;
Expand Down

0 comments on commit 1d01dee

Please sign in to comment.