Print

Print


Commit in java/trunk/conditions/src/main/java/org/hps/conditions on MAIN
AbstractConditionsObject.java+5-4300 -> 301
ConditionsConverterRegister.java+35-32300 -> 301
ConditionsObject.java+8-1300 -> 301
ConditionsObjectCollection.java+7-2300 -> 301
ConditionsRecordConverter.java+2-1300 -> 301
ConditionsTableRegistry.java+52-7300 -> 301
DatabaseConditionsConverter.java+4300 -> 301
DatabaseConditionsReader.java+1-4300 -> 301
beam/BeamCurrentConverter.java+4-5300 -> 301
ecal/EcalBadChannelConverter.java+5300 -> 301
    /EcalCalibrationConverter.java+7-3300 -> 301
    /EcalChannelMapConverter.java+5300 -> 301
    /EcalConditionsConverter.java+6-1300 -> 301
    /EcalConditionsLoader.java+1-1300 -> 301
    /EcalGainConverter.java+6300 -> 301
svt/ChannelConstants.java+3-3300 -> 301
   /PulseParameters.java-80300 removed
   /PulseParametersCollection.java-12300 removed
   /PulseParametersConverter.java-81300 removed
   /SvtBadChannel.java+11added 301
   /SvtBadChannelCollection.java+11-2300 -> 301
   /SvtBadChannelConverter.java+31-10300 -> 301
   /SvtCalibration.java+12-15300 -> 301
   /SvtCalibrationCollection.java+6-3300 -> 301
   /SvtCalibrationConverter.java+27-14300 -> 301
   /SvtChannel.java+12-27300 -> 301
   /SvtChannelMap.java-53300 removed
   /SvtChannelMapConverter.java-65300 removed
   /SvtConditions.java+7-7300 -> 301
   /SvtConditionsConverter.java+19-15300 -> 301
   /SvtConditionsLoader.java+1-1300 -> 301
   /SvtDaqMap.java+3-1300 -> 301
   /SvtDaqMapConverter.java+5300 -> 301
   /SvtGainConverter.java+3-1300 -> 301
   /SvtTimeShift.java+6-20300 -> 301
   /SvtTimeShiftCollection.java+9-5300 -> 301
   /SvtTimeShiftConverter.java+25-15300 -> 301
+339-491
1 added + 5 removed + 31 modified, total 37 files
More restructuring of conditions system to use new API.

java/trunk/conditions/src/main/java/org/hps/conditions
AbstractConditionsObject.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/AbstractConditionsObject.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/AbstractConditionsObject.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -24,10 +24,6 @@
      * Class that maps field names to values.
      */
     public static final class FieldValueMap extends LinkedHashMap<String, Object> {
-        //@SuppressWarnings("unchecked")
-        //public <T> T getFieldValue(String key) {
-        //    return (T)this.getFieldValue(key);
-        //}
     }      
     
     /**
@@ -212,6 +208,11 @@
     public <T> T getFieldValue(Class<T> klass, String field) {
         return klass.cast(_fieldValues.get(field));
     }
+    
+    @SuppressWarnings("unchecked")
+    public <T> T getFieldValue(String field) {
+        return (T)_fieldValues.get(field);
+    }
 
     public void setConnectionManager(ConnectionManager connectionManager) throws ConditionsObjectException {
         if (_connectionManager != null)

java/trunk/conditions/src/main/java/org/hps/conditions
ConditionsConverterRegister.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsConverterRegister.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsConverterRegister.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -6,10 +6,10 @@
 import org.hps.conditions.ecal.EcalChannelMapConverter;
 import org.hps.conditions.ecal.EcalConditionsConverter;
 import org.hps.conditions.ecal.EcalGainConverter;
-import org.hps.conditions.svt.PulseParametersConverter;
+import org.hps.conditions.svt.SvtPulseParametersConverter;
 import org.hps.conditions.svt.SvtBadChannelConverter;
 import org.hps.conditions.svt.SvtCalibrationConverter;
-import org.hps.conditions.svt.SvtChannelMapConverter;
+import org.hps.conditions.svt.SvtChannelCollectionConverter;
 import org.hps.conditions.svt.SvtConditionsConverter;
 import org.hps.conditions.svt.SvtDaqMapConverter;
 import org.hps.conditions.svt.SvtGainConverter;
@@ -37,51 +37,54 @@
                 new BasicConditionsObjectFactory(ConnectionManager.getConnectionManager(), tableRegistry);
                 
         // ConditionsRecords with validity meta data.
-        manager.registerConditionsConverter(new ConditionsRecordConverter());
+        manager.registerConditionsConverter(new ConditionsRecordConverter(factory));
+
+        // SVT combined conditions.
+        manager.registerConditionsConverter(new SvtConditionsConverter(factory));
         
-        // SVT gains.  (TESTING!!!)
-        // TODO: The factory should be a required argument for the converter classes.
-        SvtGainConverter svtGainConverter = new SvtGainConverter();
-        svtGainConverter.setObjectFactory(factory);
-        manager.registerConditionsConverter(svtGainConverter);
-                
-        // SVT channel map.
-        manager.registerConditionsConverter(new SvtChannelMapConverter());
+        // SVT gains.  
+        manager.registerConditionsConverter(new SvtGainConverter(factory));
         
-        // SVT DAQ map.
-        manager.registerConditionsConverter(new SvtDaqMapConverter());
+        // SVT pulse parameters.
+        manager.registerConditionsConverter(new SvtPulseParametersConverter(factory));
         
         // SVT calibrations.
-        manager.registerConditionsConverter(new SvtCalibrationConverter());
-                
+        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());       
-       
-        // SVT time shift by sensor.
-        manager.registerConditionsConverter(new SvtTimeShiftConverter());
+        manager.registerConditionsConverter(new SvtBadChannelConverter(factory));       
+        
+        // /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
+        // TODO: Remaining to convert to new API...
+        // /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/  
                 
-        // SVT combined conditions.
-        manager.registerConditionsConverter(new SvtConditionsConverter());
-        
         // ECAL bad channels.
-        manager.registerConditionsConverter(new EcalBadChannelConverter());
+        manager.registerConditionsConverter(new EcalBadChannelConverter(factory));
         
         // ECAL channel map.
-        manager.registerConditionsConverter(new EcalChannelMapConverter());
+        manager.registerConditionsConverter(new EcalChannelMapConverter(factory));
         
         // ECAL gains.
-        manager.registerConditionsConverter(new EcalGainConverter());
+        manager.registerConditionsConverter(new EcalGainConverter(factory));
                 
         // ECAL calibrations.
-        manager.registerConditionsConverter(new EcalCalibrationConverter());
-        
-        // ECAL pulse parameters.
-        manager.registerConditionsConverter(new PulseParametersConverter());
-        
+        manager.registerConditionsConverter(new EcalCalibrationConverter(factory));
+                        
         // ECAL combined conditions.
-        manager.registerConditionsConverter(new EcalConditionsConverter());
+        manager.registerConditionsConverter(new EcalConditionsConverter(factory));
         
         // Beam current condition.
-        manager.registerConditionsConverter(new BeamCurrentConverter());        
+        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
ConditionsObject.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsObject.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsObject.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -83,13 +83,20 @@
     void setFieldValues(FieldValueMap fieldValues);
     
     /**
-     * Get a field value, cast to the given type.
+     * Get a field value, cast to the given class.
      * @param field The field value.
      * @return The field value casted to type T.
      */
     public <T> T getFieldValue(Class<T> klass, String field);
     
     /**
+     * Get a field value with implicit return type.
+     * @param field The field's name.
+     * @return The field value cast to type.
+     */
+    public <T> T getFieldValue(String field);
+    
+    /**
      * Set the ConnectionManager of this object.
      * This cannot be reset once set.
      * @param connectionManager The ConnectionManager.

java/trunk/conditions/src/main/java/org/hps/conditions
ConditionsObjectCollection.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsObjectCollection.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsObjectCollection.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -16,6 +16,9 @@
     boolean _isDirty;
     boolean _isNew;
     
+    protected ConditionsObjectCollection() {
+    }
+    
     public ConditionsObjectCollection(ConditionsTableMetaData tableMetaData, int collectionId, boolean isReadOnly) {
         _tableMetaData = tableMetaData;
         _collectionId = collectionId;
@@ -38,9 +41,11 @@
             throw new IllegalArgumentException("Collection already contains this object.");
         }
         try {
-            object.setCollectionId(getCollectionId());
+            // Only assign a collection ID to the object if this collection has a valid ID.
+            if (getCollectionId() != -1)
+                object.setCollectionId(getCollectionId());
         } catch (ConditionsObjectException x) {
-            throw new IllegalArgumentException("The object has already been assigned to a collection.", x);
+            throw new IllegalArgumentException("Error assigning collection ID to object.", x);
         }
         objects.add(object);
         if (!isNew())

java/trunk/conditions/src/main/java/org/hps/conditions
ConditionsRecordConverter.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsRecordConverter.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsRecordConverter.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -15,7 +15,8 @@
     /**
      * Class constructor.
      */
