package org.jscsi.target.scsi.sense.senseDataDescriptor; import java.nio.ByteBuffer; import org.jscsi.target.scsi.sense.SenseData; import org.jscsi.target.scsi.sense.senseDataDescriptor.senseKeySpecific.SenseKeySpecificData; /** * The sense key specific sense data descriptor provides additional information * about the exception condition. The format and content of the sense-key * specific data depends on the value in the {@link SenseData#senseKey} field. * * @author Andreas Ergenzinger */ public final class SenseKeySpecificSenseDataDescriptor extends SenseDataDescriptor { /** * The byte position of the SENSE-KEY-SPECIFIC DATA field. */ private static final int SENSE_KEY_SPECIFIC_DATA_INDEX = 4; /** * Contains sense-key-specific information. */ private final SenseKeySpecificData senseKeySpecificData; /** * The constructor * * @param senseKeySpecificData * provides more detailed information */ public SenseKeySpecificSenseDataDescriptor(final SenseKeySpecificData senseKeySpecificData) { super(SenseDataDescriptorType.SENSE_KEY_SPECIFIC, 0x06);// additional // length this.senseKeySpecificData = senseKeySpecificData; } @Override protected final void serializeSpecificFields(final ByteBuffer byteBuffer, final int index) { senseKeySpecificData.serialize(byteBuffer, index + SENSE_KEY_SPECIFIC_DATA_INDEX); } }