Print

Print


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;
-        }
-    }
+    }    
 }