in protonj2/src/main/java/org/apache/qpid/protonj2/codec/encoders/transport/DispositionTypeEncoder.java [73:104]
public void writeElement(Disposition disposition, int index, ProtonBuffer buffer, Encoder encoder, EncoderState state) {
if (disposition.hasElement(index)) {
switch (index) {
case 0:
buffer.writeByte(disposition.getRole().encodingCode());
break;
case 1:
writeCheckedUnsignedInteger(disposition.getFirst(), buffer);
break;
case 2:
writeCheckedUnsignedInteger(disposition.getLast(), buffer);
break;
case 3:
buffer.writeByte(disposition.getSettled() ? EncodingCodes.BOOLEAN_TRUE : EncodingCodes.BOOLEAN_FALSE);
break;
case 4:
if (disposition.getState() == Accepted.getInstance()) {
buffer.writeBytes(ACCEPTED_ENCODING);
} else {
encoder.writeObject(buffer, state, disposition.getState());
}
break;
case 5:
buffer.writeByte(disposition.getBatchable() ? EncodingCodes.BOOLEAN_TRUE : EncodingCodes.BOOLEAN_FALSE);
break;
default:
throw new IllegalArgumentException("Unknown Disposition value index: " + index);
}
} else {
buffer.writeByte(EncodingCodes.NULL);
}
}