Coverage Report - org.jscsi.target.settings.SessionSettingsBuilderComponent
 
Classes in this File Line Coverage Branch Coverage Complexity
SessionSettingsBuilderComponent
0%
0/20
N/A
2
 
 1  
 package org.jscsi.target.settings;
 2  
 
 3  
 
 4  
 import java.util.Collection;
 5  
 
 6  
 import javax.naming.OperationNotSupportedException;
 7  
 
 8  
 import org.jscsi.target.settings.entry.Entry;
 9  
 
 10  
 
 11  
 /**
 12  
  * Instances of {@link SessionSettingsBuilderComponent} are used jointly with instances of
 13  
  * {@link ConnectionSettingsBuilderComponent} for creating {@link Settings} objects.
 14  
  * <p>
 15  
  * {@link SessionSettingsBuilderComponent} objects provide all session-wide parameters managed by the session's
 16  
  * {@link SessionSettingsNegotiator}.
 17  
  * 
 18  
  * @see Settings#Settings(ConnectionSettingsBuilderComponent, SessionSettingsBuilderComponent)
 19  
  * @author Andreas Ergenzinger
 20  
  */
 21  
 final class SessionSettingsBuilderComponent {
 22  
 
 23  
     /**
 24  
      * A serial number that allows to order {@link Settings} objects based on creation order.
 25  
      */
 26  
     long settingsId;
 27  
 
 28  
     /**
 29  
      * The <code>DataPDUInOrder</code> parameter.
 30  
      */
 31  
     Boolean dataPduInOrder;
 32  
 
 33  
     /**
 34  
      * The <code>DataSequenceInOrder</code> parameter.
 35  
      */
 36  
     Boolean dataSequenceInOrder;
 37  
 
 38  
     /**
 39  
      * The <code>DefaultTime2Retain</code> parameter.
 40  
      */
 41  
     Integer defaultTime2Retain;
 42  
 
 43  
     /**
 44  
      * The <code>DefaultTime2Wait</code> parameter.
 45  
      */
 46  
     Integer defaultTime2Wait;
 47  
 
 48  
     /**
 49  
      * The <code>ErrorRecoveryLevel</code> parameter.
 50  
      */
 51  
     Integer errorRecoveryLevel;
 52  
 
 53  
     /**
 54  
      * The <code>FirstBurstLength</code> parameter.
 55  
      */
 56  
     Integer firstBurstLength;
 57  
 
 58  
     /**
 59  
      * The <code>ImmediateData</code> parameter.
 60  
      */
 61  
     Boolean immediateData;
 62  
 
 63  
     /**
 64  
      * The <code>InitialR2T</code> parameter.
 65  
      */
 66  
     Boolean initialR2T;
 67  
 
 68  
     /**
 69  
      * The <code>InitiatorAlias</code> parameter.
 70  
      */
 71  
     String initiatorAlias;
 72  
 
 73  
     /**
 74  
      * The <code>InitiatorName</code> parameter.
 75  
      */
 76  
     String initiatorName;
 77  
 
 78  
     /**
 79  
      * The <code>MaxBurstLength</code> parameter.
 80  
      */
 81  
     Integer maxBurstLength;
 82  
 
 83  
     /**
 84  
      * The <code>MaxConnections</code> parameter.
 85  
      */
 86  
     Integer maxConnections;
 87  
 
 88  
     /**
 89  
      * The <code>MaxOutstandingR2T</code> parameter.
 90  
      */
 91  
     Integer maxOutstandingR2T;
 92  
 
 93  
     /**
 94  
      * The <code>SessionType</code> parameter.
 95  
      */
 96  
     String sessionType;
 97  
 
 98  
     /**
 99  
      * The {@link SessionSettingsBuilderComponent} constructor. The passed {@link Collection} must contain all
 100  
      * session-wide {@link Entry} objects, since the constructor will try to locate a specific {@link Entry} for each
 101  
      * member variable and copy its current value.
 102  
      * 
 103  
      * @param entries a {@link Collection} containing all session-wide {@link Entry} objects
 104  
      */
 105  0
     SessionSettingsBuilderComponent (final long settingsId, final Collection<Entry> entries) {
 106  0
         this.settingsId = settingsId;
 107  
         try {
 108  0
             dataPduInOrder = SettingsNegotiator.getEntry(TextKeyword.DATA_PDU_IN_ORDER, entries).getBooleanValue();
 109  0
             dataSequenceInOrder = SettingsNegotiator.getEntry(TextKeyword.DATA_SEQUENCE_IN_ORDER, entries).getBooleanValue();
 110  0
             defaultTime2Retain = SettingsNegotiator.getEntry(TextKeyword.DEFAULT_TIME_2_RETAIN, entries).getIntegerValue();
 111  0
             defaultTime2Wait = SettingsNegotiator.getEntry(TextKeyword.DEFAULT_TIME_2_WAIT, entries).getIntegerValue();
 112  0
             errorRecoveryLevel = SettingsNegotiator.getEntry(TextKeyword.ERROR_RECOVERY_LEVEL, entries).getIntegerValue();
 113  0
             firstBurstLength = SettingsNegotiator.getEntry(TextKeyword.FIRST_BURST_LENGTH, entries).getIntegerValue();
 114  0
             immediateData = SettingsNegotiator.getEntry(TextKeyword.IMMEDIATE_DATA, entries).getBooleanValue();
 115  0
             initialR2T = SettingsNegotiator.getEntry(TextKeyword.INITIAL_R_2_T, entries).getBooleanValue();
 116  0
             initiatorAlias = SettingsNegotiator.getEntry(TextKeyword.INITIATOR_ALIAS, entries).getStringValue();
 117  0
             initiatorName = SettingsNegotiator.getEntry(TextKeyword.INITIATOR_NAME, entries).getStringValue();
 118  0
             maxBurstLength = SettingsNegotiator.getEntry(TextKeyword.MAX_BURST_LENGTH, entries).getIntegerValue();
 119  0
             maxConnections = SettingsNegotiator.getEntry(TextKeyword.MAX_CONNECTIONS, entries).getIntegerValue();
 120  0
             maxOutstandingR2T = SettingsNegotiator.getEntry(TextKeyword.MAX_OUTSTANDING_R_2_T, entries).getIntegerValue();
 121  0
             sessionType = SettingsNegotiator.getEntry(TextKeyword.SESSION_TYPE, entries).getStringValue();
 122  0
         } catch (OperationNotSupportedException e) {
 123  0
             e.printStackTrace();
 124  0
         }
 125  0
     }
 126  
 }