package org.softlang.company.features;
import java.util.Iterator;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.node.DoubleNode;
import com.fasterxml.jackson.databind.node.ObjectNode;
public class Cut {
/**
* Divide all double-properties of the JsonNode node with the name "salary"
* by 2
*
* @param node
*/
public static void cut(JsonNode node) {
if (node.has("departments")) {
Iterator<JsonNode> iterator = node.get("departments").elements();
while (iterator.hasNext()) {
cut(iterator.next());
}
}
if (node.has("employees")) {
Iterator<JsonNode> iterator = node.get("employees").elements();
while (iterator.hasNext()) {
cutEmployee((ObjectNode) iterator.next());
}
}
if (node.has("manager")) {
cutEmployee((ObjectNode) node.get("manager"));
}
}
private static void cutEmployee(ObjectNode e) {
DoubleNode salary = new DoubleNode(e.get("salary").asDouble() / 2);
e.set("salary", salary);
}
}