Print

Print


Commit in java/trunk/conditions/src on MAIN
main/java/org/hps/conditions/BasicConditionsObjectFactory.java+9-1309 -> 310
                            /ChannelCollection.java-10309 removed
                            /ConditionsConstants.java-55309 removed
                            /ConditionsConverterRegister.java-90309 removed
                            /ConditionsDriver.java+2-2309 -> 310
                            /ConditionsObject.java+3-8309 -> 310
                            /ConditionsObjectCollection.java-2309 -> 310
                            /ConditionsObjectException.java+23added 310
                            /ConditionsObjectFactory.java+2-2309 -> 310
                            /ConditionsRecord.java+2-2309 -> 310
                            /ConditionsTableMetaData.java+15309 -> 310
                            /ConditionsTableRegistry.java+32-13309 -> 310
                            /DatabaseConditionsConverter.java+4309 -> 310
                            /DatabaseConditionsReader.java+1-1309 -> 310
main/java/org/hps/conditions/beam/BeamCurrent.java+5-13309 -> 310
                                 /BeamCurrentCollection.java+16added 310
                                 /BeamCurrentConverter.java+24-17309 -> 310
main/java/org/hps/conditions/ecal/EcalBadChannel.java+11added 310
                                 /EcalBadChannelCollection.java+11-2309 -> 310
                                 /EcalBadChannelConverter.java+19-9309 -> 310
                                 /EcalCalibration.java+10-16309 -> 310
                                 /EcalCalibrationCollection.java+7-3309 -> 310
                                 /EcalCalibrationConverter.java+20-15309 -> 310
                                 /EcalChannelMapConverter.java+1-1309 -> 310
                                 /EcalConditionsConverter.java+11-13309 -> 310
                                 /EcalGain.java+14-16309 -> 310
                                 /EcalGainCollection.java+6-3309 -> 310
                                 /EcalGainConverter.java+23-17309 -> 310
main/java/org/hps/conditions/svt/SvtBadChannelConverter.java+1-1309 -> 310
                                /SvtCalibrationConverter.java+1-1309 -> 310
                                /SvtChannelCollectionConverter.java+2-3309 -> 310
                                /SvtConditionsConverter.java+7-9309 -> 310
                                /SvtDaqMapConverter.java+2-2309 -> 310
                                /SvtGainConverter.java+1-1309 -> 310
                                /SvtPulseParametersConverter.java+1-1309 -> 310
                                /SvtTimeShiftConverter.java+1-1309 -> 310
test/java/org/hps/conditions/ConditionsDatabaseObjectTest.java-1309 -> 310
test/java/org/hps/conditions/beam/BeamCurrentTest.java+3-2309 -> 310
test/java/org/hps/conditions/ecal/EcalConditionsConverterTest.java+4309 -> 310
                                 /EcalConditionsLoaderTest.java+2-2309 -> 310
test/java/org/hps/conditions/svt/SvtConditionsConverterTest.java+2-2309 -> 310
                                /SvtConditionsLoaderTest.java+2-2309 -> 310
+300-339
3 added + 3 removed + 36 modified, total 42 files
Commit the current conditions working copy.  (Everything still works but some stuff is a mess right now.)

java/trunk/conditions/src/main/java/org/hps/conditions
BasicConditionsObjectFactory.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/BasicConditionsObjectFactory.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/BasicConditionsObjectFactory.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -1,7 +1,6 @@
 package org.hps.conditions;
 
 import org.hps.conditions.AbstractConditionsObject.FieldValueMap;
-import org.hps.conditions.ConditionsObject.ConditionsObjectException;
 
 /**
  * The basic implementation of the {@link ConditionsObjectFactory} interface.
@@ -50,10 +49,19 @@
         return (T)newObject;
     }   
     
+    /**
+     * Get the <code>ConditionsTableRegistry</code> that will be used by the factory to get
+     * table meta data.
+     * @return The conditions table registry.
+     */
     public ConditionsTableRegistry getTableRegistry() {
         return _tableRegistry;
     }
     
+    /**
+     * Get table meta data by name from the registry.
+     * @return The table meta data or null if does not exist.
+     */
     public ConditionsTableMetaData getTableMetaData(String name) {
         return _tableRegistry.getTableMetaData(name);
     }

java/trunk/conditions/src/main/java/org/hps/conditions
ChannelCollection.java removed after 309
--- java/trunk/conditions/src/main/java/org/hps/conditions/ChannelCollection.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ChannelCollection.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -1,10 +0,0 @@
-package org.hps.conditions;
-
-import java.util.HashSet;
-
-/**
- * This class represents a set of channel IDs from the conditions database.
- * @author Jeremy McCormick <[log in to unmask]>
- */
-public class ChannelCollection extends HashSet<Integer> {
-}

java/trunk/conditions/src/main/java/org/hps/conditions
ConditionsConstants.java removed after 309
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsConstants.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsConstants.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -1,55 +0,0 @@
-package org.hps.conditions;
-
-/**
- * Constants for HPS conditions system, such as conditions set key names.
- */
-public final class ConditionsConstants {
-    
-    /** Prevent instantiation of this class, which is only a holder of static constant values. */
-    private ConditionsConstants() {}
-    
-    /** Conditions key for ConditionsRecord. */
-    public static final String CONDITIONS_RECORD = "conditions_record";
-
-    /** Conditions key for combined ECal conditions. */
-    public static final String ECAL_CONDITIONS = "ecal_conditions";
-    
-    /** Table with ECal channel data. */
-    public static final String ECAL_CHANNELS = "ecal_channels";
-
-    /** Conditions key for ECal gain data. */
-    public static final String ECAL_GAINS = "ecal_gains";
-    
-    /** Conditions key for ECal bad channel set. */
-    public static final String ECAL_BAD_CHANNELS = "ecal_bad_channels";
-    
-    /** Conditions key for ECal calibration information. */
-    public static final String ECAL_CALIBRATIONS = "ecal_calibrations";
-    
-    /** Conditions key for combined ECal conditions. */
-    public static final String SVT_CONDITIONS = "svt_conditions";
-    
-    /** Table with SVT channel data. */
-    public static final String SVT_CHANNELS = "svt_channels";
-    
-    /** Table with the SVT DAQ map. */
-    public static final String SVT_DAQ_MAP = "svt_daq_map";
-            
-    /** Conditions key for SVT calibration data. */ 
-    public static final String SVT_CALIBRATIONS = "svt_calibrations";
-    
-    /** Conditions key for SVT bad channels. */
-    public static final String SVT_BAD_CHANNELS = "svt_bad_channels";
-    
-    /** Conditions key for SVT pulse parameters. */
-    public static final String SVT_PULSE_PARAMETERS = "svt_pulse_parameters";
-    
-    /** Conditions key for SVT gain data. */
-    public static final String SVT_GAINS = "svt_gains";
-    
-    /** Conditions key for SVT time shifts by sensor. */
-    public static final String SVT_TIME_SHIFTS = "svt_time_shifts";
-    
-    /** Conditions key for integrated beam current. */
-    public static final String BEAM_CURRENT = "beam_current";
-}

