view src/global/Server.java @ 21:aba8ed4c8a06

semiprivate
author Franklin Schmidt <fschmidt@gmail.com>
date Sat, 13 Jun 2020 22:30:48 -0600
parents 7ecd1a4ef557
children
line wrap: on
line source

package global;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Collection;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Properties;


public final class Server {

	private static final Map<String,Server> map = new LinkedHashMap<String,Server>();

	// call from beanshell
	public static void add(String name,String dbUrl,String dbUser,String dbPassword,String host) throws ClassNotFoundException {
		map.put( name, new Server(name,dbUrl,dbUser,dbPassword,host) );
	}

	static Collection<Server> getServers() {
		return map.values();
	}

	public static Server getServer(String name) {
		return map.get(name);
	}

	public final String name;
	private final String dbUrl;
	private final Properties dbProperties = new Properties();
	public final String host;

	private Server(String name,String dbUrl,String dbUser,String dbPassword,String host)
		throws ClassNotFoundException
	{
		this.name = name;
		Class.forName("org.postgresql.Driver");
		this.dbUrl = dbUrl;
		dbProperties.setProperty("user",dbUser);
		dbProperties.setProperty("password",dbPassword);
		this.host = host;
	}

	Connection getConnection()
		throws SQLException
	{
		return DriverManager.getConnection(dbUrl,dbProperties);
	}

}