Skip to content
This repository has been archived by the owner on Jan 27, 2025. It is now read-only.

Add new fix method to set variable with element value #282 #365

Merged
merged 7 commits into from
Oct 14, 2024
12 changes: 12 additions & 0 deletions metafix/src/main/java/org/metafacture/metafix/FixMethod.java
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,18 @@ public void apply(final Metafix metafix, final Record record, final List<String>
}
},

to_var {
@Override

public void apply(final Metafix metafix, final Record record, final List<String> params, final Map<String, String> options) {
final String fieldName = params.get(0);
final String variableName = params.get(1);
final String variableValue = record.get(fieldName).toString();

metafix.getVars().put(variableName, variableValue);
}
},

// RECORD-LEVEL METHODS:

add_field {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4084,4 +4084,39 @@ public void shouldTransformStringToBase64() {
);
}

@Test
public void shouldCreateVariableFromLiteralValue() {
MetafixTestHelpers.assertFix(streamReceiver, Arrays.asList(
"to_var('data.title','testVar')",
"add_field('testResult','This is a $[testVar]')"
),
i -> {
i.startRecord("1");
i.startEntity("data");
i.literal("title", "test");
i.endEntity();
i.endRecord();
i.startRecord("2");
i.startEntity("data");
i.literal("title", "second-test");
i.endEntity();
i.endRecord();
},
o -> {
o.get().startRecord("1");
o.get().startEntity("data");
o.get().literal("title", "test");
o.get().endEntity();
o.get().literal("testResult", "This is a test");
o.get().endRecord();
o.get().startRecord("2");
o.get().startEntity("data");
o.get().literal("title", "second-test");
o.get().endEntity();
o.get().literal("testResult", "This is a second-test");
o.get().endRecord();
}
);
}

}
Loading