package org.jscsi.target.settings;
import org.jscsi.target.settings.entry.Entry;
/**
* {@link NegotiationStatus} objects specifies the necessity, progress, and
* outcome of the parameter negotiation managed by {@link Entry} instances.
* <p>
* The only legal transitions of an {@link Entry} object's {@link NegotiationStatus} are from
* {@link #NOT_NEGOTIATED} or {@link #DEFAULT} to {@link #ACCEPTED} or {@link #REJECTED}. A status of
* {@link #IRRELEVANT} must never change.
*
* @author Andreas Ergenzinger
*/
public enum NegotiationStatus {
/**
* The parameter has not been negotiated/declared, yet.
*/
NOT_NEGOTIATED,
/**
* The parameter has not been negotiated/exchanged, yet. This exchange is
* optional.
*/
DEFAULT,
/**
* The parameter has been declared or negotiated and accepted by both sides.
*/
ACCEPTED,
/**
* Attempts to negotiate the parameter have failed.
*/
REJECTED,
/**
* The parameter is irrelevant.
*/
IRRELEVANT;
}