-    public ConditionsRecordConverter() {
+    public ConditionsRecordConverter(ConditionsObjectFactory objectFactory) {
+        super(objectFactory);
     }
         
     /**

java/trunk/conditions/src/main/java/org/hps/conditions
ConditionsTableRegistry.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsTableRegistry.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ConditionsTableRegistry.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -22,12 +22,57 @@
     
     void registerDefaultTableMetaData() {
         
-        // SVT Gains (as test!!!)
-        Set<String> svtGainFields = new HashSet<String>();
-        svtGainFields.add("gain");
-        svtGainFields.add("offset");
-        ConditionsTableMetaData svtGainTable = 
-                new ConditionsTableMetaData(ConditionsConstants.SVT_GAINS, svtGainFields);
-        addTableMetaData(svtGainTable);
+        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);
+        
+        // SVT pulse parameters
+        fields = new HashSet<String>();
+        fields.add("svt_channel_id");
+        fields.add("amplitude");
+        fields.add("t0");
+        fields.add("tp");
+        fields.add("chisq");
+        tableMetaData = new ConditionsTableMetaData(ConditionsConstants.SVT_PULSE_PARAMETERS, fields);
+        addTableMetaData(tableMetaData);
+
+        // 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);
+        
+        // SVT channels
+        fields = new HashSet<String>();
+        fields.add("id"); // TODO: Change to svt_channel_id
+        fields.add("fpga");
+        fields.add("hybrid");
+        fields.add("channel");
+        tableMetaData = new ConditionsTableMetaData(ConditionsConstants.SVT_CHANNELS, fields);
+        addTableMetaData(tableMetaData);
+
+        // 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);
+        
+        // SVT bad channels
+        fields = new HashSet<String>();
+        fields.add("svt_channel_id");
+        tableMetaData = new ConditionsTableMetaData(ConditionsConstants.SVT_BAD_CHANNELS, fields);
+        addTableMetaData(tableMetaData);
+        
     }
 }

java/trunk/conditions/src/main/java/org/hps/conditions
DatabaseConditionsConverter.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsConverter.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsConverter.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -11,6 +11,10 @@
 	    
     protected ConditionsObjectFactory _objectFactory;
     
+    public DatabaseConditionsConverter(ConditionsObjectFactory objectFactory) {
+        _objectFactory = objectFactory;
+    }
+    
     /**
      * Get the the {@link ConnectionManager} associated with this converter.
      * For now, this calls the singleton method of the ConnectionManager

java/trunk/conditions/src/main/java/org/hps/conditions
DatabaseConditionsReader.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsReader.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/DatabaseConditionsReader.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -50,10 +50,7 @@
     
     /** The current run number to determine if conditions are already loaded. */
     private int currentRun = Integer.MIN_VALUE;
-    
-    /** Converter for making ConditionsRecord objects from the database. */
-    ConditionsRecordConverter conditionsRecordConverter = new ConditionsRecordConverter();
-    
+        
     /** The logger for printing messages. */
     static Logger logger = null;
 

java/trunk/conditions/src/main/java/org/hps/conditions/beam
BeamCurrentConverter.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/beam/BeamCurrentConverter.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/beam/BeamCurrentConverter.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -4,6 +4,7 @@
 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;
@@ -14,12 +15,10 @@
  */
 public class BeamCurrentConverter extends DatabaseConditionsConverter<BeamCurrent> {
     
-    /**
-     * Class constructor.
-     */
-    public BeamCurrentConverter() {
+    public BeamCurrentConverter(ConditionsObjectFactory objectFactory) {
+        super(objectFactory);
     }
-
+    
     /**
      * Get the conditions data.
      * @param manager The current conditions manager.

java/trunk/conditions/src/main/java/org/hps/conditions/ecal
EcalBadChannelConverter.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalBadChannelConverter.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalBadChannelConverter.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -5,6 +5,7 @@
 
 import org.lcsim.conditions.ConditionsManager;
 import org.hps.conditions.ChannelCollection;
+import org.hps.conditions.ConditionsObjectFactory;
 import org.hps.conditions.ConditionsRecord;
 import org.hps.conditions.ConditionsRecordCollection;
 import org.hps.conditions.ConnectionManager;
@@ -16,6 +17,10 @@
  */
 public class EcalBadChannelConverter extends DatabaseConditionsConverter<EcalBadChannelCollection> {
 
+    public EcalBadChannelConverter(ConditionsObjectFactory objectFactory) {
+        super(objectFactory);
+    }
+    
     /**
      * Create the collection from the conditions database. 
      * @param manager The conditions manager.

java/trunk/conditions/src/main/java/org/hps/conditions/ecal
EcalCalibrationConverter.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalCalibrationConverter.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalCalibrationConverter.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -1,13 +1,13 @@
 package org.hps.conditions.ecal;
 
-import java.sql.Connection;
 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;
 
 /**
  * This class creates a list of {@link EcalCalibrationCollection} from the
@@ -16,7 +16,11 @@
  * @author Jeremy McCormick <[log in to unmask]>
  */
 public class EcalCalibrationConverter extends DatabaseConditionsConverter<EcalCalibrationCollection> {
-
+    
+    public EcalCalibrationConverter(ConditionsObjectFactory objectFactory) {
+        super(objectFactory);
+    }
+    
     /**
      * Create the calibration collection from the conditions database.
      * @param manager The conditions manager.

java/trunk/conditions/src/main/java/org/hps/conditions/ecal
EcalChannelMapConverter.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalChannelMapConverter.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalChannelMapConverter.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -6,6 +6,7 @@
 import java.sql.SQLException;
 
 import org.lcsim.conditions.ConditionsManager;
+import org.hps.conditions.ConditionsObjectFactory;
 import org.hps.conditions.ConnectionManager;
 import org.hps.conditions.DatabaseConditionsConverter;
 
@@ -17,6 +18,10 @@
  */
 public class EcalChannelMapConverter extends DatabaseConditionsConverter<EcalChannelMap> {
 
+    public EcalChannelMapConverter(ConditionsObjectFactory objectFactory) {
+        super(objectFactory);
+    }
+    
     /**
      * Load the data from the conditions database.
      * @param manager The conditions manager.

java/trunk/conditions/src/main/java/org/hps/conditions/ecal
EcalConditionsConverter.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsConverter.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsConverter.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -8,6 +8,7 @@
 import java.util.Map.Entry;
 
 import org.lcsim.conditions.ConditionsManager;
+import org.hps.conditions.ConditionsObjectFactory;
 import org.hps.conditions.DatabaseConditionsConverter;
 
 /**
@@ -16,7 +17,11 @@
  * @author Jeremy McCormick <[log in to unmask]>
  */
 public class EcalConditionsConverter extends DatabaseConditionsConverter<EcalConditions> {
-       
+    
+    public EcalConditionsConverter(ConditionsObjectFactory objectFactory) {
+        super(objectFactory);
+    }
+    
     /**
      * Create ECAL conditions object containing all data for the current run.
      */

java/trunk/conditions/src/main/java/org/hps/conditions/ecal
EcalConditionsLoader.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsLoader.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsLoader.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -31,7 +31,7 @@
             crystal.reset();
             
             // Find the corresponding entry in the channel map for this crystal.
-            EcalChannel channel = channelMap.find(crystal.getX(), crystal.getY());            
+            EcalChannel channel = channelMap.find(crystal.getX(), crystal.getY());
             if (channel == null) {
                 throw new RuntimeException("EcalChannel not found for crystal: " + crystal.getName());
             }

java/trunk/conditions/src/main/java/org/hps/conditions/ecal
EcalGainConverter.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalGainConverter.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalGainConverter.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -4,6 +4,7 @@
 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;
@@ -14,6 +15,11 @@
  */
 public class EcalGainConverter extends DatabaseConditionsConverter<EcalGainCollection> {
 
+    
+    public EcalGainConverter(ConditionsObjectFactory objectFactory) {
+        super(objectFactory);
+    }
+    
     /**
      * Create the collection from the conditions database.
      * @param manager The conditions manager.

java/trunk/conditions/src/main/java/org/hps/conditions/svt
ChannelConstants.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/ChannelConstants.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/ChannelConstants.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -11,7 +11,7 @@
 
     private SvtCalibration calibration = null;
     private SvtGain gain = null;
-    private PulseParameters pulseParameters = null;
+    private SvtPulseParameters pulseParameters = null;
     private boolean badChannel = false;
 
     /**
@@ -24,7 +24,7 @@
      * Set the pulse parameters.
      * @param pulseParameters The pulse parameters
      */
-    void setPulseParameters(PulseParameters pulseParameters) {
+    void setPulseParameters(SvtPulseParameters pulseParameters) {
         this.pulseParameters = pulseParameters;
     }
     
@@ -64,7 +64,7 @@
      * Get the pulse parameters.
      * @return The pulse parameters.
      */
-    public PulseParameters getPulseParameters() {
+    public SvtPulseParameters getPulseParameters() {
         return pulseParameters;
     }
     

java/trunk/conditions/src/main/java/org/hps/conditions/svt
PulseParameters.java removed after 300
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/PulseParameters.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/PulseParameters.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -1,80 +0,0 @@
-package org.hps.conditions.svt;
-
-/**
- * This class represents the pulse parameters for an SVT channel.
- * @author Jeremy McCormick <[log in to unmask]>
- */
-public class PulseParameters {
-    
-    double amplitude = Double.NaN;
-    double t0 = Double.NaN;
-    double tp = Double.NaN;
-    double chisq = Double.NaN;
-
-    /**
-     * Full qualified class constructor.
-     * @param amplitude The amplitude.
-     * @param t0 The start time.
-     * @param tp The shaping time.
-     * @param chisq The chisq of the measurement.
-     */
-    PulseParameters(double amplitude, double t0, double tp, double chisq) {
-        this.amplitude = amplitude;
-        this.t0 = t0;
-        this.tp = tp;
-        this.chisq = chisq;
-    }
-    
-    /**
-     * Get the amplitude.
-     * @return The amplifude.
-     */
-    double getAmplitude() {
-        return amplitude;
-    }
-    
-    /**
-     * Get the starting time.
-     * @return The starting time.
-     */
-    double getT0() {
-        return t0;
-    }
-    
-    /**
-     * Get the time shift.
-     * @return The time shift.
-     */
-    double getTimeShift() {
-        return tp;
-    }
-    
-    /**
-     * Get the chisq.
-     * @return The chisq.
-     */
-    double getChisq() {
-        return chisq;
-    }
-    
-    /**
-     * Convert this object to a human readable string.
-     * @return This object converted to a string.
-     */
-    public String toString() {
-        return "amp: " + amplitude + ", t0: " + t0 + ", shift: " + tp + ", chisq: " + chisq;
-    }
-    
-    /**
-     * Convert this object to an array of doubles.
-     * @return This object converted to an array of doubles.
-     */
-    public double[] toArray() {
-        double[] values = new double[4];
-        values[0] = amplitude;
-        values[1] = t0;
-        values[2] = tp;
-        values[3] = chisq;
-        return values;
-    }
-}

java/trunk/conditions/src/main/java/org/hps/conditions/svt
PulseParametersCollection.java removed after 300
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/PulseParametersCollection.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/PulseParametersCollection.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -1,12 +0,0 @@
-package org.hps.conditions.svt;
-
-import java.util.LinkedHashMap;
-
-/**
- * A collection of {@link PulseParameters} objects stored by SVT channel ID.
- * @author Jeremy McCormick <[log in to unmask]>
- */
-public class PulseParametersCollection extends LinkedHashMap<Integer,PulseParameters> {
-    PulseParametersCollection() {        
-    }
-}

java/trunk/conditions/src/main/java/org/hps/conditions/svt
PulseParametersConverter.java removed after 300
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/PulseParametersConverter.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/PulseParametersConverter.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -1,81 +0,0 @@
-package org.hps.conditions.svt;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-import org.lcsim.conditions.ConditionsManager;
-import org.hps.conditions.ConditionsRecord;
-import org.hps.conditions.ConnectionManager;
-import org.hps.conditions.DatabaseConditionsConverter;
-
-/**
- * This class creates a {@link PulseParametersCollection} object from the
- * conditions database.
- * 
- * @author Jeremy McCormick <[log in to unmask]>
- */
-public class PulseParametersConverter extends DatabaseConditionsConverter<PulseParametersCollection> {
-
-    /**
-     * Get the pulse parameters by channel for this run by named conditions set.
-     * @param manager The current conditions manager.
-     * @param name The name of the conditions set.
-     * @return The channel constants data.
-     */
-    public PulseParametersCollection getData(ConditionsManager manager, String name) {
-
-        // Get the ConditionsRecord with the meta-data, which will use the
-        // current run number from the manager.s
-        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();
-
-        // Object for building the return value.
-        PulseParametersCollection collection = new PulseParametersCollection();
-
-        // Connection objects.
-        ConnectionManager connectionManager = getConnectionManager();
-
-        // Get the name of the current database being used.
-        String database = connectionManager.getConnectionParameters().getDatabase();
-
-        // Construct the query to find matching calibration records.
-        String query = "SELECT svt_channel_id, amplitude, t0, tp, chisq FROM " 
-                + tableName + " WHERE " 
-                + fieldName + " = " + fieldValue + " ORDER BY id ASC";
-
-        // Execute the query and get the results.
-        ResultSet resultSet = connectionManager.query(query);
-        
-        try {
-            // Loop over the calibration records.
-            while (resultSet.next()) {
-                // Create calibration object from database record.
-                int channelId = resultSet.getInt(1);
-                double amplitude = resultSet.getDouble(2);
-                double t0 = resultSet.getDouble(3);
-                double tp = resultSet.getDouble(4);
-                double chisq = resultSet.getDouble(5);
-                collection.put(channelId, new PulseParameters(amplitude, t0, tp, chisq));
-            }
-        } catch (SQLException x) {
-            throw new RuntimeException("Database error.", x);
-        }
-        
-        // Return the collection of channel constants to caller.
-        return collection;
-    }
-
-    /**
-     * Get the type handled by this converter.
-     * @return The type handled by this converter, which is <code>ConditionsRecordCollection</code>.
-     */
-    public Class<PulseParametersCollection> getType() {
-        return PulseParametersCollection.class;
-    }
-}

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtBadChannel.java added at 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannel.java	                        (rev 0)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannel.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -0,0 +1,11 @@
+package org.hps.conditions.svt;
+
+import org.hps.conditions.AbstractConditionsObject;
+
+public class SvtBadChannel extends AbstractConditionsObject {
+    
+    public int getChannelId() {
+        return getFieldValue("svt_channel_id");
+    }
+
+}

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtBadChannelCollection.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannelCollection.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannelCollection.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -1,11 +1,20 @@
 package org.hps.conditions.svt;
 
-import org.hps.conditions.ChannelCollection;
+import org.hps.conditions.ConditionsObjectCollection;
+import org.hps.conditions.ConditionsTableMetaData;
 
 /**
  * This class represents a set of bad channels in the SVT by their channel IDs
  * from the conditions database.
  * @author Jeremy McCormick <[log in to unmask]>
  */
-public class SvtBadChannelCollection extends ChannelCollection {
+public class SvtBadChannelCollection extends ConditionsObjectCollection<SvtBadChannel> {
+    
+    public SvtBadChannelCollection() {        
+    }
+    
+    public SvtBadChannelCollection(ConditionsTableMetaData tableMetaData, int collectionId, boolean isReadOnly) {
+        super(tableMetaData, collectionId, isReadOnly);
+    }
+    
 }

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtBadChannelConverter.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannelConverter.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannelConverter.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -3,11 +3,15 @@
 import java.sql.ResultSet;
 import java.sql.SQLException;
 
-import org.lcsim.conditions.ConditionsManager;
+import org.hps.conditions.AbstractConditionsObject.FieldValueMap;
+import org.hps.conditions.ConditionsObject.ConditionsObjectException;
+import org.hps.conditions.ConditionsObjectFactory;
 import org.hps.conditions.ConditionsRecord;
 import org.hps.conditions.ConditionsRecordCollection;
+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 SvtBadChannelCollection} representing bad readout channels
@@ -16,6 +20,10 @@
  */
 public class SvtBadChannelConverter extends DatabaseConditionsConverter<SvtBadChannelCollection> {
 
+    public SvtBadChannelConverter(ConditionsObjectFactory objectFactory) {
+        super(objectFactory);
+    }
+    
     /**
      * Create the collection from the conditions database. 
      * @param manager The conditions manager.
@@ -23,15 +31,16 @@
      */
     public SvtBadChannelCollection getData(ConditionsManager manager, String name) {
 
-        // Collection to be returned to caller.
-        SvtBadChannelCollection badChannels = new SvtBadChannelCollection();
-
         // Get the ConditionsRecord with the meta-data, which will use the
         // current run number from the manager.
         ConditionsRecordCollection records = ConditionsRecord.find(manager, name);
 
+        SvtBadChannelCollection collection = new SvtBadChannelCollection();
+        
         // Loop over ConditionsRecords.  For this particular type of condition, multiple
         // sets of bad channels are possible.
+        
+        // Collection to be returned to caller.
         for (ConditionsRecord record : records) {
         
             // Get the table name, field name, and field value defining the
@@ -40,23 +49,35 @@
             String fieldName = record.getFieldName();
             int fieldValue = record.getFieldValue();
 
+            ConditionsTableMetaData tableMetaData = _objectFactory.getTableRegistry().getTableMetaData(tableName);
+            
             // Query for getting back bad channel records.
-            String query = "SELECT svt_channel_id FROM " + tableName + " WHERE " 
+            String query = "SELECT id, svt_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 channelId = resultSet.getInt(1);
+                    //badChannels.add(channelId);
+                    int rowId = resultSet.getInt(1);
+                    
+                    FieldValueMap fieldValues = new FieldValueMap();
+                    fieldValues.put("svt_channel_id", resultSet.getInt(2));
+                    
+                    SvtBadChannel newObject = _objectFactory.createObject(SvtBadChannel.class, tableName, rowId, fieldValues, true);
+                    
+                    collection.add(newObject);
                 }
             } catch (SQLException x) {
-                throw new RuntimeException(x);
-            } 
+                throw new RuntimeException("Database error", x);
+            } catch (ConditionsObjectException x) {
+                throw new RuntimeException("Error converting to SvtBadChannel object.", x);
+            }
         }
                
-        return badChannels;
+        return collection;
     }
 
     /**

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtCalibration.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtCalibration.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtCalibration.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -1,30 +1,27 @@
 package org.hps.conditions.svt;
 
+import org.hps.conditions.AbstractConditionsObject;
+
 /**
  * This class represents a noise and pedestal measurement for an SVT channel.
  * @author Jeremy McCormick <[log in to unmask]>
  */
-class SvtCalibration {
-    
-    double noise = Double.NaN;
-    double pedestal = Double.NaN;
-    
+public class SvtCalibration extends AbstractConditionsObject {
+                
     /**
-     * Fully qualified constructor.
-     * @param noise The noise value.
-     * @param pedestal The pedestal value.
+     * Get the channel ID.
+     * @return The channel ID.
      */
-    SvtCalibration(double noise, double pedestal) {
-        this.noise = noise;
-        this.pedestal = pedestal;
+    public int getChannelId() {
+        return getFieldValue(Integer.class, "svt_channel_id");
     }
-        
+    
     /**
      * Get the noise value.
      * @return The noise value.
      */
     public double getNoise() {
-        return noise;
+        return getFieldValue(Double.class, "noise");
     }
     
     /**
@@ -32,7 +29,7 @@
      * @return The pedestal value.
      */
     public double getPedestal() {
-        return pedestal;
+        return getFieldValue(Double.class, "pedestal");
     }
     
     /**
@@ -40,6 +37,6 @@
      * @return This object converted to a string.
      */
     public String toString() {
-        return "noise: " + noise + ", pedestal: " + pedestal;
+        return "noise: " + getNoise() + ", pedestal: " + getPedestal();
     }
 }

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtCalibrationCollection.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtCalibrationCollection.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtCalibrationCollection.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -1,16 +1,19 @@
 package org.hps.conditions.svt;
 
-import java.util.LinkedHashMap;
+import org.hps.conditions.ConditionsObjectCollection;
+import org.hps.conditions.ConditionsTableMetaData;
 
 /**
  * This class is a collection of {@link SvtCalibration} objects associated to their 
  * SVT channel IDs from the database.
  * @author Jeremy McCormick <[log in to unmask]>
  */
-public class SvtCalibrationCollection extends LinkedHashMap<Integer,SvtCalibration> {
+public class SvtCalibrationCollection extends ConditionsObjectCollection<SvtCalibration> {
+
     /**
      * Class constructor.
      */
-    SvtCalibrationCollection() {        
+    SvtCalibrationCollection(ConditionsTableMetaData tableMetaData, int collectionId, boolean isReadOnly) {
+        super(tableMetaData, collectionId, isReadOnly);
     }
 }

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtCalibrationConverter.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtCalibrationConverter.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtCalibrationConverter.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -3,10 +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.ConditionsObject.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 a {@link SvtCalibrationCollection} from the conditions
@@ -18,7 +22,8 @@
     /**
      * Class constructor.
      */
-    public SvtCalibrationConverter() {
+    public SvtCalibrationConverter(ConditionsObjectFactory objectFactory) {
+        super(objectFactory);
     }
 
     /**
@@ -37,19 +42,21 @@
         // applicable conditions.
         String tableName = record.getTableName();
         String fieldName = record.getFieldName();
-        int fieldValue = record.getFieldValue();
+        int collectionId = record.getFieldValue();
 
         // Objects for building the return value.
-        SvtCalibrationCollection collection = new SvtCalibrationCollection();
+        ConditionsTableMetaData tableMetaData = _objectFactory.getTableRegistry().getTableMetaData(tableName);
+        SvtCalibrationCollection collection = 
+                new SvtCalibrationCollection(tableMetaData, collectionId, true); 
 
         // Get a connection from the manager.
         ConnectionManager connectionManager = getConnectionManager();
 
         // Construct the query to find matching calibration records using the ID
         // field.
-        String query = "SELECT svt_channel_id, noise, pedestal FROM " 
+        String query = "SELECT id, svt_channel_id, noise, pedestal FROM " 
                 + tableName + " WHERE " 
-                + fieldName + " = " + fieldValue + " ORDER BY svt_channel_id ASC";
+                + fieldName + " = " + collectionId + " ORDER BY svt_channel_id ASC";
 
         // Execute the query and get the results.
         ResultSet resultSet = connectionManager.query(query);
@@ -57,17 +64,23 @@
         try {
             // Loop over the calibration records.
             while (resultSet.next()) {
-
-                // Get the calibration data for a single channel.
-                int channelId = resultSet.getInt(1);
-                double noise = resultSet.getDouble(2);
-                double pedestal = resultSet.getDouble(3);
-
-                collection.put(channelId, new SvtCalibration(noise, pedestal));
+                
+                int rowId = resultSet.getInt(1);
+                
+                FieldValueMap fieldValues = new FieldValueMap();
+                fieldValues.put("svt_channel_id", resultSet.getInt(2));
+                fieldValues.put("noise", resultSet.getDouble(3));
+                fieldValues.put("pedestal", resultSet.getDouble(4));
+                SvtCalibration newObject = _objectFactory.createObject(
+                        SvtCalibration.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 SvtCalibration object");
+        }
         
         // Return the collection of channel constants to caller.
         return collection;

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtChannel.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannel.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannel.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -1,34 +1,19 @@
 package org.hps.conditions.svt;
 
+import org.hps.conditions.AbstractConditionsObject;
+
 /**
  * This class represents SVT channel setup information, including hybrid, FPGA, and channel numbers.
  * @author Jeremy McCormick <[log in to unmask]>
  */
-public class SvtChannel {
-
-    /** Channel data. */
-    private int id, hybrid, fpga, channel;
+public class SvtChannel extends AbstractConditionsObject {
     
     /**
-     * Fully qualified constructor.
-     * @param id The database record ID from the channel table.
-     * @param fpga The FPGA number (0 to 6).
-     * @param hybrid The hybrid number (0 to 2).
-     * @param channel The channel number (0 to 639).
-     */
-    SvtChannel(int id, int fpga, int hybrid, int channel) {
-        this.id = id;
-        this.fpga = fpga;
-        this.hybrid = hybrid;        
-        this.channel = channel;
-    }
-    
-    /**
      * Get the channel ID.
      * @return The channel ID.
      */
     public int getId() {
-        return id;
+        return getFieldValue("id");
     }
     
     /**
@@ -36,7 +21,7 @@
      * @return The hybrid number.
      */
     public int getHybrid() {
-        return hybrid;
+        return getFieldValue("hybrid");
     }
     
     /**
@@ -44,7 +29,7 @@
      * @return The FPGA number.
      */
     public int getFpga() {
-        return fpga;
+        return getFieldValue("fpga");
     }
     
     /**
@@ -52,7 +37,7 @@
      * @return The channel number.
      */
     public int getChannel() {
-        return channel;
+        return getFieldValue("channel");
     }    
     
     /**
@@ -60,7 +45,7 @@
      * @return This object as a string.
      */
     public String toString() {
-        return "id: " + id + ", fpga: " + fpga + ", hybrid: " + hybrid + ", channel: " + channel;
+        return "id: " + getId() + ", fpga: " + getFpga() + ", hybrid: " + getHybrid() + ", channel: " + getChannel();
     }
     
     /**
@@ -75,9 +60,9 @@
         if (o == this)
             return true;
         SvtChannel channel = (SvtChannel)o;
-        return id == channel.getId() 
-                && hybrid == channel.getHybrid() 
-                && fpga == channel.getFpga() 
-                && hybrid == channel.getHybrid();
+        return getId() == channel.getId() 
+                && getHybrid() == channel.getHybrid() 
+                && getFpga() == channel.getFpga() 
+                && getHybrid() == channel.getHybrid();
     }    
 }
\ No newline at end of file

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtChannelMap.java removed after 300
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannelMap.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannelMap.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -1,53 +0,0 @@
-package org.hps.conditions.svt;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.List;
-
-import org.lcsim.hps.util.Pair;
-
-/**
- * This class represents a map between SVT channels and their IDs from the channels table
- * in the conditions database.  It can be used to lookup information stored in the {@link SvtConditions} object.
- * @author Jeremy McCormick <[log in to unmask]>
- */
-public class SvtChannelMap extends HashMap<Integer,SvtChannel> {
-    
-    /**
-     * Constructor, which is package protected.  Users should not 
-     * create this class directly but retrieve it from the {@link SvtConditions}
-     * object instead.
-     */
-    SvtChannelMap() {
-    }
-    
-    /**
-     * Find channels that match a DAQ pair (FPGA, hybrid).
-     * @param pair The DAQ pair.
-     * @return The channels matching the DAQ pair or null if not found.
-     */
-    public Collection<SvtChannel> find(Pair<Integer,Integer> pair) {
-        List<SvtChannel> channels = new ArrayList<SvtChannel>(); 
-        int fpga = pair.getFirstElement();
-        int hybrid = pair.getSecondElement();
-        for (SvtChannel channel : values()) {
-            if (channel.getFpga() == fpga && channel.getHybrid() == hybrid) {
-                channels.add(channel);
-            }
-        }
-        return channels;
-    }
-               
-    /**
-     * Convert this object to a human readable string.
-     * @return This object converted to a string.
-     */
-    public String toString() {        
-        StringBuffer buff = new StringBuffer();
-        for (SvtChannel channel : values()) {
-            buff.append(channel.toString() + '\n');
-        }
-        return buff.toString();
-    }
-}

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtChannelMapConverter.java removed after 300
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannelMapConverter.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannelMapConverter.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -1,65 +0,0 @@
-package org.hps.conditions.svt;
-
-import static org.hps.conditions.ConditionsConstants.SVT_CHANNELS;
-
-import java.sql.ResultSet;
-import java.sql.SQLException;
-
-import org.lcsim.conditions.ConditionsManager;
-import org.hps.conditions.ConnectionManager;
-import org.hps.conditions.DatabaseConditionsConverter;
-
-/**
- * This class converts a table of SVT channel setup data into an {@link SvtChannelMap}.
- * @author Jeremy McCormick <[log in to unmask]>
- */
-public class SvtChannelMapConverter extends DatabaseConditionsConverter<SvtChannelMap> {
-
-    /**
-     * Create the channel map from the conditions database.
-     * @param manager The current conditions manager.
-     * @param name The name of the conditions set.
-     */
-    public SvtChannelMap getData(ConditionsManager manager, String name) {
-
-        // Objects for building the return value.
-        SvtChannelMap channels = new SvtChannelMap();
-
-        // Get the connection manager.
-        ConnectionManager connectionManager = getConnectionManager();
-
-        // Assign default key name for channel data if none given.
-        if (name == null)
-            name = SVT_CHANNELS;
-
-        // Construct the query to get the channel data.
-        String query = "SELECT id, fpga, hybrid, channel FROM " + name;
-
-        // Execute the query and get the results.
-        ResultSet resultSet = connectionManager.query(query);
-
-        try {
-            // Loop over records.
-            while (resultSet.next()) {
-                // Add SVT channel data for this record.
-                int id = resultSet.getInt(1);
-                int fpga = resultSet.getInt(2);
-                int hybrid = resultSet.getInt(3);
-                int channel = resultSet.getInt(4);
-                SvtChannel data = new SvtChannel(id, fpga, hybrid, channel);
-                channels.put(data.getId(), data);
-            }
-        } catch (SQLException x) {
-            throw new RuntimeException("Database error.", x);
-        } 
-        return channels;
-    }
-
-    /**
-     * Get the type handled by this converter.
-     * @return The type handled by this converter.
-     */
-    public Class<SvtChannelMap> getType() {
-        return SvtChannelMap.class;
-    }
-}

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtConditions.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditions.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditions.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -15,7 +15,7 @@
     
     /** SVT conditions data. */
     private Map<SvtChannel, ChannelConstants> channelData = new HashMap<SvtChannel, ChannelConstants>();
-    private SvtChannelMap channelMap = null;
+    private SvtChannelCollection channelMap = null;
     private SvtDaqMap daqMap = null;
     private SvtTimeShiftCollection timeShifts = null;
     
@@ -23,7 +23,7 @@
      * Class constructor, which takes a channel map.
      * @param channelMap The SVT channel map.
      */
-    SvtConditions(SvtChannelMap channelMap) {
+    SvtConditions(SvtChannelCollection channelMap) {
         this.channelMap = channelMap;
     }     
         
@@ -37,7 +37,7 @@
      */
     public ChannelConstants getChannelConstants(SvtChannel channel) {
         // This channel must come from the map.
-        if (!channelMap.containsValue(channel)) {
+        if (!channelMap.getObjects().contains(channel)) {
             System.err.println("Channel not found in map => " + channel);
             throw new IllegalArgumentException("Channel was not found in map.");
         }
@@ -48,10 +48,10 @@
     }         
         
     /**
-     * Get the {@link SvtChannelMap} for this set of conditions.
+     * Get the {@link SvtChannelCollection} for this set of conditions.
      * @return The SVT channel map.
      */
-    public SvtChannelMap getChannelMap() {
+    public SvtChannelCollection getChannelMap() {
         return channelMap;
     }
     
@@ -133,12 +133,12 @@
         }        
         buff.append('\n');
         // Loop over channels.
-        for (SvtChannel channel : channelMap.values()) {
+        for (SvtChannel channel : channelMap.getObjects()) {
             
             // Get the conditions for the channel.
             ChannelConstants constants = getChannelConstants(channel);
             SvtGain gain = constants.getGain();
-            PulseParameters pulse = constants.getPulseParameters();
+            SvtPulseParameters pulse = constants.getPulseParameters();
             SvtCalibration calibration = constants.getCalibration();
             
             // Channel data.

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtConditionsConverter.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsConverter.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsConverter.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -10,7 +10,7 @@
 
 import java.util.Map.Entry;
 
-import org.hps.conditions.ConditionsObject;
+import org.hps.conditions.ConditionsObjectFactory;
 import org.hps.conditions.DatabaseConditionsConverter;
 import org.lcsim.conditions.ConditionsManager;
 
@@ -19,7 +19,11 @@
  * based on the current run number known by the conditions manager.
  */
 public class SvtConditionsConverter extends DatabaseConditionsConverter<SvtConditions> {
-                     
+      
+    public SvtConditionsConverter(ConditionsObjectFactory objectFactory) {
+        super(objectFactory);
+    }
+    
     /**
      * Create and return the SVT conditions object.  
      * @param manager The current conditions manager.
@@ -28,7 +32,7 @@
     public SvtConditions getData(ConditionsManager manager, String name) {
                         
         // Get the SVT channel map.
-        SvtChannelMap channels = manager.getCachedConditions(SvtChannelMap.class, SVT_CHANNELS).getCachedData();
+        SvtChannelCollection channels = manager.getCachedConditions(SvtChannelCollection.class, SVT_CHANNELS).getCachedData();
         
         // Create the conditions object.
         SvtConditions conditions = new SvtConditions(channels);
@@ -39,22 +43,22 @@
                                                
         // Add calibrations by channel.
         SvtCalibrationCollection calibrations = manager.getCachedConditions(SvtCalibrationCollection.class, SVT_CALIBRATIONS).getCachedData();
-        for (Entry<Integer,SvtCalibration> entry : calibrations.entrySet()) {
-            SvtChannel channel = conditions.getChannelMap().get(entry.getKey());
-            conditions.getChannelConstants(channel).setCalibration(entry.getValue());
-        }  
+        for (SvtCalibration calibration : calibrations.getObjects()) {
+            SvtChannel channel = conditions.getChannelMap().findChannel(calibration.getChannelId());
+            conditions.getChannelConstants(channel).setCalibration(calibration);
+        }
         
         // Add pulse parameters by channel.
-        PulseParametersCollection pulseParameters = manager.getCachedConditions(PulseParametersCollection.class, SVT_PULSE_PARAMETERS).getCachedData();
-        for (Entry<Integer,PulseParameters> entry : pulseParameters.entrySet()) {
-            SvtChannel channel = conditions.getChannelMap().get(entry.getKey());
-            conditions.getChannelConstants(channel).setPulseParameters(entry.getValue());
+        SvtPulseParametersCollection pulseParametersCollection = manager.getCachedConditions(SvtPulseParametersCollection.class, SVT_PULSE_PARAMETERS).getCachedData();
+        for (SvtPulseParameters pulseParameters : pulseParametersCollection.getObjects()) {
+            SvtChannel channel = conditions.getChannelMap().findChannel(pulseParameters.getChannelId());
+            conditions.getChannelConstants(channel).setPulseParameters(pulseParameters);
         }
         
         // Add bad channels.
         SvtBadChannelCollection badChannels = manager.getCachedConditions(SvtBadChannelCollection.class, SVT_BAD_CHANNELS).getCachedData();        
-        for (Integer badChannel : badChannels) {
-            SvtChannel channel = conditions.getChannelMap().get(badChannel);
+        for (SvtBadChannel badChannel : badChannels.getObjects()) {
+            SvtChannel channel = conditions.getChannelMap().findChannel(badChannel.getChannelId());
             conditions.getChannelConstants(channel).setBadChannel(true);
         }
         
@@ -62,7 +66,7 @@
         SvtGainCollection gains = manager.getCachedConditions(SvtGainCollection.class, SVT_GAINS).getCachedData();
         for (SvtGain object : gains.getObjects()) {
             int channelId = object.getChannelID();
-            SvtChannel channel = conditions.getChannelMap().get(channelId);            
+            SvtChannel channel = conditions.getChannelMap().findChannel(channelId);            
             conditions.getChannelConstants(channel).setGain(object);
         }
         
@@ -80,4 +84,4 @@
     public Class<SvtConditions> getType() {
         return SvtConditions.class;
     }    
-}
+}
\ No newline at end of file

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtConditionsLoader.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsLoader.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtConditionsLoader.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -23,7 +23,7 @@
         
         // Find sensor objects.        
         List<HpsSiSensor> sensors = detector.getDetectorElement().findDescendants(HpsSiSensor.class);
-        SvtChannelMap channelMap = conditions.getChannelMap();
+        SvtChannelCollection channelMap = conditions.getChannelMap();
         SvtDaqMap daqMap = conditions.getDaqMap();
         SvtTimeShiftCollection timeShifts = conditions.getTimeShifts();
         

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtDaqMap.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMap.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMap.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -12,6 +12,8 @@
  */
 public class SvtDaqMap {
 
+    // fields: half, layer, fpga, hybrid
+    
     /**
      * Flag values for top or bottom half.
      * FIXME: This should probably be an enum but it is simpler to use int values for now.  
@@ -90,4 +92,4 @@
         }        
         return buff.toString();
     }    
-}
+}
\ No newline at end of file

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtDaqMapConverter.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMapConverter.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtDaqMapConverter.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -6,6 +6,7 @@
 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;
@@ -17,6 +18,10 @@
  */
 public class SvtDaqMapConverter extends DatabaseConditionsConverter<SvtDaqMap> {
 
+    public SvtDaqMapConverter(ConditionsObjectFactory objectFactory) {
+        super(objectFactory);
+    }
+    
     /**
      * Create an {@link SvtDaqMap} object from the database.
      */

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtGainConverter.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtGainConverter.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtGainConverter.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -5,6 +5,7 @@
 
 import org.hps.conditions.AbstractConditionsObject.FieldValueMap;
 import org.hps.conditions.ConditionsObject.ConditionsObjectException;
+import org.hps.conditions.ConditionsObjectFactory;
 import org.hps.conditions.ConditionsRecord;
 import org.hps.conditions.ConditionsTableMetaData;
 import org.hps.conditions.ConnectionManager;
@@ -20,7 +21,8 @@
     /**
      * Class constructor.
      */
-    public SvtGainConverter() {
+    public SvtGainConverter(ConditionsObjectFactory objectFactory) {
+        super(objectFactory);
     }
 
     /**

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtTimeShift.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimeShift.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimeShift.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -1,34 +1,20 @@
 package org.hps.conditions.svt;
 
+import org.hps.conditions.AbstractConditionsObject;
+
 /**
  * This class is a data holder for associating a time shift with a specific sensor
  * by FPGA and hybrid numbers.
  * @author Jeremy McCormick <[log in to unmask]>
  */
-public class SvtTimeShift {
+public class SvtTimeShift extends AbstractConditionsObject {
     
-    int fpga;
-    int hybrid;
-    double timeShift;
-    
     /**
-     * Fully qualified constructor.
-     * @param fpga The FPGA number.
-     * @param hybrid The hybrid number.
-     * @param timeShift The time shift.
-     */
-    SvtTimeShift(int fpga, int hybrid, double timeShift) {
-        this.fpga = fpga;
-        this.hybrid = hybrid;
-        this.timeShift = timeShift;
-    }
-    
-    /**
      * Get the FPGA number.
      * @return The FPGA number.
      */
     int getFpga() {
-        return fpga;
+        return getFieldValue("fpga");
     }
     
     /**
@@ -36,7 +22,7 @@
      * @return The hybrid number.
      */
     int getHybrid() {
-        return hybrid;
+        return getFieldValue("hybrid");
     }
     
     /**
@@ -44,6 +30,6 @@
      * @return The time shift.
      */
     double getTimeShift() {
-        return timeShift;
+        return getFieldValue("time_shift");
     }
 }

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtTimeShiftCollection.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimeShiftCollection.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimeShiftCollection.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -1,20 +1,24 @@
 package org.hps.conditions.svt;
 
-import java.util.ArrayList;
-
+import org.hps.conditions.ConditionsObjectCollection;
+import org.hps.conditions.ConditionsTableMetaData;
 import org.lcsim.hps.util.Pair;
 
 /**
  * A simple collection of {@link SvtTimeShift} objects.
  * @author Jeremy McCormick <[log in to unmask]>
  */
-public class SvtTimeShiftCollection extends ArrayList<SvtTimeShift> {
+public class SvtTimeShiftCollection extends ConditionsObjectCollection<SvtTimeShift> {
 
+    SvtTimeShiftCollection(ConditionsTableMetaData tableMetaData, int collectionId, boolean isReadOnly) {
+        super(tableMetaData, collectionId, isReadOnly);
+    }
+    
     SvtTimeShiftCollection find(Pair<Integer,Integer> pair) {
-        SvtTimeShiftCollection timeShifts = new SvtTimeShiftCollection();
+        SvtTimeShiftCollection timeShifts = new SvtTimeShiftCollection(this.getTableMetaData(), -1, false);
         int fpga = pair.getFirstElement();
         int hybrid = pair.getSecondElement();
-        for (SvtTimeShift timeShift : this) {
+        for (SvtTimeShift timeShift : getObjects()) {
             if (timeShift.getFpga() == fpga && timeShift.getHybrid() == hybrid) {
                 timeShifts.add(timeShift);
             }

java/trunk/conditions/src/main/java/org/hps/conditions/svt
SvtTimeShiftConverter.java 300 -> 301
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimeShiftConverter.java	2014-03-14 19:52:03 UTC (rev 300)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtTimeShiftConverter.java	2014-03-14 23:53:48 UTC (rev 301)
@@ -3,10 +3,13 @@
 import java.sql.ResultSet;
 import java.sql.SQLException;
 
-import org.lcsim.conditions.ConditionsManager;
+import org.hps.conditions.AbstractConditionsObject.FieldValueMap;
+import org.hps.conditions.ConditionsObject.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 SvtGainCollection} from the conditions database.
@@ -14,12 +17,10 @@
  */
 public class SvtTimeShiftConverter extends DatabaseConditionsConverter<SvtTimeShiftCollection> {
     
-    /**
-     * Class constructor.
-     */
-    public SvtTimeShiftConverter() {
+    public SvtTimeShiftConverter(ConditionsObjectFactory objectFactory) {
+        super(objectFactory);
     }
-
+    
     /**
      * Get the SVT channel constants for this run by named set.
      * @param manager The current conditions manager.
@@ -34,17 +35,19 @@
         // 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 that will be returned. 
-        SvtTimeShiftCollection collection = new SvtTimeShiftCollection();
+        SvtTimeShiftCollection collection = 
+                new SvtTimeShiftCollection(_objectFactory.getTableRegistry().getTableMetaData(tableName), 
+                        collectionId, true);
         
         // Get the connection manager.
         ConnectionManager connectionManager = ConnectionManager.getConnectionManager();
                                                                                             
         // Construct the query to find matching records.
-        String query = "SELECT fpga, hybrid, time_shift FROM "
-                + tableName + " WHERE " + fieldName + " = " + fieldValue;
+        String query = "SELECT id, fpga, hybrid, time_shift FROM "
+                + tableName + " WHERE " + fieldName + " = " + collectionId;
             
         // Execute the query and get the results.
         ResultSet resultSet = connectionManager.query(query);
@@ -52,14 +55,21 @@
         try {
             // Loop over the records.            
             while(resultSet.next()) {                                 
-                // Create the object with the sensor time shift.
-                int fpga = resultSet.getInt(1);
-                int hybrid = resultSet.getInt(2);
-                double timeShift = resultSet.getDouble(3);
-                collection.add(new SvtTimeShift(fpga, hybrid, timeShift));
+                int rowId = resultSet.getInt(1);
+
+                FieldValueMap fieldValues = new FieldValueMap();
+                fieldValues.put("fpga", resultSet.getInt(2));
+                fieldValues.put("hybrid", resultSet.getInt(3));
+                fieldValues.put("time_shift", resultSet.getInt(4));
+                
+                SvtTimeShift newObject = _objectFactory.createObject(SvtTimeShift.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 SvtTimeShift object.", x);
         }
         
         // Return collection to caller.
SVNspam 0.1