java/trunk/conditions/src/main/java/org/hps/conditions
ConditionsConverterRegister.java removed after 309
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsConverterRegister.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsConverterRegister.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -1,90 +0,0 @@
-package org.hps.conditions;
-
-import org.hps.conditions.beam.BeamCurrentConverter;
-import org.hps.conditions.ecal.EcalBadChannelConverter;
-import org.hps.conditions.ecal.EcalCalibrationConverter;
-import org.hps.conditions.ecal.EcalChannelMapConverter;
-import org.hps.conditions.ecal.EcalConditionsConverter;
-import org.hps.conditions.ecal.EcalGainConverter;
-import org.hps.conditions.svt.SvtPulseParametersConverter;
-import org.hps.conditions.svt.SvtBadChannelConverter;
-import org.hps.conditions.svt.SvtCalibrationConverter;
-import org.hps.conditions.svt.SvtChannelCollectionConverter;
-import org.hps.conditions.svt.SvtConditionsConverter;
-import org.hps.conditions.svt.SvtDaqMapConverter;
-import org.hps.conditions.svt.SvtGainConverter;
-import org.hps.conditions.svt.SvtTimeShiftConverter;
-import org.lcsim.conditions.ConditionsManager;
-
-/**
- * This class registers the full set of conditions converters onto the manager.
- * @author Jeremy McCormick <[log in to unmask]>
- */
-class ConditionsConverterRegister {
-    
-    /**
-     * This method will register all the conditions converters onto the given manager.
-     * @param manager The conditions manager.
-     */
-    static void register(ConditionsManager manager) {
-        
-        // Create the table meta data registry.
-        ConditionsTableRegistry tableRegistry = new ConditionsTableRegistry();
-        tableRegistry.registerDefaultTableMetaData();
-        
-        // Create the object factory for SVT.
-        ConditionsObjectFactory factory = 
-                new BasicConditionsObjectFactory(ConnectionManager.getConnectionManager(), tableRegistry);
-                
-        // ConditionsRecords with validity meta data.
-        manager.registerConditionsConverter(new ConditionsRecordConverter(factory));
-
-        // SVT combined conditions.
-        manager.registerConditionsConverter(new SvtConditionsConverter(factory));
-        
-        // SVT gains.  
-        manager.registerConditionsConverter(new SvtGainConverter(factory));
-        
-        // SVT pulse parameters.
-        manager.registerConditionsConverter(new SvtPulseParametersConverter(factory));
-        
-        // SVT calibrations.
-        manager.registerConditionsConverter(new SvtCalibrationConverter(factory));
-        
-        // SVT channel map.
-        manager.registerConditionsConverter(new SvtChannelCollectionConverter(factory));
-
-        // SVT time shift by sensor.
-        manager.registerConditionsConverter(new SvtTimeShiftConverter(factory));
-        
-        // SVT bad channels.
-        manager.registerConditionsConverter(new SvtBadChannelConverter(factory));       
-        
-        // /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
-        // TODO: Remaining to convert to new API...
-        // /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/  
-                
-        // ECAL bad channels.
-        manager.registerConditionsConverter(new EcalBadChannelConverter(factory));
-        
-        // ECAL channel map.
-        manager.registerConditionsConverter(new EcalChannelMapConverter(factory));
-        
-        // ECAL gains.
-        manager.registerConditionsConverter(new EcalGainConverter(factory));
-                
-        // ECAL calibrations.
-        manager.registerConditionsConverter(new EcalCalibrationConverter(factory));
-                        
-        // ECAL combined conditions.
-        manager.registerConditionsConverter(new EcalConditionsConverter(factory));
-        
-        // Beam current condition.
-        manager.registerConditionsConverter(new BeamCurrentConverter(factory));        
-        
-        ///////////////////////////////////////////////////////////////////////////////
-        // This one will be a pain so convert to new API last once others are working.
-        // SVT DAQ map.
-        manager.registerConditionsConverter(new SvtDaqMapConverter(factory));
-    }
-}

java/trunk/conditions/src/main/java/org/hps/conditions
ConditionsDriver.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsDriver.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsDriver.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -8,8 +8,8 @@
 import org.hps.conditions.svt.SvtConditionsLoader;
 import org.lcsim.util.Driver;
 
-import static org.hps.conditions.ConditionsConstants.SVT_CONDITIONS;
-import static org.hps.conditions.ConditionsConstants.ECAL_CONDITIONS;
+import static org.hps.conditions.ConditionsTableConstants.SVT_CONDITIONS;
+import static org.hps.conditions.ConditionsTableConstants.ECAL_CONDITIONS;
 
 /**
  * This {@link org.lcsim.util.Driver} loads conditions onto an HPS detector.

java/trunk/conditions/src/main/java/org/hps/conditions
ConditionsObject.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsObject.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsObject.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -133,12 +133,7 @@
      */
     void setIsReadOnly();
     
-    /**
-     * Generic Exception type throw by methods in this interface.
-     */
-    public static final class ConditionsObjectException extends Exception {
-        public ConditionsObjectException(String message) {
-            super(message);
-        }
-    }    
+    // String getTableName();
+    
+    // String[] getFieldNames();
 }

java/trunk/conditions/src/main/java/org/hps/conditions
ConditionsObjectCollection.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsObjectCollection.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsObjectCollection.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -5,8 +5,6 @@
 import java.util.Collections;
 import java.util.List;
 
