Author: [log in to unmask] Date: Sat Nov 1 19:38:58 2014 New Revision: 1396 Log: Move utility method to conditions manager. Modified: java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsManager.java java/trunk/conditions/src/main/java/org/hps/conditions/cli/LoadCommand.java Modified: java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsManager.java ============================================================================= --- java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsManager.java (original) +++ java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsManager.java Sat Nov 1 19:38:58 2014 @@ -26,8 +26,6 @@ import org.lcsim.conditions.ConditionsConverter; import org.lcsim.conditions.ConditionsManager; import org.lcsim.conditions.ConditionsManagerImplementation; -import org.lcsim.conditions.ConditionsReader; -import org.lcsim.conditions.readers.BaseClasspathConditionsReader; import org.lcsim.geometry.Detector; import org.lcsim.util.loop.DetectorConditionsConverter; @@ -269,6 +267,33 @@ logger.fine("new collection ID " + collectionId + " created for table " + tableName); return collectionId; } + + /** + * This method will return true if the given collection ID already exists in the table. + * @param tableName The name of the table. + * @param collectionID The collection ID value. + * @return True if collection exists. + */ + public boolean collectionExists(String tableName, int collectionID) { + String sql = "SELECT * FROM " + tableName + " where collection_id = " + collectionID; + ResultSet resultSet = selectQuery(sql); + try { + resultSet.last(); + } catch (SQLException e) { + e.printStackTrace(); + } + int rowCount = 0; + try { + rowCount = resultSet.getRow(); + } catch (SQLException e) { + e.printStackTrace(); + } + if (rowCount != 0) { + return true; + } else { + return false; + } + } /** * Get the list of table meta data. @@ -297,6 +322,7 @@ * @param type The collection class. * @return The table meta data. */ + // FIXME: This should return a list in case of multiple conditions defined with same type. public TableMetaData findTableMetaData(Class type) { for (TableMetaData meta : tableMetaData) { if (meta.getCollectionClass().equals(type)) { Modified: java/trunk/conditions/src/main/java/org/hps/conditions/cli/LoadCommand.java ============================================================================= --- java/trunk/conditions/src/main/java/org/hps/conditions/cli/LoadCommand.java (original) +++ java/trunk/conditions/src/main/java/org/hps/conditions/cli/LoadCommand.java Sat Nov 1 19:38:58 2014 @@ -67,7 +67,7 @@ int collectionID; if (commandLine.getOptionValue("c") != null) { collectionID = Integer.parseInt(commandLine.getOptionValue("c")); - if (collectionExists(conditionsManager, tableName, collectionID)) { + if (conditionsManager.collectionExists(tableName, collectionID)) { throw new IllegalArgumentException("The user supplied collection ID " + collectionID + " already exists in this table."); } } else { @@ -89,7 +89,7 @@ File inputFile = new File(fileName); BufferedReader reader = null; try { - reader = new BufferedReader(new FileReader(inputFile)); + reader = new BufferedReader(new FileReader(inputFile)); String headerLine = reader.readLine(); if (headerLine == null) { throw new IllegalArgumentException("The file is empty."); @@ -118,26 +118,5 @@ } } } - } - - boolean collectionExists(DatabaseConditionsManager conditionsManager, String tableName, int collectionID) { - String sql = "SELECT * FROM " + tableName + " where collection_id = " + collectionID; - ResultSet resultSet = conditionsManager.selectQuery(sql); - try { - resultSet.last(); - } catch (SQLException e) { - e.printStackTrace(); - } - int rowCount = 0; - try { - rowCount = resultSet.getRow(); - } catch (SQLException e) { - e.printStackTrace(); - } - if (rowCount != 0) { - return true; - } else { - return false; - } - } + } }