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

Commit 99361dd

Browse files
committed
Ignore old value's path in copy_field Fix function. (#377)
1 parent ea9fa70 commit 99361dd

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
@@ -180,7 +180,7 @@ public void apply(final Metafix metafix, final Record record, final List<String>
180180

181181
h.forEach((subField, value) -> {
182182
record.addNested(field, new Value(subField));
183-
record.addNested(field, value);
183+
record.addNested(field, value.withPathSet(null));
184184
});
185185
})));
186186
}
@@ -210,9 +210,9 @@ public void apply(final Metafix metafix, final Record record, final List<String>
210210
oldValue.matchType()
211211
.ifArray(a -> {
212212
record.remove(newName);
213-
a.forEach(v -> record.addNested(newName, v));
213+
a.forEach(v -> record.addNested(newName, v.withPathSet(null)));
214214
})
215-
.orElse(v -> record.set(newName, v));
215+
.orElse(v -> record.set(newName, v.withPathSet(null)));
216216
}
217217
}
218218
},

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

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

2191-
@Test
2192-
public void replaceAllWithWildcardAfterCopyFieldWithVarInSourceAndTarget() {
2191+
private void replaceAllWithWildcardAfterCopyFieldWithVarInSourceAndTarget(final boolean explicitArray) {
21932192
MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList(
2194-
"set_array('RSWK[]')",
2193+
explicitArray ? "set_array('RSWK[]')" : "",
21952194
"do list(path: '650??', 'var': '$i')",
21962195
" copy_field('$i.a', 'RSWK[].$append.subjectTopicName')",
21972196
" copy_field('$i.v', 'RSWK[].$last.subjectGenre')",
@@ -2227,6 +2226,16 @@ public void replaceAllWithWildcardAfterCopyFieldWithVarInSourceAndTarget() {
22272226
);
22282227
}
22292228

2229+
@Test
2230+
public void replaceAllWithWildcardAfterCopyFieldWithVarInSourceAndTarget() {
2231+
replaceAllWithWildcardAfterCopyFieldWithVarInSourceAndTarget(true);
2232+
}
2233+
2234+
@Test
2235+
public void replaceAllWithWildcardAfterCopyFieldWithVarInSourceAndTargetImplicitArray() {
2236+
replaceAllWithWildcardAfterCopyFieldWithVarInSourceAndTarget(false);
2237+
}
2238+
22302239
@Test
22312240
public void multipleReplaceAllWithWildcardAfterCopyFieldWithVarInSourceAndTarget() {
22322241
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)