Print

Print


Author: [log in to unmask]
Date: Thu Oct 23 00:47:46 2014
New Revision: 1278

Log:
Abstract class providing some of the common functionality used to define an SVT conditions object.

Added:
    java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/main/java/org/hps/conditions/svt/AbstractSvtConditions.java   (with props)

Added: java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/main/java/org/hps/conditions/svt/AbstractSvtConditions.java
 =============================================================================
--- java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/main/java/org/hps/conditions/svt/AbstractSvtConditions.java	(added)
+++ java/branches/hps_java_trunk_HPSJAVA-255/conditions/src/main/java/org/hps/conditions/svt/AbstractSvtConditions.java	Thu Oct 23 00:47:46 2014
@@ -0,0 +1,81 @@
+package org.hps.conditions.svt;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.hps.conditions.svt.SvtChannel.SvtChannelCollection;
+import org.hps.conditions.svt.SvtT0Shift.SvtT0ShiftCollection;
+
+/**
+ * Abstract class providing some of the common functionality used to define an 
+ * SVT conditions object
+ * 
+ * @author Omar Moreno <[log in to unmask]>
+ *
+ * @param <T>  SVT conditions object type
+ */
+public class AbstractSvtConditions {
+
+    protected Map<SvtChannel, ChannelConstants> channelData = new HashMap<SvtChannel, ChannelConstants>();
+    protected SvtChannelCollection channelMap = null;
+    protected SvtT0ShiftCollection t0Shifts = null;
+
+    public AbstractSvtConditions() {}
+    
+    /**
+     * Get the conditions constants for a specific channel. These will be created if they
+     * do not exist for the given channel, BUT only channels in the current channel map
+     * are allowed as an argument.
+     * 
+     * @param channel The SVT channel.
+     * @return The conditions constants for the channel.
+     * @throws IllegalArgumentException if .
+     */
+    public ChannelConstants getChannelConstants(SvtChannel channel) {
+        // This channel must come from the map.
+        if (!channelMap.getObjects().contains(channel)) {
+            System.err.println("Channel not found in map => " + channel);
+            throw new IllegalArgumentException("Channel was not found in map.");
+        }
+        // If channel has no data yet, then add it.
+        if (!channelData.containsKey(channel))
+            channelData.put(channel, new ChannelConstants());
+        return channelData.get(channel);
+    }
+
+    /**
+     * Get the {@link SvtChannelCollection} for this set of conditions.
+     * 
+     * @return The SVT channel map.
+     */
+    public SvtChannelCollection getChannelMap() {
+        return channelMap;
+    }
+    
+    /**
+     * Get the {@link SvtT0ShiftCollection}.
+     * 
+     * @return The t0 shifts by sensor.
+     */
+    public SvtT0ShiftCollection getT0Shifts() {
+        return t0Shifts;
+    }
+
+    /**
+     * Set the channel map of type {@link SvtChannelCollection}.
+     * 
+     *  @param channelMap The SVT channel map.
+     */
+    public void setChannelMap(SvtChannelCollection channelMap){
+    	this.channelMap = channelMap;
+    }
+
+    /**
+     * Set the sensor t0 shifts.
+     * 
+     * @param t0Shifts The sensor time shifts collection.
+     */
+    public void setTimeShifts(SvtT0ShiftCollection t0Shifts) {
+        this.t0Shifts = t0Shifts;
+    }
+}