Print

Print


Author: [log in to unmask]
Date: Tue Mar 10 13:10:28 2015
New Revision: 2387

Log:
Add method to get available conditions tags from the db.

Modified:
    java/trunk/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java

Modified: java/trunk/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java
 =============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java	(original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/database/DatabaseConditionsManager.java	Tue Mar 10 13:10:28 2015
@@ -12,8 +12,10 @@
 import java.sql.SQLException;
 import java.sql.Statement;
 import java.util.ArrayList;
+import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map.Entry;
+import java.util.Set;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -701,6 +703,39 @@
     public boolean isInitialized() {
         return isInitialized;
     }
+    
+    /**
+     * Get the set of unique conditions tags from the conditions table.
+     * @return The list of unique conditions tags.
+     */
+    public Set<String> getTags() {
+        logger.fine("getting list of available conditions tags");
+        boolean openedConnection = openConnection();
+        Set<String> tags = new LinkedHashSet<String>();
+        ResultSet rs = selectQuery("select distinct(tag) from conditions where tag is not null order by tag");
+        try {
+            while (rs.next()) {
+                tags.add(rs.getString(1));
+            }
+        } catch (SQLException e) {
+            throw new RuntimeException(e);
+        }
+        try {
+            rs.close();
+        } catch (SQLException e) {
+            logger.log(Level.WARNING, "error closing ResultSet", e);
+        }
+        StringBuffer buffer = new StringBuffer();
+        buffer.append("found unique conditions tags ...");
+        for (String tag : tags) {
+            buffer.append(tag + " ");
+        }
+        buffer.setLength(buffer.length() - 1);
+        buffer.append('\n');
+        logger.fine(buffer.toString());        
+        closeConnection(openedConnection);
+        return tags;
+    }
 
     /*
      *******************************