package eu.dnetlib.iis.common.counter; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Properties; /** * Writer of {@link NamedCounters} object into a properties file. * * @author madryk */ public class NamedCountersFileWriter { //------------------------ LOGIC -------------------------- /** * Writes {@link NamedCounters} as a properties file located under * provided filePath. * * @throws IOException if writing to properties file resulted in an error */ public void writeCounters(NamedCounters counters, String filePath) throws IOException { Properties counterProperties = buildPropertiesFromCounters(counters); File file = new File(filePath); try (OutputStream os = new FileOutputStream(file)) { counterProperties.store(os, null); } } //------------------------ PRIVATE -------------------------- private Properties buildPropertiesFromCounters(NamedCounters counters) { Properties properties = new Properties(); for (String counterName : counters.counterNames()) { long count = counters.currentValue(counterName); properties.put(counterName, String.valueOf(count)); } return properties; } }