package se.kodapan.osm.sweden.ext.se.posten.postnummer.local; import java.io.Serializable; import java.util.*; /** * @author kalle * @since 2013-09-02 2:32 PM */ public class PostnummerSegmentIndex implements Serializable { private final static long serialVersionUID = 1l; private Map<String, Set<PostnummerSegment>> map = new HashMap<String, Set<PostnummerSegment>>(); public String normalizeKey(String key) { key = key.replaceAll("\\p{Punct}", ""); key = key.toLowerCase(); return key; } public Set<PostnummerSegment> get(String key) { return map.get(normalizeKey(key)); } public void addAll(Collection<PostnummerSegment> segments) { for (PostnummerSegment segment : segments) { add(segment); } } public boolean add(PostnummerSegment segment) { String normalizedKey = normalizeKey(segment.getGatunamn()); Set<PostnummerSegment> set = map.get(normalizedKey); if (set == null) { set = new HashSet<PostnummerSegment>(); map.put(normalizedKey, set); } return set.add(segment); } public Map<String, Set<PostnummerSegment>> getMap() { return map; } }