package me.osm.gazetteer.web.utils; import java.util.ArrayList; import me.osm.gazetteer.web.GazetteerWeb; import me.osm.osmdoc.read.DOCFileReader; import me.osm.osmdoc.read.DOCFolderReader; import me.osm.osmdoc.read.DOCReader; import me.osm.osmdoc.read.OSMDocFacade; public class OSMDocSinglton { private static volatile OSMDocSinglton instance; private OSMDocFacade facade; private DOCReader reader; private OSMDocSinglton(){ }; private OSMDocSinglton(String docPath) { if(docPath.endsWith(".xml") || docPath.equals("jar")) { reader = new DOCFileReader(docPath); } else { reader = new DOCFolderReader(docPath); } ArrayList<String> exclude = new ArrayList<String>(GazetteerWeb.osmdocProperties().getIgnore()); facade = new OSMDocFacade(reader, exclude); }; public static void initialize(String docPath) { if(instance == null) { synchronized (OSMDocSinglton.class) { if(instance == null) { instance = new OSMDocSinglton(docPath); } } } } public static OSMDocSinglton get() { return instance; } public OSMDocFacade getFacade() { return facade; } public DOCReader getReader() { return reader; } }