in protonj2/src/main/java/org/apache/qpid/protonj2/codec/encoders/messaging/HeaderTypeEncoder.java [54:97]
public void writeElement(Header header, int index, ProtonBuffer buffer, Encoder encoder, EncoderState state) {
// When encoding ensure that values that were never set are omitted and a simple
// NULL entry is written in the slot instead (don't write defaults).
switch (index) {
case 0:
if (header.hasDurable()) {
buffer.writeByte(header.isDurable() ? EncodingCodes.BOOLEAN_TRUE : EncodingCodes.BOOLEAN_FALSE);
} else {
buffer.writeByte(EncodingCodes.NULL);
}
break;
case 1:
if (header.hasPriority()) {
encoder.writeUnsignedByte(buffer, state, header.getPriority());
} else {
buffer.writeByte(EncodingCodes.NULL);
}
break;
case 2:
if (header.hasTimeToLive()) {
encoder.writeUnsignedInteger(buffer, state, header.getTimeToLive());
} else {
buffer.writeByte(EncodingCodes.NULL);
}
break;
case 3:
if (header.hasFirstAcquirer()) {
buffer.writeByte(header.isFirstAcquirer() ? EncodingCodes.BOOLEAN_TRUE : EncodingCodes.BOOLEAN_FALSE);
} else {
buffer.writeByte(EncodingCodes.NULL);
}
break;
case 4:
if (header.hasDeliveryCount()) {
encoder.writeUnsignedInteger(buffer, state, header.getDeliveryCount());
} else {
buffer.writeByte(EncodingCodes.NULL);
}
break;
default:
throw new IllegalArgumentException("Unknown Header value index: " + index);
}
}