public void writeElement()

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);
        }
    }