package cz.nalezen.osm.extractor; import java.io.File; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import cz.nalezen.osm.extractor.cp.CzechPostDataLoader; import cz.nalezen.osm.extractor.data.CzechRepublicAddresses; import cz.nalezen.osm.extractor.mvcr.MvcrDataLoader; import cz.nalezen.osm.extractor.osm.OsmDataLoader; public class CzAddressExtractor { CzechRepublicAddresses root = new CzechRepublicAddresses(); public void importMvcrData(String path) { MvcrDataLoader loader = new MvcrDataLoader(root, path); loader.load(); } public void importCzechPostData(String path) { CzechPostDataLoader loader = new CzechPostDataLoader(root, path); loader.load(); } public void importOsmData(String path) { OsmDataLoader loader = new OsmDataLoader(root, path); loader.load(); } public CzechRepublicAddresses getRoot() { return root; } public void save(String path) { try { ObjectMapper mapper = new ObjectMapper(); mapper.configure(SerializationFeature.INDENT_OUTPUT, true); mapper.configure(SerializationFeature.WRITE_NULL_MAP_VALUES, false); mapper.writeValue(new File(path), root); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } } public static CzechRepublicAddresses load(String path) { try { ObjectMapper mapper = new ObjectMapper(); CzechRepublicAddresses res = mapper.readValue(new File(path), CzechRepublicAddresses.class); res.updateCityUniqeNames(); return res; } catch (Exception e) { e.printStackTrace(); throw new RuntimeException(e); } } }