package me.osm.gazetter.diff; import java.io.PrintWriter; import java.util.Set; import java.util.TreeMap; import me.osm.gazetter.striper.GeoJsonWriter; import me.osm.gazetter.utils.FileUtils.LineHandler; /** * Read old file for second time to write info for * lines which are older then lines from new file * * @author dkiselev */ public final class DiffOldFileSecondPassReader implements LineHandler { private final Set<String> olds; private final Counters counters; private TreeMap<String, Object[]> map; private PrintWriter outTmp; /** * @param map with ids timestamps and hashes * @param outTmp where to write results * @param olds ids to write * @param counters */ public DiffOldFileSecondPassReader(TreeMap<String, Object[]> map, PrintWriter outTmp, Set<String> olds, Counters counters) { this.olds = olds; this.counters = counters; this.map = map; this.outTmp = outTmp; } @Override public void handle(String s) { String id = GeoJsonWriter.getId(s); if(map.containsKey(id)) { outTmp.println("- " + s); counters.remove++; } else if(olds.contains(id)) { outTmp.println("O " + s); counters.takeOld++; } } }