package me.osm.gazetter.addresses;
import java.util.List;
import java.util.Set;
/**
* Factory for AddressesParser, creates addresses parser with
* injected dependencies, accordingly provided options, or with default
* dependencies implementations.
* */
public interface AddressesParserFactory {
/**
* Create AddressesParser instance
*
* @param addressesSchemesParser
* Address scheme parser {@link AddressesSchemesParser}
* @param addrLevelComparator
* Sorter for addresses levels
* @param namesMatcherImpl
* Object which answers do objects equals by it's name/names
* For ex. match "Green st." "Green" "green st" and so on.
* @param cityBoundaryes
* Threat this addr parts names as city (location)
* @param addrTextFormatter
* Formatter for texts
* @param sorting
* How to sort parts of address
* @param skippInFullText
* Skip in full address text
* @param findLangsLevel
* Search addresses translations or not
*
* @return initialized parser
* */
public AddressesParser newAddressesParser(
AddressesSchemesParser addressesSchemesParser,
AddrLevelsComparator addrLevelComparator,
NamesMatcher namesMatcherImpl, List<String> cityBoundaryes,
AddrTextFormatter addrTextFormatter,
AddrLevelsSorting sorting, Set<String> skippInFullText,
boolean findLangsLevel);
}