Coverage Report - org.jscsi.target.scsi.cdb.SelectReport
 
Classes in this File Line Coverage Branch Coverage Complexity
SelectReport
0%
0/10
0%
0/4
2
 
 1  
 package org.jscsi.target.scsi.cdb;
 2  
 
 3  
 
 4  
 import org.jscsi.target.scsi.lun.AddressMethod;
 5  
 
 6  
 
 7  
 /**
 8  
  * The SELECT REPORT field is a member of the {@link ReportLunsCDB} and specifies the types of logical unit addresses
 9  
  * that shall be reported.
 10  
  * <p>
 11  
  * The field is two bits long.
 12  
  * 
 13  
  * @author Andreas Ergenzinger
 14  
  */
 15  0
 public enum SelectReport {
 16  
 
 17  
     /**
 18  
      * The list shall contain the logical units accessible to the I_T nexus with the following addressing methods (see
 19  
      * SAM):
 20  
      * <ol>
 21  
      * <li>{@link AddressMethod#LOGICAL_UNIT_ADDRESSING_METHOD},</li>
 22  
      * <li>{@link AddressMethod#PERIPHERAL_DEVICE_ADDRESSING_METHOD}, and</li>
 23  
      * <li>{@link AddressMethod#FLAT_SPACE_ADDRESSING_METHOD}.</li>
 24  
      * </ol>
 25  
      * If there are no logical units, the LUN LIST LENGTH field shall be zero.
 26  
      */
 27  0
     SELECTED_ADDRESSING_METHODS((byte) 0),
 28  
     /**
 29  
      * The list shall contain only well known logical units, if any. If there are no well known logical units, the LUN
 30  
      * LIST LENGTH field shall be zero.
 31  
      */
 32  0
     WELL_KNOWN_LUNS_ONLY((byte) 1),
 33  
     /**
 34  
      * The list shall contain all logical units accessible to the I_T nexus.
 35  
      */
 36  0
     ALL((byte) 2);
 37  
     // all other values are reserved
 38  
 
 39  
     /**
 40  
      * The serialized value of this {@link SelectReport} object.
 41  
      */
 42  
     private final byte value;
 43  
 
 44  0
     private SelectReport (final byte value) {
 45  0
         this.value = value;
 46  0
     }
 47  
 
 48  
     /**
 49  
      * Returns the serialized value of this {@link SelectReport} object.
 50  
      * 
 51  
      * @return the serialized value of this {@link SelectReport} object
 52  
      */
 53  
     public byte getValue () {
 54  0
         return value;
 55  
     }
 56  
 
 57  
     /**
 58  
      * Returns the {@link SelectReport} corresponding to the passed value.
 59  
      * 
 60  
      * @param value the value of a SELECT REPORT field
 61  
      * @return the {@link SelectReport} corresponding to the passed value or <code>null</code> if none exists
 62  
      */
 63  
     public final static SelectReport getValue (byte value) {
 64  0
         if (0 <= value && value <= 2) return values()[value];
 65  0
         return null;
 66  
     }
 67  
 }