package org.jsoftware.fods.client.ext;
import javax.management.ObjectName;
import javax.sql.DataSource;
import java.util.Collection;
import java.util.NoSuchElementException;
import java.util.Properties;
/**
* Fods main configuration for single {@link DataSource}.
* @author szalik
*/
public interface Configuration {
Selector getSelector();
Logger getLogger();
String getFoDSName();
DatabaseConfiguration[] getDatabaseConfigurations();
Collection<String> getDatabaseNames();
DatabaseConfiguration getDatabaseConfigurationByName(String name) throws NoSuchElementException;
boolean isEnableStats();
String getProperty(String key);
String getProperty(String key, Object defaultValue);
ObjectName getMxBeanObjectName(String sufix);
int getLogLongSqls();
interface DatabaseConfiguration {
ConnectionCreator getConnectionCreator();
Properties getConnectionProperties();
String getDatabaseName();
String getTestSql();
}
}