package com.vladmihalcea.flexypool.strategy;
import com.vladmihalcea.flexypool.adaptor.PoolAdapter;
import com.vladmihalcea.flexypool.common.ConfigurationProperties;
import com.vladmihalcea.flexypool.connection.ConnectionFactory;
import com.vladmihalcea.flexypool.metric.Metrics;
import javax.sql.DataSource;
/**
* <code>AbstractConnectionAcquiringStrategy</code> implements the {@link ConnectionAcquiringStrategy} adding
* the configuration and connectionFactory properties.
*
* @author Vlad Mihalcea
* @since 1.0
*/
public abstract class AbstractConnectionAcquiringStrategy implements ConnectionAcquiringStrategy {
private final ConfigurationProperties configurationProperties;
private final ConnectionFactory connectionFactory;
/**
* Creates a strategy using the given {@link ConfigurationProperties}
*
* @param configurationProperties configurationProperties
*/
protected AbstractConnectionAcquiringStrategy(
ConfigurationProperties<? extends DataSource, Metrics, PoolAdapter> configurationProperties) {
this.configurationProperties = configurationProperties;
this.connectionFactory = configurationProperties.getPoolAdapter();
}
/**
* @return configurationProperties
*/
public ConfigurationProperties getConfigurationProperties() {
return configurationProperties;
}
/**
* @return connectionFactory
*/
public ConnectionFactory getConnectionFactory() {
return connectionFactory;
}
}