package me.osm.gazetter.addresses;
import java.util.Map;
import java.util.Set;
/**
* Names matching.
* */
public interface NamesMatcher {
/**
* Does name matches to names from <code>names</code> for cities
*
* @param name subject name
* @param names other objects names
*
* @return matches
* */
public boolean isPlaceNameMatch(String name,
Set<String> names);
/**
* Does name matches to names from <code>names</code> for cities
*
* @param name subject name
* @param filterNameTags other objects names with tags keys
*
* @return matches
* */
public boolean isPlaceNameMatch(String name,
Map<String, String> filterNameTags);
/**
* Does addr:street matches to street object
*
* @param street street name
* @param filterNameTags other streets names with keys
*
* @return matches
* */
public boolean isStreetNameMatch(String street,
Map<String, String> filterNameTags);
/**
* Looking for matched streets inside highways networks.
*
* @param o1names names and keys of first object
* @param o2names names and keys of second object
*
* @return matches
* */
public boolean doesStreetsMatch(Map<String, String> o1names,
Map<String, String> o2names);
}