Print

Print


Author: [log in to unmask]
Date: Sat Mar 14 11:54:01 2015
New Revision: 2441

Log:
Add a parameterized constructor and setters for the fields 'feb_id' and 'feb_hybrid_id'.  Also added a couple of methods that check if the FEB and Hybrid ID's are within a valid range.

Modified:
    java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannel.java

Modified: java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannel.java
 =============================================================================
--- java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannel.java	(original)
+++ java/trunk/conditions/src/main/java/org/hps/conditions/svt/SvtChannel.java	Sat Mar 14 11:54:01 2015
@@ -20,12 +20,38 @@
 @Converter(multipleCollectionsAction = MultipleCollectionsAction.LAST_CREATED)
 public final class SvtChannel extends AbstractSvtChannel {
 
+    /**
+     * 
+     */
+    public SvtChannel() { 
+    }
+    
+    /**
+     *  Constructor 
+     *
+     *  @param channelID : The SVT channel ID
+     *  @param febID : The Front End Board (FEB) ID (0-9)
+     *  @param febHybridID : The hybrid ID (0-3)
+     *  @param channel : The channel number (0-639)
+     */
+    public SvtChannel(int channelID, int febID, int febHybridID, int channel) { 
+        if (!this.isValidFeb(febID) 
+                || !this.isValidFebHybridID(febHybridID) 
+                || !this.isValidPhysicalChannel(channel)) { 
+            throw new RuntimeException("Invalid FEB ID, FEB hybrid ID or physical channel number is being used.");
+        }
+        this.setChannelID(channelID);
+        this.setFebID(febID);
+        this.setFebHybridID(febHybridID);
+        this.setChannel(channel);
+    }
+    
     public static class SvtChannelCollection extends AbstractSvtChannel.AbstractSvtChannelCollection<SvtChannel> {
         /**
-         * Find channels that match a DAQ pair (FEB ID, FEB Hybrid ID).
+         *  Find channels that match a DAQ pair (FEB ID, FEB Hybrid ID).
          * 
-         * @param pair : The DAQ pair consiting of a FEB ID and FEB Hybrid ID.
-         * @return The channels matching the DAQ pair or null if ?not found.
+         *  @param pair : The DAQ pair consiting of a FEB ID and FEB Hybrid ID.
+         *  @return The channels matching the DAQ pair or null if ?not found.
          */
         @Override
         public Collection<SvtChannel> find(Pair<Integer, Integer> pair) {
@@ -41,13 +67,13 @@
         }
 
         /**
-         * Get the SVT channel ID associated with a given FEB ID/Hybrid ID/physical channel.
+         *  Get the SVT channel ID associated with a given FEB ID/Hybrid ID/physical channel.
          *
-         * @param febID : The FEB ID
-         * @param febHybridID : The FEB hybrid ID
-         * @param channel : The physical channel number
-         * @return The SVT channel ID
-         * @throws {@link RuntimeException} if the channel ID can't be found
+         *  @param febID : The FEB ID
+         *  @param febHybridID : The FEB hybrid ID
+         *  @param channel : The physical channel number
+         *  @return The SVT channel ID
+         *  @throws {@link RuntimeException} if the channel ID can't be found
          */
         public int findChannelID(int febID, int febHybridID, int channel) {
             for (SvtChannel svtChannel : this) {
@@ -61,9 +87,9 @@
     }
 
     /**
-     * Get the FEB ID associated with this SVT channel ID.
+     *  Get the FEB ID associated with this SVT channel ID.
      * 
-     * @return The FEB ID.
+     *  @return The FEB ID.
      */
     @Field(names = { "feb_id" })
     public int getFebID() {
@@ -71,9 +97,9 @@
     }
 
     /**
-     * Get the FEB hybrid ID associated with this SVT channel ID.
+     *  Get the FEB hybrid ID associated with this SVT channel ID.
      * 
-     * @return The FEB hybrid ID.
+     *  @return The FEB hybrid ID.
      */
     @Field(names = { "feb_hybrid_id" })
     public int getFebHybridID() {
@@ -81,8 +107,58 @@
     }
 
     /**
-     * Implementation of equals.
-     * @return True if the object equals this one; false if not.
+     *  Set the FEB ID associated with this SVT channel ID.
+     * 
+     *  @param febID : The FEB ID
+     */
+    public void setFebID(int febID) { 
+        this.setFieldValue("feb_id", febID);
+    }
+    
+    /**
+     *  Set the FEB hybrid ID associated with this SVT channel ID.
+     * 
+     *  @param febHybridID : The FEB hybrid ID
+     */
+    public void setFebHybridID(int febHybridID) {
+        this.setFieldValue("feb_hybrid_id", febHybridID);
+    }
+    
+    /**
+     *  Checks if a FEB ID is valid
+     * 
+     *  @param febID : The Front End Board (FEB) ID
+     *  @return True if the FEB ID lies within the range 0-9, false otherwise
+     */
+    public boolean isValidFeb(int febID) { 
+        return (febID >= 0 && febID <= 9) ? true : false; 
+    }
+    
+    /**
+     *  Checks if a Front End Board hybrid ID is valid
+     *  
+     *  @param febHybridID : The hybrid ID 
+     *  @return True if the hybrid ID lies within the range 0-3, false otherwise
+     */
+    public boolean isValidFebHybridID(int febHybridID) { 
+        return (febHybridID >= 0 && febHybridID <= 3) ? true : false; 
+    }
+    
+    /**
+     *  Checks if a physical channel number is valid
+     *  
+     *  @param channel : The physical channel number
+     *  @return True if the channel number lies within the range 0-639, false 
+     *          otherwise
+     */
+    public boolean isValidPhysicalChannel(int channel) { 
+        return (channel >= 0 && channel <= 639) ? true : false; 
+    }
+    
+    /**
+     *  Implementation of equals.
+     *  
+     *  @return True if the object equals this one; false if not.
      */
     public boolean equals(Object o) {
         if (o == null)