package com.constellio.sdk.dev.tools.i18n; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; import org.apache.commons.io.FileUtils; import com.constellio.data.utils.PropertyFileUtils; public class CombinePropertyFilesServices { List<File> inputFiles; File output; public static void combine(List<File> inputFiles, File output) { combine(inputFiles, output, new HashMap<String, String>()); } public static void combine(List<File> inputFiles, File output, Map<String, String> extra) { try { FileUtils.deleteQuietly(output); Collections.sort(inputFiles, new Comparator<File>() { @Override public int compare(File o1, File o2) { return o1.getName().compareTo(o2.getName()); } }); Map<String, String> properties = new HashMap<>(); for (File inputFile : inputFiles) { properties.putAll(PropertyFileUtils.loadKeyValues(inputFile)); } properties.putAll(extra); List<String> keys = new ArrayList<>(properties.keySet()); Collections.sort(keys); BufferedWriter bw = new BufferedWriter(new FileWriter(output)); for (String key : keys) { bw.append(key); bw.append("="); bw.append(properties.get(key)); bw.newLine(); } bw.close(); } catch (Exception e) { throw new RuntimeException(e); } } }