package gnu.javax.net.ssl.provider;
import gnu.javax.net.ssl.provider.Extension.Value;
import java.nio.ByteBuffer;
/**
* Extension value
* @author csm
*/
public class MaxFragmentLength extends Value
{
public static final MaxFragmentLength LEN_2_9 = new MaxFragmentLength(1, 1 << 9);
public static final MaxFragmentLength LEN_2_10 = new MaxFragmentLength(2, 1 << 10);
public static final MaxFragmentLength LEN_2_11 = new MaxFragmentLength(3, 1 << 11);
public static final MaxFragmentLength LEN_2_12 = new MaxFragmentLength(4, 1 << 12);
private final int value;
private final int length;
private MaxFragmentLength(int value, int length)
{
this.value = value;
this.length = length;
}
public ByteBuffer buffer()
{
return ByteBuffer.allocate(1).put(0, (byte) value);
}
public int length()
{
return 1;
}
public int getValue()
{
return value;
}
public int maxLength()
{
return length;
}
public String toString()
{
return toString(null);
}
public String toString(String prefix)
{
String s = "max_fragment_length = ";
if (prefix != null)
s = prefix + s;
return s + maxLength() + ";";
}
}