package jef.database.datasource;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
import javax.sql.DataSource;
/**
* 默认的DataSourceInfoLookup实现之一。
* 所有的数据源信息都被存放在Map中。
* @author jiyi
*
*/
public class MapDataSourceLookup implements DataSourceLookup{
private Map<String,DataSource> datasources;
private String defaultKey;
public Map<String, DataSource> getDatasources() {
return datasources;
}
public MapDataSourceLookup(){
}
public MapDataSourceLookup(Map<String, DataSource> datasources){
this.datasources=datasources;
}
public void setDatasources(Map<String, DataSource> datasources) {
this.datasources = datasources;
}
public DataSource getDataSource(String dataSourceName){
if(datasources==null)return null;
return datasources.get(dataSourceName);
}
public String getDefaultKey() {
if(datasources!=null && datasources.size()==1){
return datasources.keySet().iterator().next();
}
return defaultKey;
}
public void setDefaultKey(String defaultKey) {
this.defaultKey = defaultKey;
}
public Collection<String> getAvailableKeys() {
return Collections.unmodifiableCollection(datasources.keySet());
}
}