-import org.hps.conditions.ConditionsObject.ConditionsObjectException;
-
 public class ConditionsObjectCollection<T extends ConditionsObject> {
 
     List<T> objects = new ArrayList<T>();    

java/trunk/conditions/src/main/java/org/hps/conditions
ConditionsObjectException.java added at 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsObjectException.java	                        (rev 0)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsObjectException.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -0,0 +1,23 @@
+package org.hps.conditions;
+
+/**
+ * Generic Exception type throw by methods of {@link ConditionsObject}
+ * or other associated classes such as converters and collections.
+ */
+@SuppressWarnings("serial")
+public final class ConditionsObjectException extends Exception {
+
+    ConditionsObject _object;
+
+    public ConditionsObjectException(String message) {
+        super(message);
+    }
+
+    public ConditionsObjectException(ConditionsObject object, String message) {
+        super(message);
+    }
+
+    public ConditionsObject getConditionsObject() {
+        return _object;
+    }
+}
\ No newline at end of file

java/trunk/conditions/src/main/java/org/hps/conditions
ConditionsObjectFactory.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsObjectFactory.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsObjectFactory.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -1,10 +1,10 @@
 package org.hps.conditions;
 
 import org.hps.conditions.AbstractConditionsObject.FieldValueMap;
-import org.hps.conditions.ConditionsObject.ConditionsObjectException;
 
 /**
- * This is the primary interface in the API for generically instantiating {@link ConditionsObject} objects.
+ * This is the primary interface in the API for generically instantiating {@link ConditionsObject} objects
+ * from the database.
  * @author Jeremy McCormick <[log in to unmask]>
  */
 public interface ConditionsObjectFactory {

java/trunk/conditions/src/main/java/org/hps/conditions
ConditionsRecord.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsRecord.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsRecord.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -1,6 +1,6 @@
 package org.hps.conditions;
 
-import static org.hps.conditions.ConditionsConstants.CONDITIONS_RECORD;
+import static org.hps.conditions.ConditionsTableConstants.CONDITIONS_RECORD;
 
 import java.sql.Blob;
 import java.sql.ResultSet;
@@ -12,7 +12,7 @@
 
 /**
  * This class represents a single record from the primary conditions data table,
- * which defines the run validity range for a specific conditions set.
+ * which defines the validity range for a specific collection of conditions objects.
  * 
  * @author Jeremy McCormick <[log in to unmask]>
  */

java/trunk/conditions/src/main/java/org/hps/conditions
ConditionsTableMetaData.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsTableMetaData.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsTableMetaData.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -2,6 +2,11 @@
 
 import java.util.Set;
 
+/**
+ * This class contains basic meta data information about tables in the conditions
+ * database, including their name and list of fields.
+ * @author Jeremy McCormick <[log in to unmask]>
+ */
 public class ConditionsTableMetaData {
     
     String _tableName;
@@ -12,6 +17,16 @@
         _fieldNames = fieldNames;
     }
     
+    /*
+    ConditionsTableMetaData(String tableName, String[] fields) {
+        _tableName = tableName;
+        _fieldNames = new HashSet<String>();
+        for (String field : fields) {
+            _fieldNames.add(field);
+        }
+    }
+    */
+    
     Set<String> getFieldNames() {
         return _fieldNames;
     }

java/trunk/conditions/src/main/java/org/hps/conditions
ConditionsTableRegistry.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsTableRegistry.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsTableRegistry.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -5,6 +5,10 @@
 import java.util.Map;
 import java.util.Set;
 
+/**
+ * A central registry of {@link ConditionsTableMetaData} objects for use by converters.
+ * @author Jeremy McCormick <[log in to unmask]>
+ */
 public class ConditionsTableRegistry {
     
     Map<String, ConditionsTableMetaData> _tableMetaDataMap = new HashMap<String, ConditionsTableMetaData>();
@@ -23,15 +27,13 @@
     void registerDefaultTableMetaData() {
         
         Set<String> fields;
-        ConditionsTableMetaData tableMetaData;
         
         // SVT gains
         fields = new HashSet<String>();
         fields.add("svt_channel_id");
         fields.add("gain");
         fields.add("offset");
-        tableMetaData = new ConditionsTableMetaData(ConditionsConstants.SVT_GAINS, fields);
-        addTableMetaData(tableMetaData);
+        addTableMetaData(new ConditionsTableMetaData(ConditionsTableConstants.SVT_GAINS, fields));
         
         // SVT pulse parameters
         fields = new HashSet<String>();
@@ -40,16 +42,14 @@
         fields.add("t0");
         fields.add("tp");
         fields.add("chisq");
-        tableMetaData = new ConditionsTableMetaData(ConditionsConstants.SVT_PULSE_PARAMETERS, fields);
-        addTableMetaData(tableMetaData);
+        addTableMetaData(new ConditionsTableMetaData(ConditionsTableConstants.SVT_PULSE_PARAMETERS, fields));
 
         // SVT gains
         fields = new HashSet<String>();
         fields.add("svt_channel_id");
         fields.add("noise");
         fields.add("pedestal");
-        tableMetaData = new ConditionsTableMetaData(ConditionsConstants.SVT_CALIBRATIONS, fields);
-        addTableMetaData(tableMetaData);
+        addTableMetaData(new ConditionsTableMetaData(ConditionsTableConstants.SVT_CALIBRATIONS, fields));
         
         // SVT channels
         fields = new HashSet<String>();
@@ -57,22 +57,41 @@
         fields.add("fpga");
         fields.add("hybrid");
         fields.add("channel");
-        tableMetaData = new ConditionsTableMetaData(ConditionsConstants.SVT_CHANNELS, fields);
-        addTableMetaData(tableMetaData);
+        addTableMetaData(new ConditionsTableMetaData(ConditionsTableConstants.SVT_CHANNELS, fields));
 
         // SVT time shift
         fields = new HashSet<String>();
         fields.add("fpga");
         fields.add("hybrid");
         fields.add("time_shift");
-        tableMetaData = new ConditionsTableMetaData(ConditionsConstants.SVT_TIME_SHIFTS, fields);
-        addTableMetaData(tableMetaData);
+        addTableMetaData(new ConditionsTableMetaData(ConditionsTableConstants.SVT_TIME_SHIFTS, fields));
         
         // SVT bad channels
         fields = new HashSet<String>();
         fields.add("svt_channel_id");
-        tableMetaData = new ConditionsTableMetaData(ConditionsConstants.SVT_BAD_CHANNELS, fields);
-        addTableMetaData(tableMetaData);
+        addTableMetaData(new ConditionsTableMetaData(ConditionsTableConstants.SVT_BAD_CHANNELS, fields));
         
+        // ECal bad channels
+        fields = new HashSet<String>();
+        fields.add("ecal_channel_id");
+        addTableMetaData(new ConditionsTableMetaData(ConditionsTableConstants.ECAL_BAD_CHANNELS, fields));
+        
+        // ECal gains
+        fields = new HashSet<String>();
+        fields.add("ecal_channel_id");
+        fields.add("gain");
+        addTableMetaData(new ConditionsTableMetaData(ConditionsTableConstants.ECAL_GAINS, fields));
+        
+        // Ecal calibrations
+        fields = new HashSet<String>();
+        fields.add("ecal_channel_id");
+        fields.add("noise");
+        fields.add("pedestal");
+        addTableMetaData(new ConditionsTableMetaData(ConditionsTableConstants.ECAL_CALIBRATIONS, fields));
+        
+        // Beam current
+        fields = new HashSet<String>();
+        fields.add("beam_current");
+        addTableMetaData(new ConditionsTableMetaData(ConditionsTableConstants.BEAM_CURRENT, fields));
     }
 }

java/trunk/conditions/src/main/java/org/hps/conditions
DatabaseConditionsConverter.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsConverter.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsConverter.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -28,4 +28,8 @@
     protected void setObjectFactory(ConditionsObjectFactory objectFactory) {
         _objectFactory = objectFactory;
     }               
+    
+    public final ConditionsTableMetaData getTableMetaData(String tableName) {
+        return _objectFactory.getTableRegistry().getTableMetaData(tableName);
+    }
 }
\ No newline at end of file

java/trunk/conditions/src/main/java/org/hps/conditions
DatabaseConditionsReader.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsReader.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsReader.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -111,7 +111,7 @@
             
         // Register the converters on the manager.         
         // FIXME: This should really only happen once instead of being called here every time.
-        ConditionsConverterRegister.register(manager);
+        ConditionsConverterRegistery.register(manager);
                 
         // Open a connection to the database.
         connection = ConnectionManager.getConnectionManager().createConnection();

java/trunk/conditions/src/main/java/org/hps/conditions/beam
BeamCurrent.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/beam/BeamCurrent.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/beam/BeamCurrent.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -1,26 +1,18 @@
 package org.hps.conditions.beam;
 
+import org.hps.conditions.AbstractConditionsObject;
+
 /**
  * This class is a simple data holder for the integrated beam current condition.
  * @author Jeremy McCormick <[log in to unmask]>
  */
-public class BeamCurrent {
-    
-    double beamCurrent = Double.NaN;
-    
+public class BeamCurrent extends AbstractConditionsObject {
+            
     /**
-     * Class constructor.
-     * @param beamCurrent The integrated beam current value.
-     */
-    BeamCurrent(double beamCurrent) {
-        this.beamCurrent = beamCurrent;
-    }
-    
-    /**
      * Get the integrated beam current.
      * @return The integrated beam current.
      */
     double getIntegratedBeamCurrent() {
-        return beamCurrent;
+        return getFieldValue("beam_current");
     }
 }

java/trunk/conditions/src/main/java/org/hps/conditions/beam
BeamCurrentCollection.java added at 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/beam/BeamCurrentCollection.java	                        (rev 0)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/beam/BeamCurrentCollection.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -0,0 +1,16 @@
+package org.hps.conditions.beam;
+
+import org.hps.conditions.ConditionsObjectCollection;
+import org.hps.conditions.ConditionsTableMetaData;
+
+public class BeamCurrentCollection extends ConditionsObjectCollection<BeamCurrent> {
+    
+    /**
+     * Class constructor.
+     */
+    BeamCurrentCollection(ConditionsTableMetaData tableMetaData, int collectionId, boolean isReadOnly) {
+        super(tableMetaData, collectionId, isReadOnly);
+    }
+    
+
+}

java/trunk/conditions/src/main/java/org/hps/conditions/beam
BeamCurrentConverter.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/beam/BeamCurrentConverter.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/beam/BeamCurrentConverter.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -3,17 +3,19 @@
 import java.sql.ResultSet;
 import java.sql.SQLException;
 
-import org.lcsim.conditions.ConditionsManager;
+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;
 
 /**
  * This class creates a {@link BeamCurrent} from the conditions database.
  * @author Jeremy McCormick <[log in to unmask]>
  */
-public class BeamCurrentConverter extends DatabaseConditionsConverter<BeamCurrent> {
+public class BeamCurrentConverter extends DatabaseConditionsConverter<BeamCurrentCollection> {
     
     public BeamCurrentConverter(ConditionsObjectFactory objectFactory) {
         super(objectFactory);
@@ -24,7 +26,7 @@
      * @param manager The current conditions manager.
      * @param name The name of the conditions set.
      */
-    public BeamCurrent getData(ConditionsManager manager, String name) {
+    public BeamCurrentCollection getData(ConditionsManager manager, String name) {
         
         // 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);
@@ -32,40 +34,45 @@
         // 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();
+        
+        // Collection to be returned to caller.
+        BeamCurrentCollection collection = new BeamCurrentCollection(getTableMetaData(name), collectionId, true);
                         
         // Get the connection manager.
         ConnectionManager connectionManager = ConnectionManager.getConnectionManager();
                                                                                             
         // Construct the query to find matching records using the ID field.
-        String query = "SELECT beam_current FROM "
-                + tableName + " WHERE " + fieldName + " = " + fieldValue;
+        String query = "SELECT id, beam_current FROM "
+                + tableName + " WHERE " + fieldName + " = " + collectionId;
             
         // Execute the query and get the results.
         ResultSet resultSet = connectionManager.query(query);
-        
-        // The object to be returned to caller.
-        BeamCurrent beamCurrent = null;
-        
+                
         try {
-            // Loop over the gain records.            
-            while(resultSet.next()) {                              
-                beamCurrent = new BeamCurrent(resultSet.getDouble(1));
-                break;
+            // Loop over the records.            
+            while(resultSet.next()) {                                                             
+                int rowId = resultSet.getInt(1);
+                FieldValueMap fieldValues = new FieldValueMap();
+                fieldValues.put("beam_current", resultSet.getDouble(2));
+                BeamCurrent newObject = _objectFactory.createObject(BeamCurrent.class, tableName, rowId, fieldValues, true);                
+                collection.add(newObject);
             }            
         } catch (SQLException x) {
             throw new RuntimeException("Database error.", x);
+        } catch (ConditionsObjectException x){
+            throw new RuntimeException("Error converting to " + getType().getSimpleName() + "type", x);
         }
         
         // Return collection of gain objects to caller.
-        return beamCurrent;
+        return collection;
     }
 
     /**
      * Get the type handled by this converter.     
      * @return The type handled by this converter.
      */
-    public Class<BeamCurrent> getType() {
-        return BeamCurrent.class;
+    public Class<BeamCurrentCollection> getType() {
+        return BeamCurrentCollection.class;
     }        
 }

java/trunk/conditions/src/main/java/org/hps/conditions/ecal
EcalBadChannel.java added at 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalBadChannel.java	                        (rev 0)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalBadChannel.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -0,0 +1,11 @@
+package org.hps.conditions.ecal;
+
+import org.hps.conditions.AbstractConditionsObject;
+
+public class EcalBadChannel extends AbstractConditionsObject {
+    
+    int getChannelId() {
+        return getFieldValue("ecal_channel_id");
+    }
+    
+}

java/trunk/conditions/src/main/java/org/hps/conditions/ecal
EcalBadChannelCollection.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalBadChannelCollection.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalBadChannelCollection.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -1,9 +1,18 @@
 package org.hps.conditions.ecal;
 
-import org.hps.conditions.ChannelCollection;
+import org.hps.conditions.ConditionsObjectCollection;
+import org.hps.conditions.ConditionsTableMetaData;
 
 /**
  * A collection of bad channel IDs in the ECAL.
  */
-public class EcalBadChannelCollection extends ChannelCollection {
+public class EcalBadChannelCollection extends ConditionsObjectCollection<EcalBadChannel> {
+    
+    public EcalBadChannelCollection() {        
+    }
+    
+    public EcalBadChannelCollection(ConditionsTableMetaData tableMetaData, int collectionId, boolean isReadOnly) {
+        super(tableMetaData, collectionId, isReadOnly);
+    }
+    
 }

java/trunk/conditions/src/main/java/org/hps/conditions/ecal
EcalBadChannelConverter.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalBadChannelConverter.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalBadChannelConverter.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -3,16 +3,17 @@
 import java.sql.ResultSet;
 import java.sql.SQLException;
 
-import org.lcsim.conditions.ConditionsManager;
-import org.hps.conditions.ChannelCollection;
+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.ConditionsRecordCollection;
 import org.hps.conditions.ConnectionManager;
 import org.hps.conditions.DatabaseConditionsConverter;
+import org.lcsim.conditions.ConditionsManager;
 
 /**
- * This class creates a {@link ChannelCollection} representing bad readout channels.
+ * This class creates a {@link EcalBadChannelCollection} representing bad readout channels.
  * @author Jeremy McCormick <[log in to unmask]>
  */
 public class EcalBadChannelConverter extends DatabaseConditionsConverter<EcalBadChannelCollection> {
@@ -29,7 +30,7 @@
     public EcalBadChannelCollection getData(ConditionsManager manager, String name) {
 
         // Collection to be returned to caller.
-        EcalBadChannelCollection badChannels = new EcalBadChannelCollection();
+        EcalBadChannelCollection collection = new EcalBadChannelCollection();
 
         // Get the ConditionsRecord with the meta-data, which will use the
         // current run number from the manager.
@@ -46,22 +47,31 @@
             int fieldValue = record.getFieldValue();
 
             // Query for getting back bad channel records.
-            String query = "SELECT ecal_channel_id FROM " + tableName + " WHERE " 
+            String query = "SELECT id, ecal_channel_id FROM " + tableName + " WHERE " 
                     + fieldName + " = " + fieldValue + " ORDER BY id ASC";
             ResultSet resultSet = ConnectionManager.getConnectionManager().query(query);
             
             // Loop over the records.
             try {
                 while (resultSet.next()) {
-                    int channelId = resultSet.getInt(1);
-                    badChannels.add(channelId);
+                    
+                    int rowId = resultSet.getInt(1);
+                                        
+                    FieldValueMap fieldValues = new FieldValueMap();
+                    fieldValues.put("ecal_channel_id", resultSet.getInt(2));
+                    
+                    EcalBadChannel newObject = _objectFactory.createObject(EcalBadChannel.class, tableName, rowId, fieldValues, true);
+                    
+                    collection.add(newObject);
                 }
             } catch (SQLException x) {
                 throw new RuntimeException(x);
-            } 
+            } catch (ConditionsObjectException x) {
+                throw new RuntimeException("Error converting to " + getType().getSimpleName() + " type.");
+            }
         }
                
-        return badChannels;
+        return collection;
     }
 
     /**

java/trunk/conditions/src/main/java/org/hps/conditions/ecal
EcalCalibration.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalCalibration.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalCalibration.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -1,35 +1,29 @@
 package org.hps.conditions.ecal;
 
+import org.hps.conditions.AbstractConditionsObject;
+
 /**
  * This class is a simplistic representation of ECal pedestal and noise
  * values from the conditions database.
  * 
  * @author Jeremy McCormick <[log in to unmask]>
  */
-class EcalCalibration {
-       
-    /** The pedestal value. */
-    private double pedestal;
+public class EcalCalibration extends AbstractConditionsObject {
     
-    /** The noise value. */
-    private double noise;
-    
     /**
-     * Fully qualified class constructor.
-     * @param pedestal The pedestal value.
-     * @param noise The noise value.
+     * Get the channel ID.
+     * @return The channel ID.
      */
-    EcalCalibration(double pedestal, double noise) {
-        this.pedestal = pedestal;
-        this.noise = noise;
+    public int getChannelId() {
+        return getFieldValue("ecal_channel_id");
     }
-        
+    
     /**
      * Get the pedestal value.
      * @return The gain value.
      */
     public double getPedestal() {
-        return pedestal;
+        return getFieldValue("pedestal");
     }       
     
     /**
@@ -37,6 +31,6 @@
      * @return The noise value.
      */
     public double getNoise() {
-        return noise;
+        return getFieldValue("noise");
     }
 }
\ No newline at end of file

java/trunk/conditions/src/main/java/org/hps/conditions/ecal
EcalCalibrationCollection.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalCalibrationCollection.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalCalibrationCollection.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -1,15 +1,19 @@
 package org.hps.conditions.ecal;
 
-import java.util.LinkedHashMap;
+import org.hps.conditions.ConditionsObjectCollection;
+import org.hps.conditions.ConditionsTableMetaData;
 
 /**
  * This class represents a list of {@link EcalCalibration} objects and their ECAL channel IDs.
  * @author Jeremy McCormick <[log in to unmask]>
  */
-public class EcalCalibrationCollection extends LinkedHashMap<Integer,EcalCalibration> {
+public class EcalCalibrationCollection extends ConditionsObjectCollection<EcalCalibration> {
+
     /**
      * Class constructor.
      */
-    EcalCalibrationCollection() {        
+    EcalCalibrationCollection(ConditionsTableMetaData tableMetaData, int collectionId, boolean isReadOnly) {
+        super(tableMetaData, collectionId, isReadOnly);
     }
+
 }

java/trunk/conditions/src/main/java/org/hps/conditions/ecal
EcalCalibrationConverter.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalCalibrationConverter.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalCalibrationConverter.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -3,6 +3,8 @@
 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;
@@ -28,9 +30,6 @@
      */
     public EcalCalibrationCollection getData(ConditionsManager manager, String name) {
 
-        // Collection to be returned to caller.
-        EcalCalibrationCollection calibrations = new EcalCalibrationCollection();
-
         // 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);
@@ -39,16 +38,19 @@
         // applicable conditions.
         String tableName = record.getTableName();
         String fieldName = record.getFieldName();
-        int fieldValue = record.getFieldValue();
+        int collectionId = record.getFieldValue();
+        
+        // Collection to be returned to caller.
+        EcalCalibrationCollection collection = new EcalCalibrationCollection(getTableMetaData(name), collectionId, true);
 
         // References to database objects.
         ResultSet resultSet = null;
         ConnectionManager connectionManager = getConnectionManager();
 
         // The query to get conditions.
-        String query = "SELECT ecal_channel_id, pedestal, noise FROM " 
+        String query = "SELECT id, ecal_channel_id, pedestal, noise FROM " 
                 + tableName + " WHERE " 
-                + fieldName + " = " + fieldValue + " ORDER BY ecal_channel_id ASC";
+                + fieldName + " = " + collectionId + " ORDER BY ecal_channel_id ASC";
 
         // Execute the query.
         resultSet = connectionManager.query(query);
@@ -56,22 +58,25 @@
         try {
             // Loop over the records.
             while (resultSet.next()) {
-                // Create calibration object from record.
-                int channelId = resultSet.getInt(1);
-                double pedestal = resultSet.getDouble(2);
-                double noise = resultSet.getDouble(3);
-                calibrations.put(channelId, new EcalCalibration(pedestal, noise));
+                int rowId = resultSet.getInt(1);                 
+                FieldValueMap fieldValues = new FieldValueMap();
+                fieldValues.put("ecal_channel_id", resultSet.getInt(2));
+                fieldValues.put("pedestal", resultSet.getDouble(3));
+                fieldValues.put("noise", resultSet.getDouble(4));
+                EcalCalibration newObject = _objectFactory.createObject(EcalCalibration.class, tableName, rowId, fieldValues, true);                
+                collection.add(newObject);
             }
         } catch (SQLException x) {
-            throw new RuntimeException("Database error.", x);
-        } 
+            throw new RuntimeException("Database error", x);
+        } catch (ConditionsObjectException x) {
+            throw new RuntimeException("Error converting to " + getType().getSimpleName() + " object", x);
+        }
         
-        return calibrations;
+        return collection;
     }
 
     /**
      * Get the type handled by this converter.
-     * 
      * @return The type handled by this converter.
      */
     public Class<EcalCalibrationCollection> getType() {

java/trunk/conditions/src/main/java/org/hps/conditions/ecal
EcalChannelMapConverter.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalChannelMapConverter.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalChannelMapConverter.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -1,6 +1,6 @@
 package org.hps.conditions.ecal;
 
-import static org.hps.conditions.ConditionsConstants.ECAL_CHANNELS;
+import static org.hps.conditions.ConditionsTableConstants.ECAL_CHANNELS;
 
 import java.sql.ResultSet;
 import java.sql.SQLException;

java/trunk/conditions/src/main/java/org/hps/conditions/ecal
EcalConditionsConverter.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsConverter.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsConverter.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -1,15 +1,15 @@
 package org.hps.conditions.ecal;
 
-import static org.hps.conditions.ConditionsConstants.ECAL_BAD_CHANNELS;
-import static org.hps.conditions.ConditionsConstants.ECAL_CALIBRATIONS;
-import static org.hps.conditions.ConditionsConstants.ECAL_CHANNELS;
-import static org.hps.conditions.ConditionsConstants.ECAL_GAINS;
+import static org.hps.conditions.ConditionsTableConstants.ECAL_BAD_CHANNELS;
+import static org.hps.conditions.ConditionsTableConstants.ECAL_CALIBRATIONS;
+import static org.hps.conditions.ConditionsTableConstants.ECAL_CHANNELS;
+import static org.hps.conditions.ConditionsTableConstants.ECAL_GAINS;
 
 import java.util.Map.Entry;
 
-import org.lcsim.conditions.ConditionsManager;
 import org.hps.conditions.ConditionsObjectFactory;
 import org.hps.conditions.DatabaseConditionsConverter;
+import org.lcsim.conditions.ConditionsManager;
 
 /**
  * This class loads all ecal conditions into an {@link EcalConditions} object
@@ -38,26 +38,24 @@
                                        
         // Add gains.
         EcalGainCollection gains = manager.getCachedConditions(EcalGainCollection.class, ECAL_GAINS).getCachedData();        
-        for (Entry<Integer,EcalGain> entry : gains.entrySet()) {
-            EcalChannel channel = channelMap.get(entry.getKey());
-            EcalGain gain = entry.getValue();
+        for (EcalGain gain : gains.getObjects()) {
+            EcalChannel channel = channelMap.get(gain.getChannelId());
             conditions.getChannelConstants(channel).setGain(gain);
         }
         
         // Add bad channels.
         EcalBadChannelCollection badChannels = manager.getCachedConditions(
                 EcalBadChannelCollection.class, ECAL_BAD_CHANNELS).getCachedData();
-        for (Integer badChannel : badChannels) {
-            EcalChannel channel = channelMap.get(badChannel);
+        for (EcalBadChannel badChannel : badChannels.getObjects()) {
+            EcalChannel channel = channelMap.get(badChannel.getChannelId());
             conditions.getChannelConstants(channel).setBadChannel(true);
         }
         
         // Add calibrations including pedestal and noise values.
         EcalCalibrationCollection calibrations = 
                 manager.getCachedConditions(EcalCalibrationCollection.class, ECAL_CALIBRATIONS).getCachedData();
-        for (Entry<Integer,EcalCalibration> entry : calibrations.entrySet()) {
-            EcalChannel channel = channelMap.get(entry.getKey());
-            EcalCalibration calibration = entry.getValue();
+        for (EcalCalibration calibration : calibrations.getObjects()) {
+            EcalChannel channel = channelMap.get(calibration.getChannelId());
             conditions.getChannelConstants(channel).setCalibration(calibration);
         }       
         

java/trunk/conditions/src/main/java/org/hps/conditions/ecal
EcalGain.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalGain.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalGain.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -1,29 +1,27 @@
 package org.hps.conditions.ecal;
 
+import org.hps.conditions.AbstractConditionsObject;
+
 /**
- * This class is a simplistic representation of gain values from the ECAL
+ * This class is a simplistic representation of gain values from the ECal
  * conditions database.     
  * @author Jeremy McCormick <[log in to unmask]>
  */
-class EcalGain {
-       
-    /** The gain value. */
-    private double gain;
-    
+public class EcalGain extends AbstractConditionsObject {
+               
     /**
-     * Fully qualified class constructor.
-     * @param id
-     * @param gain
-     */
-    EcalGain(double gain) {
-        this.gain = gain;
-    }
-    
-    /**
      * Get the gain value.
      * @return The gain value.
      */
     public double getGain() {
-        return gain;
+        return getFieldValue("gain");
     }       
+    
+    /**
+     * Get the ECal channel ID.
+     * @return The ECal channel ID.
+     */
+    public int getChannelId() {
+        return getFieldValue("ecal_channel_id");
+    }
 }
\ No newline at end of file

java/trunk/conditions/src/main/java/org/hps/conditions/ecal
EcalGainCollection.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalGainCollection.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalGainCollection.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -1,14 +1,17 @@
 package org.hps.conditions.ecal;
 
-import java.util.LinkedHashMap;
+import org.hps.conditions.ConditionsObjectCollection;
+import org.hps.conditions.ConditionsTableMetaData;
 
 /**
  * This class maps ECAL channel IDs from the database to ECal gain parameters.
  */
-public class EcalGainCollection extends LinkedHashMap<Integer,EcalGain> {
+public class EcalGainCollection extends ConditionsObjectCollection<EcalGain> {
+    
     /**
      * Class constructor.
      */
-    EcalGainCollection() {        
+    EcalGainCollection(ConditionsTableMetaData tableMetaData, int collectionId, boolean isReadOnly) {
+        super(tableMetaData, collectionId, isReadOnly);
     }
 }

java/trunk/conditions/src/main/java/org/hps/conditions/ecal
EcalGainConverter.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalGainConverter.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalGainConverter.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -3,11 +3,14 @@
 import java.sql.ResultSet;
 import java.sql.SQLException;
 
-import org.lcsim.conditions.ConditionsManager;
+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.ConditionsTableMetaData;
 import org.hps.conditions.ConnectionManager;
 import org.hps.conditions.DatabaseConditionsConverter;
+import org.lcsim.conditions.ConditionsManager;
 
 /**
  * This class creates an {@link EcalGainCollection} from the appropriate
@@ -27,9 +30,6 @@
      */
     public EcalGainCollection getData(ConditionsManager manager, String name) {
 
-        // Collection to be returned to caller.
-        EcalGainCollection gains = new EcalGainCollection();
-
         // 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);
@@ -38,35 +38,41 @@
         // applicable conditions.
         String tableName = record.getTableName();
         String fieldName = record.getFieldName();
-        int fieldValue = record.getFieldValue();
+        int collectionId = record.getFieldValue();
+        
+        // Objects for building the return value.
+        ConditionsTableMetaData tableMetaData = _objectFactory.getTableRegistry().getTableMetaData(tableName);
+        EcalGainCollection collection = 
+                new EcalGainCollection(tableMetaData, collectionId, true); 
 
         // References to database objects.
         ConnectionManager connectionManager = getConnectionManager();
 
-        // Get the name of the current database being used.
-        String database = connectionManager.getConnectionParameters().getDatabase();
-
         // Database query on ecal gain table.
-        String query = "SELECT ecal_channel_id, gain FROM " 
+        String query = "SELECT id, ecal_channel_id, gain FROM " 
                 + tableName + " WHERE " 
-                + fieldName + " = " + fieldValue + " ORDER BY id ASC";
+                + fieldName + " = " + collectionId + " ORDER BY id ASC";
 
         // Execute the query and get the results.
         ResultSet resultSet = connectionManager.query(query);
 
         try {
             // Loop over the records.
-            while (resultSet.next()) {
-                // Create gain object from database record.
-                int channelId = resultSet.getInt(1);
-                double gain = resultSet.getDouble(2);
-                gains.put(channelId, new EcalGain(gain));
+            while (resultSet.next()) {                
+                int rowId = resultSet.getInt(1);                 
+                FieldValueMap fieldValues = new FieldValueMap();
+                fieldValues.put("ecal_channel_id", resultSet.getInt(2));
+                fieldValues.put("gain", resultSet.getDouble(3));
+                EcalGain newObject = _objectFactory.createObject(EcalGain.class, tableName, rowId, fieldValues, true);                
+                collection.add(newObject);
             }
         } catch (SQLException x) {
             throw new RuntimeException("Database error.", x);
-        } 
+        } catch (ConditionsObjectException x) {
+            throw new RuntimeException("Error converting to " + getType().getSimpleName() + " type.", x);
+        }
         
-        return gains;
+        return collection;
     }
 
     /**

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtBadChannelConverter.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannelConverter.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannelConverter.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -4,7 +4,7 @@
 import java.sql.SQLException;
 
 import org.hps.conditions.AbstractConditionsObject.FieldValueMap;
-import org.hps.conditions.ConditionsObject.ConditionsObjectException;
+import org.hps.conditions.ConditionsObjectException;
 import org.hps.conditions.ConditionsObjectFactory;
 import org.hps.conditions.ConditionsRecord;
 import org.hps.conditions.ConditionsRecordCollection;

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtCalibrationConverter.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtCalibrationConverter.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtCalibrationConverter.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -4,7 +4,7 @@
 import java.sql.SQLException;
 
 import org.hps.conditions.AbstractConditionsObject.FieldValueMap;
-import org.hps.conditions.ConditionsObject.ConditionsObjectException;
+import org.hps.conditions.ConditionsObjectException;
 import org.hps.conditions.ConditionsObjectFactory;
 import org.hps.conditions.ConditionsRecord;
 import org.hps.conditions.ConditionsTableMetaData;

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtChannelCollectionConverter.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannelCollectionConverter.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannelCollectionConverter.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -1,14 +1,13 @@
 package org.hps.conditions.svt;
 
-import static org.hps.conditions.ConditionsConstants.SVT_CHANNELS;
+import static org.hps.conditions.ConditionsTableConstants.SVT_CHANNELS;
 
 import java.sql.ResultSet;
 import java.sql.SQLException;
 
 import org.hps.conditions.AbstractConditionsObject.FieldValueMap;
-import org.hps.conditions.ConditionsObject.ConditionsObjectException;
+import org.hps.conditions.ConditionsObjectException;
 import org.hps.conditions.ConditionsObjectFactory;
-import org.hps.conditions.ConditionsTableMetaData;
 import org.hps.conditions.ConnectionManager;
 import org.hps.conditions.DatabaseConditionsConverter;
 import org.lcsim.conditions.ConditionsManager;

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtConditionsConverter.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsConverter.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsConverter.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -1,15 +1,13 @@
 package org.hps.conditions.svt;
 
-import static org.hps.conditions.ConditionsConstants.SVT_BAD_CHANNELS;
-import static org.hps.conditions.ConditionsConstants.SVT_CALIBRATIONS;
-import static org.hps.conditions.ConditionsConstants.SVT_CHANNELS;
-import static org.hps.conditions.ConditionsConstants.SVT_DAQ_MAP;
-import static org.hps.conditions.ConditionsConstants.SVT_GAINS;
-import static org.hps.conditions.ConditionsConstants.SVT_PULSE_PARAMETERS;
-import static org.hps.conditions.ConditionsConstants.SVT_TIME_SHIFTS;
+import static org.hps.conditions.ConditionsTableConstants.SVT_BAD_CHANNELS;
+import static org.hps.conditions.ConditionsTableConstants.SVT_CALIBRATIONS;
+import static org.hps.conditions.ConditionsTableConstants.SVT_CHANNELS;
+import static org.hps.conditions.ConditionsTableConstants.SVT_DAQ_MAP;
+import static org.hps.conditions.ConditionsTableConstants.SVT_GAINS;
+import static org.hps.conditions.ConditionsTableConstants.SVT_PULSE_PARAMETERS;
+import static org.hps.conditions.ConditionsTableConstants.SVT_TIME_SHIFTS;
 
-import java.util.Map.Entry;
-
 import org.hps.conditions.ConditionsObjectFactory;
 import org.hps.conditions.DatabaseConditionsConverter;
 import org.lcsim.conditions.ConditionsManager;

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtDaqMapConverter.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMapConverter.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMapConverter.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -1,15 +1,15 @@
 package org.hps.conditions.svt;
 
-import static org.hps.conditions.ConditionsConstants.SVT_DAQ_MAP;
+import static org.hps.conditions.ConditionsTableConstants.SVT_DAQ_MAP;
 
 import java.sql.ResultSet;
 import java.sql.SQLException;
 
-import org.lcsim.conditions.ConditionsManager;
 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;
 
 /**

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtGainConverter.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtGainConverter.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtGainConverter.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -4,7 +4,7 @@
 import java.sql.SQLException;
 
 import org.hps.conditions.AbstractConditionsObject.FieldValueMap;
-import org.hps.conditions.ConditionsObject.ConditionsObjectException;
+import org.hps.conditions.ConditionsObjectException;
 import org.hps.conditions.ConditionsObjectFactory;
 import org.hps.conditions.ConditionsRecord;
 import org.hps.conditions.ConditionsTableMetaData;

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtPulseParametersConverter.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtPulseParametersConverter.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtPulseParametersConverter.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -4,7 +4,7 @@
 import java.sql.SQLException;
 
 import org.hps.conditions.AbstractConditionsObject.FieldValueMap;
-import org.hps.conditions.ConditionsObject.ConditionsObjectException;
+import org.hps.conditions.ConditionsObjectException;
 import org.hps.conditions.ConditionsObjectFactory;
 import org.hps.conditions.ConditionsRecord;
 import org.hps.conditions.ConditionsTableMetaData;

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtTimeShiftConverter.java 309 -> 310
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimeShiftConverter.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimeShiftConverter.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -4,7 +4,7 @@
 import java.sql.SQLException;
 
 import org.hps.conditions.AbstractConditionsObject.FieldValueMap;
-import org.hps.conditions.ConditionsObject.ConditionsObjectException;
+import org.hps.conditions.ConditionsObjectException;
 import org.hps.conditions.ConditionsObjectFactory;
 import org.hps.conditions.ConditionsRecord;
 import org.hps.conditions.ConnectionManager;

java/trunk/conditions/src/test/java/org/hps/conditions
ConditionsDatabaseObjectTest.java 309 -> 310
--- java/trunk/conditions/src/test/java/org/hps/conditions/ConditionsDatabaseObjectTest.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/test/java/org/hps/conditions/ConditionsDatabaseObjectTest.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -7,7 +7,6 @@
 import junit.framework.TestCase;
 
 import org.hps.conditions.AbstractConditionsObject.FieldValueMap;
-import org.hps.conditions.ConditionsObject.ConditionsObjectException;
 
 /**
  * Test the basic functionality of a {@link ConditionsObject} on a dummy database.

java/trunk/conditions/src/test/java/org/hps/conditions/beam
BeamCurrentTest.java 309 -> 310
--- java/trunk/conditions/src/test/java/org/hps/conditions/beam/BeamCurrentTest.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/test/java/org/hps/conditions/beam/BeamCurrentTest.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -13,7 +13,7 @@
 import org.lcsim.util.cache.FileCache;
 import org.lcsim.util.loop.LCSimLoop;
 
-import static org.hps.conditions.ConditionsConstants.BEAM_CURRENT;
+import static org.hps.conditions.ConditionsTableConstants.BEAM_CURRENT;
 
 /**
  * This test checks the beam current values by run.
@@ -72,7 +72,8 @@
         public void process(EventHeader event) {
             if (currentRun != event.getRunNumber()) {
                 currentRun = event.getRunNumber();
-                BeamCurrent beamCurrent = ConditionsManager.defaultInstance().getCachedConditions(BeamCurrent.class, BEAM_CURRENT).getCachedData();
+                BeamCurrentCollection collection = ConditionsManager.defaultInstance().getCachedConditions(BeamCurrentCollection.class, BEAM_CURRENT).getCachedData();
+                BeamCurrent beamCurrent = collection.get(0);
                 System.out.println("Run " + event.getRunNumber() + " has integrated beam current " + beamCurrent.getIntegratedBeamCurrent() + " nC.");
                 assertEquals("Wrong beam current for run.", beamCurrentAnswerKey.get(currentRun), beamCurrent.getIntegratedBeamCurrent());
             }

java/trunk/conditions/src/test/java/org/hps/conditions/ecal
EcalConditionsConverterTest.java 309 -> 310
--- java/trunk/conditions/src/test/java/org/hps/conditions/ecal/EcalConditionsConverterTest.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/test/java/org/hps/conditions/ecal/EcalConditionsConverterTest.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -7,6 +7,10 @@
 import org.hps.conditions.ConnectionManager;
 import org.lcsim.util.loop.LCSimConditionsManagerImplementation;
 
+/**
+ * Tests that a {@link EcalConditions} objects loads without errors.
+ * @author Jeremy McCormick <[log in to unmask]>
+ */
 public class EcalConditionsConverterTest extends TestCase {
     
     /** An example detector from hps-detectors. */

java/trunk/conditions/src/test/java/org/hps/conditions/ecal
EcalConditionsLoaderTest.java 309 -> 310
--- java/trunk/conditions/src/test/java/org/hps/conditions/ecal/EcalConditionsLoaderTest.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/test/java/org/hps/conditions/ecal/EcalConditionsLoaderTest.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -13,8 +13,8 @@
 import org.hps.conditions.ConnectionManager;
 
 /**
- * This test loads ECal conditions data onto the detector and checks the results
- * for basic validity.  
+ * This test loads ECal conditions data onto the detector 
+ * and checks some of the results for basic validity.  
  * @author Jeremy McCormick <[log in to unmask]>
  */
 public class EcalConditionsLoaderTest extends TestCase {

java/trunk/conditions/src/test/java/org/hps/conditions/svt
SvtConditionsConverterTest.java 309 -> 310
--- java/trunk/conditions/src/test/java/org/hps/conditions/svt/SvtConditionsConverterTest.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/test/java/org/hps/conditions/svt/SvtConditionsConverterTest.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -9,8 +9,8 @@
 import org.hps.conditions.ConnectionManager;
 
 /**
- * This class loads and prints {@link SvtConditions}, which internally uses the  
- * {@link SvtConditionsConverter}.
+ * This test loads and prints {@link SvtConditions}, which internally uses the  
+ * {@link SvtConditionsConverter}.  It does not perform any assertions.
  * 
  * @author Jeremy McCormick <[log in to unmask]>
  */

java/trunk/conditions/src/test/java/org/hps/conditions/svt
SvtConditionsLoaderTest.java 309 -> 310
--- java/trunk/conditions/src/test/java/org/hps/conditions/svt/SvtConditionsLoaderTest.java	2014-03-18 01:08:09 UTC (rev 309)
+++ java/trunk/conditions/src/test/java/org/hps/conditions/svt/SvtConditionsLoaderTest.java	2014-03-18 01:25:21 UTC (rev 310)
@@ -13,8 +13,8 @@
 import org.hps.conditions.ConnectionManager;
 
 /**
- * This test loads conditions data onto the detector and then checks that 
- * all channels of each sensor have non-zero data values for these parameters. 
+ * This test loads {@link SvtConditions} data onto the detector and then checks that 
+ * all channels of each sensor have non-zero data values for applicable parameters. 
  * 
  * @author Jeremy McCormick <[log in to unmask]>
  */
SVNspam 0.1