Author: [log in to unmask]
Date: Sun May 3 23:46:56 2015
New Revision: 2889
Log:
Add additional constructor.
Modified:
java/trunk/conditions/src/main/java/org/hps/conditions/database/ConnectionParameters.java
Modified: java/trunk/conditions/src/main/java/org/hps/conditions/database/ConnectionParameters.java
=============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/database/ConnectionParameters.java (original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/database/ConnectionParameters.java Sun May 3 23:46:56 2015
@@ -23,34 +23,101 @@
public static final int DEFAULT_PORT = 3306;
/**
+ * Configure the connection parameters from a properties file.
+ *
+ * @param file the properties file
+ * @return the connection parameters
+ */
+ public static ConnectionParameters fromProperties(final File file) {
+ FileInputStream fin = null;
+ try {
+ fin = new FileInputStream(file);
+ } catch (final FileNotFoundException e) {
+ throw new IllegalArgumentException(file.getPath() + " does not exist.", e);
+ }
+ return fromProperties(fin);
+ }
+
+ /**
+ * Configure the connection parameters from an <code>InputStream</code> of properties.
+ *
+ * @param in the InputStream of the properties
+ * @return the connection parameters
+ * @throws RuntimeException if the InputStream is invalid
+ */
+ private static ConnectionParameters fromProperties(final InputStream in) {
+ final Properties properties = new Properties();
+ try {
+ properties.load(in);
+ } catch (final IOException e) {
+ throw new RuntimeException(e);
+ }
+ final String user = properties.getProperty("user");
+ final String password = properties.getProperty("password");
+ final String database = properties.getProperty("database");
+ final String hostname = properties.getProperty("hostname");
+ int port = DEFAULT_PORT;
+ if (properties.containsKey("port")) {
+ port = Integer.parseInt(properties.getProperty("port"));
+ }
+ return new ConnectionParameters(user, password, database, hostname, port);
+ }
+
+ /**
+ * Configure the connection parameters from an embedded classpath resource which should be a properties file.
+ *
+ * @param resource the resource path
+ * @return the connection parameters
+ */
+ public static ConnectionParameters fromResource(final String resource) {
+ return fromProperties(ConnectionParameters.class.getResourceAsStream(resource));
+ }
+
+ /**
+ * The database name.
+ */
+ private String database;
+
+ /**
+ * The host name.
+ */
+ private String hostname;
+
+ /**
+ * The user's password.
+ */
+ private String password;
+
+ /**
+ * The port.
+ */
+ private int port;
+
+ /**
* The user name.
*/
private String user;
/**
- * The user's password.
- */
- private String password;
-
- /**
- * The port.
- */
- private int port;
-
- /**
- * The host name.
- */
- private String hostname;
-
- /**
- * The database name.
- */
- private String database;
-
- /**
* Protected constructor for sub-classes.
*/
protected ConnectionParameters() {
+ }
+
+ /**
+ * Class constructor using default MySQL port number.
+ *
+ * @param user the user name
+ * @param password the password
+ * @param hostname the hostname
+ * @param database the database name
+ */
+ public ConnectionParameters(final String user, final String password, final String database, final String hostname) {
+ this.user = user;
+ this.password = password;
+ this.database = database;
+ this.hostname = hostname;
+ this.port = DEFAULT_PORT;
}
/**
@@ -72,74 +139,6 @@
}
/**
- * Get Properties object for this connection.
- *
- * @return the Properties for this connection
- */
- public Properties getConnectionProperties() {
- final Properties p = new Properties();
- p.put("user", user);
- p.put("password", password);
- return p;
- }
-
- /**
- * Get the hostname.
- *
- * @return the hostname
- */
- String getHostname() {
- return hostname;
- }
-
- /**
- * Get the port number.
- *
- * @return the port number
- */
- int getPort() {
- return port;
- }
-
- /**
- * Get the name of the database.
- *
- * @return the name of the database
- */
- String getDatabase() {
- return database;
- }
-
- /**
- * Get the user name.
- *
- * @return the user name
- */
- String getUser() {
- return user;
- }
-
- /**
- * Get the password.
- *
- * @return the password
- */
- String getPassword() {
- return password;
- }
-
- /**
- * Get the connection string for these parameters.
- * <p>
- * This is public because the DQM database manager is using it.
- *
- * @return the connection string
- */
- public String getConnectionString() {
- return "jdbc:mysql://" + hostname + ":" + port + "/";
- }
-
- /**
* Create a database connection from these parameters. The caller becomes the "owner" and is responsible for closing
* it when finished.
*
@@ -151,60 +150,77 @@
try {
connection = DriverManager.getConnection(getConnectionString(), connectionProperties);
connection.createStatement().execute("USE " + getDatabase());
- } catch (SQLException x) {
+ } catch (final SQLException x) {
throw new RuntimeException("Failed to connect to database: " + getConnectionString(), x);
}
return connection;
}
/**
- * Configure the connection parameters from a properties file.
- *
- * @param file the properties file
- * @return the connection parameters
- */
- public static ConnectionParameters fromProperties(final File file) {
- FileInputStream fin = null;
- try {
- fin = new FileInputStream(file);
- } catch (FileNotFoundException e) {
- throw new IllegalArgumentException(file.getPath() + " does not exist.", e);
- }
- return fromProperties(fin);
- }
-
- /**
- * Configure the connection parameters from an embedded classpath resource which should be a properties file.
- *
- * @param resource the resource path
- * @return the connection parameters
- */
- public static ConnectionParameters fromResource(final String resource) {
- return fromProperties(ConnectionParameters.class.getResourceAsStream(resource));
- }
-
- /**
- * Configure the connection parameters from an <code>InputStream</code> of properties.
- *
- * @param in the InputStream of the properties
- * @return the connection parameters
- * @throws RuntimeException if the InputStream is invalid
- */
- private static ConnectionParameters fromProperties(final InputStream in) {
- final Properties properties = new Properties();
- try {
- properties.load(in);
- } catch (IOException e) {
- throw new RuntimeException(e);
- }
- final String user = properties.getProperty("user");
- final String password = properties.getProperty("password");
- final String database = properties.getProperty("database");
- final String hostname = properties.getProperty("hostname");
- int port = DEFAULT_PORT;
- if (properties.containsKey("port")) {
- port = Integer.parseInt(properties.getProperty("port"));
- }
- return new ConnectionParameters(user, password, database, hostname, port);
+ * Get Properties object for this connection.
+ *
+ * @return the Properties for this connection
+ */
+ public Properties getConnectionProperties() {
+ final Properties p = new Properties();
+ p.put("user", this.user);
+ p.put("password", this.password);
+ return p;
+ }
+
+ /**
+ * Get the connection string for these parameters.
+ * <p>
+ * This is public because the DQM database manager is using it.
+ *
+ * @return the connection string
+ */
+ public String getConnectionString() {
+ return "jdbc:mysql://" + this.hostname + ":" + this.port + "/";
+ }
+
+ /**
+ * Get the name of the database.
+ *
+ * @return the name of the database
+ */
+ String getDatabase() {
+ return this.database;
+ }
+
+ /**
+ * Get the hostname.
+ *
+ * @return the hostname
+ */
+ String getHostname() {
+ return this.hostname;
+ }
+
+ /**
+ * Get the password.
+ *
+ * @return the password
+ */
+ String getPassword() {
+ return this.password;
+ }
+
+ /**
+ * Get the port number.
+ *
+ * @return the port number
+ */
+ int getPort() {
+ return this.port;
+ }
+
+ /**
+ * Get the user name.
+ *
+ * @return the user name
+ */
+ String getUser() {
+ return this.user;
}
}
|