2021-02-05 19:18:05 +01:00
|
|
|
|
2021-02-17 10:28:01 +01:00
|
|
|
package eu.dnetlib.dhp.aggregation.common;
|
2021-02-05 19:18:05 +01:00
|
|
|
|
|
|
|
import java.io.Closeable;
|
|
|
|
import java.io.IOException;
|
2021-02-16 16:53:14 +01:00
|
|
|
import java.util.HashMap;
|
2021-02-05 19:18:05 +01:00
|
|
|
import java.util.LinkedHashMap;
|
2021-02-16 16:53:14 +01:00
|
|
|
import java.util.Map;
|
2021-02-05 19:18:05 +01:00
|
|
|
import java.util.Objects;
|
|
|
|
|
2021-02-17 12:15:00 +01:00
|
|
|
import eu.dnetlib.dhp.utils.DHPUtils;
|
2021-02-05 19:18:05 +01:00
|
|
|
import org.slf4j.Logger;
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
2021-02-16 16:53:14 +01:00
|
|
|
import com.google.gson.Gson;
|
|
|
|
|
2021-02-15 15:08:59 +01:00
|
|
|
import eu.dnetlib.dhp.message.MessageSender;
|
2021-02-05 19:18:05 +01:00
|
|
|
|
2021-02-17 10:28:01 +01:00
|
|
|
public class AggregatorReport extends LinkedHashMap<String, String> implements Closeable {
|
2021-02-05 19:18:05 +01:00
|
|
|
|
2021-02-17 10:28:01 +01:00
|
|
|
private static final Logger log = LoggerFactory.getLogger(AggregatorReport.class);
|
2021-02-05 19:18:05 +01:00
|
|
|
|
2021-02-15 15:08:59 +01:00
|
|
|
private MessageSender messageSender;
|
2021-02-05 19:18:05 +01:00
|
|
|
|
2021-02-17 10:28:01 +01:00
|
|
|
public AggregatorReport() {
|
2021-02-05 19:18:05 +01:00
|
|
|
}
|
|
|
|
|
2021-02-17 10:28:01 +01:00
|
|
|
public AggregatorReport(MessageSender messageSender) throws IOException {
|
2021-02-15 15:08:59 +01:00
|
|
|
this.messageSender = messageSender;
|
2021-02-05 19:18:05 +01:00
|
|
|
}
|
|
|
|
|
2021-02-15 15:08:59 +01:00
|
|
|
public void ongoing(Long current, Long total) {
|
|
|
|
messageSender.sendMessage(current, total);
|
2021-02-05 19:18:05 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void close() throws IOException {
|
2021-02-15 15:08:59 +01:00
|
|
|
if (Objects.nonNull(messageSender)) {
|
|
|
|
log.info("closing report: ");
|
|
|
|
this.forEach((k, v) -> log.info("{} - {}", k, v));
|
2021-02-16 16:53:14 +01:00
|
|
|
|
|
|
|
Map<String, String> m = new HashMap<>();
|
2021-02-17 12:15:00 +01:00
|
|
|
m.put(getClass().getSimpleName().toLowerCase(), DHPUtils.MAPPER.writeValueAsString(values()));
|
2021-02-16 16:53:14 +01:00
|
|
|
messageSender.sendReport(m);
|
2021-02-05 19:18:05 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|