Commit in java/trunk/conditions/src/main/java/org/hps/conditions on MAIN
ConditionsConverterRegistery.java+7-8312 -> 313
ConditionsTableRegistry.java+8312 -> 313
svt/SvtCalibrationConverter.java+1-2312 -> 313
   /SvtConditionsLoader.java+2-2312 -> 313
   /SvtDaqMap.java+25-53312 -> 313
   /SvtDaqMapConverter.java+24-18312 -> 313
   /SvtDaqMapping.java+23added 313
+90-83
1 added + 6 modified, total 7 files
Change SvtDaqMap to use new conditions API.

java/trunk/conditions/src/main/java/org/hps/conditions
ConditionsConverterRegistery.java 312 -> 313
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsConverterRegistery.java	2014-03-18 16:18:13 UTC (rev 312)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsConverterRegistery.java	2014-03-18 19:10:30 UTC (rev 313)
@@ -52,6 +52,7 @@
         manager.registerConditionsConverter(new SvtCalibrationConverter(factory));
         
         // SVT channel map.
+        // TODO: Needs to support unique collection IDs.
         manager.registerConditionsConverter(new SvtChannelCollectionConverter(factory));
 
         // SVT time shift by sensor.
@@ -69,22 +70,20 @@
         // ECAL calibrations.
         manager.registerConditionsConverter(new EcalCalibrationConverter(factory));
         
-        // /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
-        // TODO: Remaining to convert to new API...
-        // /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/  
-                                                                        
         // ECAL combined conditions.
         manager.registerConditionsConverter(new EcalConditionsConverter(factory));
         
         // Beam current condition.
         manager.registerConditionsConverter(new BeamCurrentConverter(factory));
         
-        // ECAL channel map.
-        manager.registerConditionsConverter(new EcalChannelMapConverter(factory));
+        // /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
+        // TODO: Remaining to convert to new API...
+        // /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/  
         
-        ///////////////////////////////////////////////////////////////////////////////
-        // This one will be a pain so convert to new API last once others are working.
         // SVT DAQ map.
         manager.registerConditionsConverter(new SvtDaqMapConverter(factory));
+        
+        // ECAL channel map.
+        manager.registerConditionsConverter(new EcalChannelMapConverter(factory));        
     }
 }

java/trunk/conditions/src/main/java/org/hps/conditions
ConditionsTableRegistry.java 312 -> 313
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsTableRegistry.java	2014-03-18 16:18:13 UTC (rev 312)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsTableRegistry.java	2014-03-18 19:10:30 UTC (rev 313)
@@ -71,6 +71,14 @@
         fields.add("svt_channel_id");
         addTableMetaData(new ConditionsTableMetaData(ConditionsTableConstants.SVT_BAD_CHANNELS, fields));
         
+        // SVT DAQ map
+        fields = new HashSet<String>();
+        fields.add("half");
+        fields.add("layer");
+        fields.add("fpga");
+        fields.add("hybrid");
+        addTableMetaData(new ConditionsTableMetaData(ConditionsTableConstants.SVT_DAQ_MAP, fields));
+        
         // ECal bad channels
         fields = new HashSet<String>();
         fields.add("ecal_channel_id");

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtCalibrationConverter.java 312 -> 313
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtCalibrationConverter.java	2014-03-18 16:18:13 UTC (rev 312)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtCalibrationConverter.java	2014-03-18 19:10:30 UTC (rev 313)
@@ -45,9 +45,8 @@
         int collectionId = record.getFieldValue();
 
         // Objects for building the return value.
-        ConditionsTableMetaData tableMetaData = _objectFactory.getTableRegistry().getTableMetaData(tableName);
         SvtCalibrationCollection collection = 
-                new SvtCalibrationCollection(tableMetaData, collectionId, true); 
+                new SvtCalibrationCollection(this.getTableMetaData(tableName), collectionId, true); 
 
         // Get a connection from the manager.
         ConnectionManager connectionManager = getConnectionManager();

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtConditionsLoader.java 312 -> 313
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsLoader.java	2014-03-18 16:18:13 UTC (rev 312)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsLoader.java	2014-03-18 19:10:30 UTC (rev 313)
@@ -38,9 +38,9 @@
             
             // Get info from the DAQ map about this sensor. 
             Pair<Integer, Integer> daqPair = null;            
