All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.sevensource.commons.configuration.jdbc.AbstractConfiguration Maven / Gradle / Ivy

package org.sevensource.commons.configuration.jdbc;

import javax.inject.Inject;

import org.sevensource.commons.configuration.jdbc.database.ExtendedCompositeConfiguration;
import org.springframework.core.env.Environment;


public abstract class AbstractConfiguration {
	
	private final Environment env;
	private final ExtendedCompositeConfiguration databaseConfiguration;
	
	private T deploymentEnvironment;
	private String serverName;
	private String applicationName;
	
	@Inject
	public AbstractConfiguration(Environment environment, ExtendedCompositeConfiguration databaseConfiguration) {
		this.env = environment;
		this.databaseConfiguration = databaseConfiguration;
	}
	
	public T getDeploymentEnvironment() {
		if(deploymentEnvironment == null) {
			deploymentEnvironment = resolveConfigurationEnvironment();
		}
		
		return deploymentEnvironment;
	}
	
	public String getServerName() {
		return serverName;
	}
	
	public void setServerName(String serverName) {
		this.serverName = serverName;
	}
	
	public String getApplicationName() {
		return applicationName;
	}
	
	public void setApplicationName(String applicationName) {
		this.applicationName = applicationName;
	}
	
	public ExtendedCompositeConfiguration getConfig() {
		return databaseConfiguration;
	}
	
	
	/**
	 * returns Spring's Environment
	 * @return
	 */
	protected Environment getEnvironment() {
		return env;
	}
	
	protected abstract T resolveConfigurationEnvironment( );
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy