Author: [log in to unmask] Date: Thu Jan 1 23:20:40 2015 New Revision: 1826 Log: Handle bad channel sets with a series rather than single collection. Modified: java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalBadChannel.java java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsConverter.java java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannel.java Modified: java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalBadChannel.java ============================================================================= --- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalBadChannel.java (original) +++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalBadChannel.java Thu Jan 1 23:20:40 2015 @@ -12,7 +12,7 @@ * should not be used in reconstruction. */ @Table(names = {"ecal_bad_channels"}) -@Converter(multipleCollectionsAction = MultipleCollectionsAction.COMBINE) +@Converter(multipleCollectionsAction = MultipleCollectionsAction.LAST_UPDATED) public final class EcalBadChannel extends AbstractConditionsObject { public static class EcalBadChannelCollection extends AbstractConditionsObjectCollection<EcalBadChannel> { Modified: java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsConverter.java ============================================================================= --- java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsConverter.java (original) +++ java/trunk/conditions/src/main/java/org/hps/conditions/ecal/EcalConditionsConverter.java Thu Jan 1 23:20:40 2015 @@ -2,6 +2,8 @@ import java.util.logging.Logger; +import org.hps.conditions.api.ConditionsObjectCollection; +import org.hps.conditions.api.ConditionsSeries; import org.hps.conditions.database.DatabaseConditionsManager; import org.hps.conditions.ecal.EcalBadChannel.EcalBadChannelCollection; import org.hps.conditions.ecal.EcalCalibration.EcalCalibrationCollection; @@ -33,9 +35,9 @@ protected EcalGainCollection getEcalGainCollection(DatabaseConditionsManager manager) { return manager.getCollection(EcalGainCollection.class); } - - protected EcalBadChannelCollection getEcalBadChannelCollection(DatabaseConditionsManager manager) { - return manager.getCollection(EcalBadChannelCollection.class); + + protected ConditionsSeries<EcalBadChannel, EcalBadChannelCollection> getEcalBadChannelSeries(DatabaseConditionsManager manager) { + return manager.getConditionsSeries(EcalBadChannelCollection.class); } protected EcalCalibrationCollection getEcalCalibrationCollection(DatabaseConditionsManager manager) { @@ -72,18 +74,12 @@ conditions.getChannelConstants(channel).setGain(gain); } - // Get the ECal bad channels and add them to the conditions set - EcalBadChannelCollection badChannels = null; - try { - badChannels = getEcalBadChannelCollection(databaseConditionsManager); - } catch (RuntimeException e) { - databaseConditionsManager.getLogger().warning(e.getMessage()); - } - if (badChannels != null) { + ConditionsSeries<EcalBadChannel, EcalBadChannelCollection> badChannelSeries = + getEcalBadChannelSeries(databaseConditionsManager); + // FIXME: How to get EcalBadChannelCollection here instead for the collection type? + // API of ConditionsSeries and ConditionsSeriesConverter needs to be changed! + for (ConditionsObjectCollection<EcalBadChannel> badChannels : badChannelSeries) { for (EcalBadChannel badChannel : badChannels) { - if (badChannel == null) { - throw new RuntimeException("The badChannel points to null."); - } ChannelId channelId = new ChannelId(new int[] { badChannel.getChannelId() }); EcalChannel channel = channels.findChannel(channelId); conditions.getChannelConstants(channel).setBadChannel(true); Modified: java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannel.java ============================================================================= --- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannel.java (original) +++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtBadChannel.java Thu Jan 1 23:20:40 2015 @@ -8,7 +8,7 @@ import org.hps.conditions.database.Table; @Table(names = {"svt_bad_channels", "test_run_svt_bad_channels"}) -@Converter(multipleCollectionsAction = MultipleCollectionsAction.COMBINE) +@Converter(multipleCollectionsAction = MultipleCollectionsAction.LAST_CREATED) public final class SvtBadChannel extends AbstractConditionsObject { public static class SvtBadChannelCollection extends AbstractConditionsObjectCollection<SvtBadChannel> {