package cf.component;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import java.util.HashMap;
import java.util.Map;
/**
* @author Mike Heath
*/
public class VarzAggregator {
public VarzAggregator(Iterable<VarzProducer> producers) {
this.producers = producers;
}
private final ObjectMapper mapper = new ObjectMapper()
;
private final Iterable<VarzProducer> producers;
public ObjectNode aggregateVarz() {
final Map<String, Object> varz = new HashMap<>();
for (VarzProducer producer : producers) {
varz.putAll(producer.produceVarz());
}
final JsonNode jsonNode = mapper.valueToTree(varz);
return (ObjectNode) jsonNode;
}
}