// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.plugins.czechaddress.addressdatabase; import java.util.ArrayList; import org.openstreetmap.josm.plugins.czechaddress.parser.DatabaseParser; /** * Stores the whole database. * * <p>Contains the tree of all regions, municipalities, suburbs, streets * and houses in the Czech republic.</p> * * @author Radomír Černoch radomir.cernoch@gmail.com * @see AddressElement * @see DatabaseParser */ public final class Database { private Database() {} private static Database singleton = null; public static Database getInstance() { if (singleton == null) singleton = new Database(); return singleton; } /** * List of regions, which are in this database. */ public ArrayList<Region> regions = new ArrayList<>(); public Region findRegion(String name, String nuts3, String nuts4) { if (name == null) return null; name = name.toUpperCase(); if (nuts3 != null) nuts3 = nuts3.toUpperCase(); if (nuts4 != null) nuts4 = nuts4.toUpperCase(); for (Region region : regions) { if (!region.getName().toUpperCase().equals(name)) continue; if (region.getNuts3Name() != null && !region.getNuts3Name().toUpperCase().equals(nuts3)) continue; if (region.getNuts4Name() != null && !region.getNuts4Name().toUpperCase().equals(nuts3)) continue; return region; } return null; } }