package net.md_5.bungee.api.config;
import java.util.Collection;
import java.util.Map;
/**
* This class allows plugins to set their own configuration adapter to load
* settings from a different place.
*/
public interface ConfigurationAdapter
{
/**
* Reload all the possible values, and if necessary cache them for
* individual getting.
*/
public void load();
/**
* Gets an integer from the specified path.
*
* @param path the path to retrieve the integer from
* @param def the default value
* @return the retrieved integer
*/
public int getInt(String path, int def);
/**
* Gets a string from the specified path.
*
* @param path the path to retrieve the string from.
* @param def the default value
* @return the retrieved string
*/
public String getString(String path, String def);
/**
* Gets a boolean from the specified path.
*
* @param path the path to retrieve the boolean form.
* @param def the default value
* @return the retrieved boolean
*/
public boolean getBoolean(String path, boolean def);
/**
* Get a list from the specified path.
*
* @param path the path to retrieve the list form.
* @param def the default value
* @return the retrieved list
*/
public Collection<?> getList(String path, Collection<?> def);
/**
* Get the configuration all servers which may be accessible via the proxy.
*
* @return all accessible servers, keyed by name
*/
public Map<String, ServerInfo> getServers();
/**
* Get information about all hosts to bind the proxy to.
*
* @return a list of all hosts to bind to
*/
public Collection<ListenerInfo> getListeners();
/**
* Get all groups this player is in.
*
* @param player the player to check
* @return all the player's groups.
*/
public Collection<String> getGroups(String player);
/**
* Get all permission corresponding to the specified group. The result of
* this method may or may not be cached, depending on the implementation.
*
* @param group the group to check
* @return all true permissions for this group
*/
public Collection<String> getPermissions(String group);
}