diff --git a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/transform/TransformedData.java b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/transform/TransformedData.java index c2b09162c1..9afc93a2b0 100644 --- a/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/transform/TransformedData.java +++ b/symmetric-io/src/main/java/org/jumpmind/symmetric/io/data/transform/TransformedData.java @@ -119,19 +119,16 @@ public void put(TransformColumn column, String columnValue, boolean recordAsKey) columnValues.put(column.getTargetColumnName(), columnValue); } - protected List retrieve( - Map> source, - boolean getColumnNames) { + + protected Map retrieve( + Map> source) { - List list = new ArrayList(source == null ? 0 : source.size()); + Map list = new LinkedHashMap(source == null ? 0 + : source.size()); if (source != null) { LinkedHashMap values = source.get(IncludeOnType.ALL); if (values != null) { - if (getColumnNames) { - list.addAll(values.keySet()); - } else { - list.addAll(values.values()); - } + list.putAll(values); } IncludeOnType type = IncludeOnType.DELETE; @@ -143,16 +140,33 @@ protected List retrieve( values = source.get(type); if (values != null) { - if (getColumnNames) { - list.addAll(values.keySet()); - } else { - list.addAll(values.values()); - } + list.putAll(values); } } return list; } + + protected List retrieve( + Map> source, + boolean getColumnNames) { + Map values = retrieve(source); + if (getColumnNames) { + return new ArrayList(values.keySet()); + } else { + return new ArrayList(values.values()); + } + } + + + public Map getTargetKeyValues() { + return retrieve(keysBy); + } + + public Map getTargetValues() { + return retrieve(columnsBy); + } + public String[] getKeyNames() { List list = retrieve(keysBy, true);