package org.springframework.cloud.service.relational;
import org.springframework.cloud.service.MapServiceConnectorConfig;
import org.springframework.cloud.service.PooledServiceConnectorConfig;
import java.util.List;
import java.util.Map;
/**
*
* @author Ramnivas Laddad
*
*/
public class DataSourceConfig extends PooledServiceConnectorConfig {
private final ConnectionConfig connectionConfig;
private final MapServiceConnectorConfig connectionProperties;
private final List<String> pooledDataSourceNames;
public DataSourceConfig(PoolConfig poolConfig, ConnectionConfig connectionConfig) {
this(poolConfig, connectionConfig, null, null);
}
public DataSourceConfig(List<String> pooledDataSourceNames) {
this(null, null, pooledDataSourceNames, null);
}
public DataSourceConfig(Map<String, Object> properties) {
this(null, null, null, properties);
}
public DataSourceConfig(PoolConfig poolConfig, ConnectionConfig connectionConfig,
Map<String, Object> properties) {
this(poolConfig, connectionConfig, null, properties);
}
public DataSourceConfig(PoolConfig poolConfig, ConnectionConfig connectionConfig,
List<String> pooledDataSourceNames) {
this(poolConfig, connectionConfig, pooledDataSourceNames, null);
}
public DataSourceConfig(PoolConfig poolConfig, ConnectionConfig connectionConfig,
List<String> pooledDataSourceNames, Map<String, Object> properties) {
super(poolConfig);
this.connectionConfig = connectionConfig;
this.pooledDataSourceNames = pooledDataSourceNames;
this.connectionProperties = new MapServiceConnectorConfig(properties);
}
public ConnectionConfig getConnectionConfiguration() {
return connectionConfig;
}
public List<String> getPooledDataSourceNames() {
return pooledDataSourceNames;
}
public MapServiceConnectorConfig getConnectionProperties() {
return connectionProperties;
}
public static class ConnectionConfig {
private String prop;
public ConnectionConfig(String prop) {
this.prop = prop;
}
public String getConnectionProperties() {
return prop;
}
}
}