package de.galan.verjson.samples.v2;
import static de.galan.verjson.util.Transformations.*;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.ArrayNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
import de.galan.verjson.step.transformation.Transformation;
/**
* Sample transformer to migrate version 1 to version 2
*
* @author daniel
*/
public class Example2Transformation extends Transformation {
@Override
protected void transform(JsonNode node) {
ObjectNode obj = obj(node);
// remove first
remove(obj, "first");
// rename second
rename(obj, "second", "segundo");
// keep third and fourth
// convert fifth
ArrayNode fifth = getArrayAndRemove(obj, "fifth");
if (fifth != null) {
StringBuilder builder = new StringBuilder();
for (JsonNode elem: fifth) {
builder.append(elem.asText());
}
obj.put("fifth", builder.toString());
}
// convert sixth
ObjectNode sixth = getObjAndRemove(obj, "sixth");
rename(sixth, "one", "uno");
remove(sixth, "two");
// rename SubB
rename(obj(obj.get("subB")), "bbb", "ccc");
obj.set("sixth", createArray(sixth));
}
}