-            int half = SvtDaqMap.TOP;
+            int half = SvtDaqMap.TOP_HALF;
             if (sensor.isBottomLayer()) {
-                half = SvtDaqMap.BOTTOM;
+                half = SvtDaqMap.BOTTOM_HALF;
             }             
             daqPair = daqMap.get(half, layerNumber);
             if (daqPair == null) {

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtDaqMap.java 312 -> 313
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMap.java	2014-03-18 16:18:13 UTC (rev 312)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMap.java	2014-03-18 19:10:30 UTC (rev 313)
@@ -1,8 +1,7 @@
 package org.hps.conditions.svt;
 
-import java.util.HashMap;
-import java.util.Map;
-
+import org.hps.conditions.ConditionsObjectCollection;
+import org.hps.conditions.ConditionsTableMetaData;
 import org.lcsim.hps.util.Pair;
 
 /**
@@ -10,56 +9,32 @@
  * for the top and bottom halves of the detector. 
  * @author Jeremy McCormick <[log in to unmask]>
  */
-public class SvtDaqMap {
-
-    // fields: half, layer, fpga, hybrid
+public class SvtDaqMap extends ConditionsObjectCollection<SvtDaqMapping> {
     
     /**
      * Flag values for top or bottom half.
-     * FIXME: This should probably be an enum but it is simpler to use int values for now.  
      */
-    static final int TOP = 0;
-    static final int BOTTOM = 1;    
-      
-    /**
-     * This is the data structure used for the mapping of layer numbers to DAQ pair by top or bottom half.
-     * The mapping is the following: half => layer => pair(fpga, hybrid)
-     */
-    @SuppressWarnings("serial")
-    static private class LayerMap extends HashMap<Integer,HashMap<Integer,Pair<Integer,Integer>>> {        
-    }
-     
-    /**
-     * Object that holds the DAQ map data.
-     */
-    LayerMap layerMap = new LayerMap();
+    public static final int TOP_HALF = 0;
+    public static final int BOTTOM_HALF = 1;
     
-    /**
-     * Class constructor.
-     */
-    SvtDaqMap() {
-        layerMap.put(TOP, new HashMap<Integer,Pair<Integer,Integer>>());
-        layerMap.put(BOTTOM, new HashMap<Integer,Pair<Integer,Integer>>());
+    public SvtDaqMap(ConditionsTableMetaData tableMetaData, int collectionId, boolean isReadOnly) {
+        super(tableMetaData, collectionId, isReadOnly);
     }
-     
+      
     /**
-     * Add a record to the DAQ map.
-     * @param half The value indicating top or bottom half of the detector.
-     * @param layerNumber The layer number.
-     */
-    void add(int half, int layerNumber, Pair<Integer,Integer> pair) {
-        layerMap.get(half).put(layerNumber, pair);
-    }
-    
-    /**
-     * Get a DAQ pair (FPGA, hybrid) by layer number.
+     * Get a DAQ pair (FPGA, hybrid) by top/bottom number and layer number.
      * @param half Value indicating top or bottom half of detector.
      * @param layerNumber The layer number.
      * @return The DAQ pair for the half and layer number or null if does not exist.
      */
     Pair<Integer,Integer> get(int half, int layerNumber) {
-        return layerMap.get(half).get(layerNumber);
-    }    
+        for (SvtDaqMapping object : this.getObjects()) {
+            if (object.getHalf() == half && object.getLayerNumber() == layerNumber) {
+                return new Pair<Integer, Integer>(object.getFpgaNumber(), object.getHybridNumber());
+            }
+        }
+        return null;
+    }
     
     /**
      * Convert this object to a string.
@@ -77,18 +52,15 @@
         buff.append('\n');
         buff.append("----------------------");
         buff.append('\n');
-        for (int half : layerMap.keySet()) {
-            Map<Integer,Pair<Integer,Integer>> map = layerMap.get(half);
-            for (Map.Entry<Integer, Pair<Integer,Integer>> entry : map.entrySet()) {
-                buff.append(half);
-                buff.append("    ");
-                buff.append(String.format("%-2d", entry.getKey()));
-                buff.append("    ");                
-                buff.append(entry.getValue().getFirstElement());
-                buff.append("    ");
-                buff.append(entry.getValue().getSecondElement());
-                buff.append('\n');
-            }
+        for (SvtDaqMapping object : getObjects()) {
+            buff.append(object.getHalf());
+            buff.append("    ");
+            buff.append(String.format("%-2d", object.getLayerNumber()));
+            buff.append("    ");                
+            buff.append(object.getFpgaNumber());
+            buff.append("    ");
+            buff.append(object.getHybridNumber());
+            buff.append('\n');
         }        
         return buff.toString();
     }    

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtDaqMapConverter.java 312 -> 313
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMapConverter.java	2014-03-18 16:18:13 UTC (rev 312)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMapConverter.java	2014-03-18 19:10:30 UTC (rev 313)
@@ -5,12 +5,13 @@
 import java.sql.ResultSet;
 import java.sql.SQLException;
 
+import org.hps.conditions.AbstractConditionsObject.FieldValueMap;
+import org.hps.conditions.ConditionsObjectException;
 import org.hps.conditions.ConditionsObjectFactory;
 import org.hps.conditions.ConditionsRecord;
 import org.hps.conditions.ConnectionManager;
 import org.hps.conditions.DatabaseConditionsConverter;
 import org.lcsim.conditions.ConditionsManager;
-import org.lcsim.hps.util.Pair;
 
 /**
  * This class creates a {@link SvtDaqMap} from the conditions database.
@@ -31,24 +32,25 @@
         if (name == null) {
             name = SVT_DAQ_MAP;
         }
-        
-        // The object to be returned to caller.
-        SvtDaqMap daqMap = new SvtDaqMap();
-        
+                
         // Get the ConditionsRecord with the meta-data, which will use the current run number from the manager.
         ConditionsRecord record = ConditionsRecord.find(manager, name).get(0);
                
         // Get the table name, field name, and field value defining the applicable conditions.
         String tableName = record.getTableName();
         String fieldName = record.getFieldName();
-        int fieldValue = record.getFieldValue();
+        int collectionId = record.getFieldValue();
+        
+        // The object to be returned to caller.
+        SvtDaqMap collection = 
+               new SvtDaqMap(this.getTableMetaData(tableName), collectionId, true); 
                         
         // Get the connection manager.
         ConnectionManager connectionManager = ConnectionManager.getConnectionManager();
                                                                                             
         // Construct the query to find matching calibration records using the ID field.
-        String query = "SELECT half, layer, hybrid, fpga FROM "
-                + tableName + " WHERE " + fieldName + " = " + fieldValue
+        String query = "SELECT id, half, layer, hybrid, fpga FROM "
+                + tableName + " WHERE " + fieldName + " = " + collectionId
                 + " ORDER BY half ASC, layer ASC";
                    
         // Execute the query and get the results.
@@ -58,21 +60,25 @@
             // Loop over the database records.
             while(resultSet.next()) {          
                 
-                // Get record data.
-                int half = resultSet.getInt(1);
-                int layer = resultSet.getInt(2);
-                int hybrid = resultSet.getInt(3);
-                int fpga = resultSet.getInt(4);
-                                
-                // Add data to DAQ map: half => layer => DAQ pair               
-                daqMap.add(half, layer, new Pair<Integer,Integer>(fpga, hybrid));
+                int rowId = resultSet.getInt(1);
+                
+                FieldValueMap fieldValues = new FieldValueMap();
+                fieldValues.put("half", resultSet.getInt(2));
+                fieldValues.put("layer", resultSet.getInt(3));
+                fieldValues.put("hybrid", resultSet.getInt(4));
+                fieldValues.put("fpga", resultSet.getInt(5));
+                SvtDaqMapping newObject = _objectFactory.createObject(
+                        SvtDaqMapping.class, tableName, rowId, fieldValues, true);
+                collection.add(newObject);
             }            
         } catch (SQLException x) {
             throw new RuntimeException("Database error.", x);
-        } 
+        } catch (ConditionsObjectException x) {
+            throw new RuntimeException("Error creating object of " + getType().getSimpleName() + " type.", x);
+        }
         
         // Return DAQ map to caller.
-        return daqMap;
+        return collection;
     }
 
     /**

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtDaqMapping.java added at 313
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMapping.java	                        (rev 0)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMapping.java	2014-03-18 19:10:30 UTC (rev 313)
@@ -0,0 +1,23 @@
+package org.hps.conditions.svt;
+
+import org.hps.conditions.AbstractConditionsObject;
+
+
+public class SvtDaqMapping extends AbstractConditionsObject {
+
+    public int getHalf() {
+        return getFieldValue("half");
+    }
+    
+    public int getLayerNumber() {
+        return getFieldValue("layer");
+    }
+    
+    public int getFpgaNumber() {
+        return getFieldValue("fpga");
+    }
+    
+    public int getHybridNumber() {
+        return getFieldValue("hybrid");
+    }    
+}
SVNspam 0.1