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;
}
}