//Dstl (c) Crown Copyright 2017
package uk.gov.dstl.baleen.resources.gazetteer;
import java.util.Map;
import org.apache.uima.resource.Resource;
import uk.gov.dstl.baleen.exceptions.BaleenException;
/**
* Gazetteer interface to provide a generic way to access gazetteers
*
*
*/
public interface IGazetteer {
/**
* Initialise the gazetteer object
*
* @param connection A resource containing the connection to the gazetteer source
* @param config Additional configuration for the gazetteer
*/
public void init(Resource connection, Map<String, Object> config) throws BaleenException;
/**
* Get all the values contained in the gazetteer
*
* @return An array of values
*/
public String[] getValues();
/**
* Check whether or not the gazetteer contains a particular value
*
* @param key The value to check
* @return True if the the gazetteer contain the value, false otherwise
*/
public boolean hasValue(String key);
/**
* Get a list of aliases for the provided value
*
* @param key The value to retrieve aliases for
* @return An array of aliases for the key
*/
public String[] getAliases(String key);
/**
* Get any additional data associated with an entry in the gazetteer
*
* @param key The value to retrieve data for
* @return A hashmap of additional data associated with the entry
*/
public Map<String, Object> getAdditionalData(String key);
/**
* Destroy the gazetteer and free resources
*/
public void destroy();
/**
* Reload values (i.e. pick up changes in database)
*/
public void reloadValues() throws BaleenException;
}