Skip to content
This repository was archived by the owner on May 16, 2025. It is now read-only.

Commit 22b6824

Browse files
authored
Merge pull request #380 from metafacture/377-ignoreOldValuePath
Ignore old value's path in `copy_field` Fix function.
2 parents d9b25ec + 99361dd commit 22b6824

File tree

3 files changed

+15
-7
lines changed
  • metafix/src
    • main/java/org/metafacture/metafix
    • test
      • java/org/metafacture/metafix
      • resources/org/metafacture/metafix/integration/method/fromXml/toJson/replace_allInOptionalSubfieldOfRepeatedObjectsWithAsteriskImplicitArray

3 files changed

+15
-7
lines changed

metafix/src/main/java/org/metafacture/metafix/FixMethod.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,7 @@ public void apply(final Metafix metafix, final Record record, final List<String>
197197

198198
h.forEach((subField, value) -> {
199199
record.addNested(field, new Value(subField));
200-
record.addNested(field, value);
200+
record.addNested(field, value.withPathSet(null));
201201
});
202202
})));
203203
}
@@ -227,9 +227,9 @@ public void apply(final Metafix metafix, final Record record, final List<String>
227227
oldValue.matchType()
228228
.ifArray(a -> {
229229
record.remove(newName);
230-
a.forEach(v -> record.addNested(newName, v));
230+
a.forEach(v -> record.addNested(newName, v.withPathSet(null)));
231231
})
232-
.orElse(v -> record.set(newName, v));
232+
.orElse(v -> record.set(newName, v.withPathSet(null)));
233233
}
234234
}
235235
},

metafix/src/test/java/org/metafacture/metafix/MetafixMethodTest.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2190,10 +2190,9 @@ public void inDoBindCopyFieldWithVarInSourceAndTarget() {
21902190
);
21912191
}
21922192

2193-
@Test
2194-
public void replaceAllWithWildcardAfterCopyFieldWithVarInSourceAndTarget() {
2193+
private void replaceAllWithWildcardAfterCopyFieldWithVarInSourceAndTarget(final boolean explicitArray) {
21952194
MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList(
2196-
"set_array('RSWK[]')",
2195+
explicitArray ? "set_array('RSWK[]')" : "",
21972196
"do list(path: '650??', 'var': '$i')",
21982197
" copy_field('$i.a', 'RSWK[].$append.subjectTopicName')",
21992198
" copy_field('$i.v', 'RSWK[].$last.subjectGenre')",
@@ -2229,6 +2228,16 @@ public void replaceAllWithWildcardAfterCopyFieldWithVarInSourceAndTarget() {
22292228
);
22302229
}
22312230

2231+
@Test
2232+
public void replaceAllWithWildcardAfterCopyFieldWithVarInSourceAndTarget() {
2233+
replaceAllWithWildcardAfterCopyFieldWithVarInSourceAndTarget(true);
2234+
}
2235+
2236+
@Test
2237+
public void replaceAllWithWildcardAfterCopyFieldWithVarInSourceAndTargetImplicitArray() {
2238+
replaceAllWithWildcardAfterCopyFieldWithVarInSourceAndTarget(false);
2239+
}
2240+
22322241
@Test
22332242
public void multipleReplaceAllWithWildcardAfterCopyFieldWithVarInSourceAndTarget() {
22342243
MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList(

metafix/src/test/resources/org/metafacture/metafix/integration/method/fromXml/toJson/replace_allInOptionalSubfieldOfRepeatedObjectsWithAsteriskImplicitArray/todo.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)