Skip to content

Commit

Permalink
Fix duplicated code in DBMSMetadata
Browse files Browse the repository at this point in the history
  • Loading branch information
adangel committed Nov 15, 2014
1 parent e844ca2 commit a2e6088
Showing 1 changed file with 21 additions and 50 deletions.
Expand Up @@ -117,22 +117,7 @@ public DBMSMetadata(Connection c) throws SQLException
*/
public DBMSMetadata(String user, String password, DBURI dbURI) throws SQLException, MalformedURLException, ClassNotFoundException
{
this.dburi = dbURI;

this.returnSourceCodeObjectsStatement = dbURI.getDbType().getProperties().getProperty(GET_SOURCE_OBJECTS_STATEMENT) ;

this.returnSourceCodeStatement = dbURI.getDbType().getProperties().getProperty(GET_SOURCE_CODE_STATEMENT) ;

this.returnType = dbURI.getSourceCodeType();

LOGGER.fine("returnSourceCodeStatement="+returnSourceCodeStatement +", returnType="+returnType);

String driverClass = dbURI.getDriverClass();
String urlString = dbURI.getURL().toString();

LOGGER.fine("driverClass="+driverClass+", urlString="+urlString);

Class.forName(driverClass);
String urlString = init(dbURI);

Properties mergedProperties = dbURI.getDbType().getProperties() ;
Map<String,String> dbURIParameters = dbURI.getParameters();
Expand All @@ -156,23 +141,9 @@ public DBMSMetadata(String user, String password, DBURI dbURI) throws SQLExcepti
*/
public DBMSMetadata(Properties properties, DBURI dbURI) throws SQLException, MalformedURLException, ClassNotFoundException
{
this.dburi = dbURI;
this.returnSourceCodeObjectsStatement = dbURI.getDbType().getProperties().getProperty(GET_SOURCE_OBJECTS_STATEMENT) ;
this.returnSourceCodeStatement = dbURI.getDbType().getProperties().getProperty(GET_SOURCE_CODE_STATEMENT) ;
this.returnType = dbURI.getSourceCodeType();
LOGGER.fine("returnSourceCodeStatement="+returnSourceCodeStatement +", returnType="+returnType);
String urlString = init(dbURI);


String driverClass = dbURI.getDriverClass();
String urlString = dbURI.getURL().toString();

LOGGER.fine("driverClass="+driverClass+", urlString="+urlString);

Class.forName(driverClass);

LOGGER.fine("Located class for driverClass="+driverClass);

Properties mergedProperties = dbURI.getDbType().getProperties() ;
Properties mergedProperties = dbURI.getDbType().getProperties();
Map<String,String> dbURIParameters = dbURI.getParameters();
mergedProperties.putAll(dbURIParameters) ;
mergedProperties.putAll(properties) ;
Expand All @@ -196,24 +167,9 @@ public DBMSMetadata(Properties properties, DBURI dbURI) throws SQLException, Mal
*/
public DBMSMetadata(DBURI dbURI) throws SQLException, ClassNotFoundException
{
String urlString = init(dbURI);

this.dburi = dbURI;
this.returnType = dbURI.getSourceCodeType();

DBType dbType = dbURI.getDbType();
LOGGER.fine("dbType="+dbType );
Properties dbURIProperties = dbType.getProperties() ;
this.returnSourceCodeObjectsStatement = dbURIProperties.getProperty(GET_SOURCE_OBJECTS_STATEMENT) ;
this.returnSourceCodeStatement = dbURIProperties.getProperty(GET_SOURCE_CODE_STATEMENT) ;
LOGGER.fine("returnSourceCodeStatement="+returnSourceCodeStatement +", returnType="+returnType);

String driverClass = dbURI.getDriverClass();
String urlString = dbURI.getURL().toString();

LOGGER.fine("driverClass="+driverClass+", urlString="+urlString);

Class.forName(driverClass);

Properties dbURIProperties = dbURI.getDbType().getProperties();
Map<String,String> dbURIParameters = dbURI.getParameters();

/*Overwrite any DBType properties with DBURI parameters
Expand All @@ -223,7 +179,22 @@ public DBMSMetadata(DBURI dbURI) throws SQLException, ClassNotFoundException
dbURIProperties.putAll(dbURIParameters) ;

connection = DriverManager.getConnection(urlString, dbURIProperties);
}
}

private String init(DBURI dbURI) throws ClassNotFoundException {
this.dburi = dbURI;
this.returnSourceCodeObjectsStatement = dbURI.getDbType().getProperties().getProperty(GET_SOURCE_OBJECTS_STATEMENT);
this.returnSourceCodeStatement = dbURI.getDbType().getProperties().getProperty(GET_SOURCE_CODE_STATEMENT);
this.returnType = dbURI.getSourceCodeType();
LOGGER.fine("returnSourceCodeStatement="+returnSourceCodeStatement +", returnType="+returnType);

String driverClass = dbURI.getDriverClass();
String urlString = dbURI.getURL().toString();
LOGGER.fine("driverClass="+driverClass+", urlString="+urlString);
Class.forName(driverClass);
LOGGER.fine("Located class for driverClass="+driverClass);
return urlString;
}

/**
* Return source code text from the database.
Expand Down

0 comments on commit a2e6088

Please sign in to comment.