This is an automated email from the ASF dual-hosted git repository. tabish pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/qpid-protonj2.git
commit 1a08ddf46c40305d8a810214678b603e04cac5aa Author: Timothy Bish <[email protected]> AuthorDate: Wed Mar 25 15:29:24 2026 -0400 PROTON-2925 Clean up some code using new switch expressions Cleans up some encoder code that uses switches with newer expression syntax also cleans up some other bits of switch code and enhances the decoder API with additional readUnsignedInteger with default to clean up some cases. --- .../protonj2/client/impl/ClientRemoteSource.java | 18 +-- .../qpid/protonj2/test/driver/AMQPTestDriver.java | 4 +- .../org/apache/qpid/protonj2/codec/Decoder.java | 19 ++++ .../apache/qpid/protonj2/codec/StreamDecoder.java | 19 ++++ .../protonj2/codec/decoders/ProtonDecoder.java | 22 +++- .../codec/decoders/ProtonStreamDecoder.java | 22 +++- .../decoders/messaging/HeaderTypeDecoder.java | 40 ++----- .../decoders/messaging/ModifiedTypeDecoder.java | 28 +---- .../decoders/messaging/PropertiesTypeDecoder.java | 104 +++++------------ .../decoders/messaging/ReceivedTypeDecoder.java | 16 +-- .../decoders/messaging/RejectedTypeDecoder.java | 8 +- .../decoders/messaging/SourceTypeDecoder.java | 92 ++++----------- .../decoders/messaging/TargetTypeDecoder.java | 60 +++------- .../codec/decoders/primitives/ByteTypeDecoder.java | 1 - .../decoders/primitives/Decimal128TypeDecoder.java | 1 - .../decoders/primitives/Decimal32TypeDecoder.java | 1 - .../decoders/primitives/DoubleTypeDecoder.java | 1 - .../decoders/primitives/Integer32TypeDecoder.java | 1 - .../decoders/security/SaslInitTypeDecoder.java | 24 +--- .../decoders/security/SaslOutcomeTypeDecoder.java | 16 +-- .../transactions/DischargeTypeDecoder.java | 16 +-- .../transactions/TransactionStateTypeDecoder.java | 16 +-- .../decoders/transport/AttachTypeDecoder.java | 125 ++++++--------------- .../codec/decoders/transport/BeginTypeDecoder.java | 77 ++++--------- .../decoders/transport/DetachTypeDecoder.java | 24 +--- .../decoders/transport/DispositionTypeDecoder.java | 48 ++------ .../transport/ErrorConditionTypeDecoder.java | 24 +--- .../codec/decoders/transport/FlowTypeDecoder.java | 101 +++++------------ .../codec/decoders/transport/OpenTypeDecoder.java | 80 ++++--------- .../decoders/transport/TransferTypeDecoder.java | 88 ++++----------- .../protonj2/codec/decoders/ProtonDecoderTest.java | 21 ++++ .../codec/decoders/ProtonStreamDecoderTest.java | 23 ++++ 32 files changed, 388 insertions(+), 752 deletions(-) diff --git a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/impl/ClientRemoteSource.java b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/impl/ClientRemoteSource.java index 91a378b7..39336c96 100644 --- a/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/impl/ClientRemoteSource.java +++ b/protonj2-client/src/main/java/org/apache/qpid/protonj2/client/impl/ClientRemoteSource.java @@ -78,15 +78,15 @@ final class ClientRemoteSource implements Source { public ExpiryPolicy expiryPolicy() { if (remoteSource.getExpiryPolicy() != null) { switch (remoteSource.getExpiryPolicy()) { - case LINK_DETACH: - return ExpiryPolicy.LINK_CLOSE; - case SESSION_END: - return ExpiryPolicy.SESSION_CLOSE; - case CONNECTION_CLOSE: - return ExpiryPolicy.CONNECTION_CLOSE; - case NEVER: - return ExpiryPolicy.NEVER; - } + case LINK_DETACH: + return ExpiryPolicy.LINK_CLOSE; + case SESSION_END: + return ExpiryPolicy.SESSION_CLOSE; + case CONNECTION_CLOSE: + return ExpiryPolicy.CONNECTION_CLOSE; + case NEVER: + return ExpiryPolicy.NEVER; + } } return ExpiryPolicy.SESSION_CLOSE; diff --git a/protonj2-test-driver/src/main/java/org/apache/qpid/protonj2/test/driver/AMQPTestDriver.java b/protonj2-test-driver/src/main/java/org/apache/qpid/protonj2/test/driver/AMQPTestDriver.java index e67d0290..8bc2c8b0 100644 --- a/protonj2-test-driver/src/main/java/org/apache/qpid/protonj2/test/driver/AMQPTestDriver.java +++ b/protonj2-test-driver/src/main/java/org/apache/qpid/protonj2/test/driver/AMQPTestDriver.java @@ -620,8 +620,8 @@ public class AMQPTestDriver implements Consumer<ByteBuffer> { public void sendAMQPFrame(int channel, DescribedType performative, ByteBuffer payload, boolean splitWrite) { LOG.trace("{} Sending performative: {}", driverName, performative); - if (performative instanceof PerformativeDescribedType) { - switch (((PerformativeDescribedType) performative).getPerformativeType()) { + if (performative instanceof PerformativeDescribedType describedType) { + switch (describedType.getPerformativeType()) { case OPEN: localOpen = (Open) performative; default: diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/Decoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/Decoder.java index 137a082e..fbafdd8d 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/Decoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/Decoder.java @@ -402,6 +402,25 @@ public interface Decoder { */ UnsignedInteger readUnsignedInteger(ProtonBuffer buffer, DecoderState state) throws DecodeException; + /** + * Reads an encoded {@link UnsignedInteger} value from the given {@link ProtonBuffer} assuming that the + * next value in the byte stream is that type. The operation fails if the next encoded type is + * not what was expected. If the caller wishes to recover from failed decode attempt they should + * make a note of the current read position and reset the input to make a further read attempt. + * + * @param buffer + * The {@link ProtonBuffer} where the read operation takes place. + * @param state + * The {@link DecoderState} that the decoder can use when decoding. + * @param defaultValue + * A default value to return if the next encoded value is a Null encoding. + * + * @return the value read from the provided byte source. + * + * @throws DecodeException if the value fails to decode is not of the expected type, + */ + UnsignedInteger readUnsignedInteger(ProtonBuffer buffer, DecoderState state, UnsignedInteger defaultValue) throws DecodeException; + /** * Reads an encoded {@link UnsignedInteger} value from the given {@link ProtonBuffer} assuming that the * next value in the byte stream is that type. The operation fails if the next encoded type is diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/StreamDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/StreamDecoder.java index 15b70a83..512f6a48 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/StreamDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/StreamDecoder.java @@ -406,6 +406,25 @@ public interface StreamDecoder { */ UnsignedInteger readUnsignedInteger(InputStream stream, StreamDecoderState state) throws DecodeException; + /** + * Reads an encoded {@link UnsignedInteger} value from the given {@link InputStream} assuming that the + * next value in the byte stream is that type. The operation fails if the next encoded type is + * not what was expected. If the caller wishes to recover from failed decode attempt they should + * make a note of the current read position and reset the input to make a further read attempt. + * + * @param stream + * The {@link InputStream} where the read operation takes place. + * @param state + * The {@link DecoderState} that the decoder can use when decoding. + * @param defaultValue + * A default value to return if the next encoded value is a Null encoding. + * + * @return the value read from the provided byte source. + * + * @throws DecodeException if the value fails to decode is not of the expected type, + */ + UnsignedInteger readUnsignedInteger(InputStream stream, StreamDecoderState state, UnsignedInteger defaultValue) throws DecodeException; + /** * Reads an encoded {@link UnsignedInteger} value from the given {@link InputStream} assuming that the * next value in the byte stream is that type. The operation fails if the next encoded type is diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/ProtonDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/ProtonDecoder.java index 912b3247..30c3e420 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/ProtonDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/ProtonDecoder.java @@ -579,6 +579,24 @@ public final class ProtonDecoder implements Decoder { } } + @Override + public UnsignedInteger readUnsignedInteger(ProtonBuffer buffer, DecoderState state, UnsignedInteger defaultValue) throws DecodeException { + final byte encodingCode = readEncodingCode(buffer); + + switch (encodingCode) { + case EncodingCodes.UINT0: + return UnsignedInteger.ZERO; + case EncodingCodes.SMALLUINT: + return UnsignedInteger.valueOf((buffer.readByte()) & 0xff); + case EncodingCodes.UINT: + return UnsignedInteger.valueOf((buffer.readInt())); + case EncodingCodes.NULL: + return defaultValue; + default: + throw new DecodeException("Expected Unsigned Integer type but found encoding: " + EncodingCodes.toString(encodingCode)); + } + } + @Override public int readUnsignedInteger(ProtonBuffer buffer, DecoderState state, int defaultValue) throws DecodeException { final byte encodingCode = readEncodingCode(buffer); @@ -927,7 +945,7 @@ public final class ProtonDecoder implements Decoder { } private TypeDecoder<?> handleUnknownDescribedType(final Object descriptor) { - TypeDecoder<?> typeDecoder = new UnknownDescribedTypeDecoder() { + final UnknownDescribedTypeDecoder typeDecoder = new UnknownDescribedTypeDecoder() { @Override public Object getDescriptor() { @@ -935,7 +953,7 @@ public final class ProtonDecoder implements Decoder { } }; - describedTypeDecoders.put(descriptor, (UnknownDescribedTypeDecoder) typeDecoder); + describedTypeDecoders.put(descriptor, typeDecoder); return typeDecoder; } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/ProtonStreamDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/ProtonStreamDecoder.java index 8e595aec..c94e4889 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/ProtonStreamDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/ProtonStreamDecoder.java @@ -603,6 +603,24 @@ public final class ProtonStreamDecoder implements StreamDecoder { } } + @Override + public UnsignedInteger readUnsignedInteger(InputStream stream, StreamDecoderState state, UnsignedInteger defaultValue) throws DecodeException { + final byte encodingCode = ProtonStreamUtils.readEncodingCode(stream); + + switch (encodingCode) { + case EncodingCodes.UINT0: + return UnsignedInteger.ZERO; + case EncodingCodes.SMALLUINT: + return UnsignedInteger.valueOf(ProtonStreamUtils.readByte(stream) & 0xff); + case EncodingCodes.UINT: + return UnsignedInteger.valueOf(ProtonStreamUtils.readInt(stream)); + case EncodingCodes.NULL: + return defaultValue; + default: + throw new DecodeException("Expected Unsigned Integer type but found encoding: " + EncodingCodes.toString(encodingCode)); + } + } + @Override public int readUnsignedInteger(InputStream stream, StreamDecoderState state, int defaultValue) throws DecodeException { final byte encodingCode = ProtonStreamUtils.readEncodingCode(stream); @@ -943,7 +961,7 @@ public final class ProtonStreamDecoder implements StreamDecoder { } private StreamTypeDecoder<?> handleUnknownDescribedType(final Object descriptor) { - StreamTypeDecoder<?> streamTypeDecoder = new UnknownDescribedTypeDecoder() { + final UnknownDescribedTypeDecoder streamTypeDecoder = new UnknownDescribedTypeDecoder() { @Override public Object getDescriptor() { @@ -951,7 +969,7 @@ public final class ProtonStreamDecoder implements StreamDecoder { } }; - describedTypeDecoders.put(descriptor, (UnknownDescribedTypeDecoder) streamTypeDecoder); + describedTypeDecoders.put(descriptor, streamTypeDecoder); return streamTypeDecoder; } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/HeaderTypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/HeaderTypeDecoder.java index 49a84999..4682aa52 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/HeaderTypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/HeaderTypeDecoder.java @@ -101,21 +101,11 @@ public final class HeaderTypeDecoder extends AbstractDescribedListTypeDecoder<He } switch (index) { - case 0: - header.setDurable(state.getDecoder().readBoolean(buffer, state, false)); - break; - case 1: - header.setPriority(state.getDecoder().readUnsignedByte(buffer, state, Header.DEFAULT_PRIORITY)); - break; - case 2: - header.setTimeToLive(state.getDecoder().readUnsignedInteger(buffer, state, 0l)); - break; - case 3: - header.setFirstAcquirer(state.getDecoder().readBoolean(buffer, state, false)); - break; - case 4: - header.setDeliveryCount(state.getDecoder().readUnsignedInteger(buffer, state, 0l)); - break; + case 0 -> header.setDurable(state.getDecoder().readBoolean(buffer, state, false)); + case 1 -> header.setPriority(state.getDecoder().readUnsignedByte(buffer, state, Header.DEFAULT_PRIORITY)); + case 2 -> header.setTimeToLive(state.getDecoder().readUnsignedInteger(buffer, state, 0l)); + case 3 -> header.setFirstAcquirer(state.getDecoder().readBoolean(buffer, state, false)); + case 4 -> header.setDeliveryCount(state.getDecoder().readUnsignedInteger(buffer, state, 0l)); } } @@ -172,21 +162,11 @@ public final class HeaderTypeDecoder extends AbstractDescribedListTypeDecoder<He } switch (index) { - case 0: - header.setDurable(state.getDecoder().readBoolean(stream, state, false)); - break; - case 1: - header.setPriority(state.getDecoder().readUnsignedByte(stream, state, Header.DEFAULT_PRIORITY)); - break; - case 2: - header.setTimeToLive(state.getDecoder().readUnsignedInteger(stream, state, 0l)); - break; - case 3: - header.setFirstAcquirer(state.getDecoder().readBoolean(stream, state, false)); - break; - case 4: - header.setDeliveryCount(state.getDecoder().readUnsignedInteger(stream, state, 0l)); - break; + case 0 -> header.setDurable(state.getDecoder().readBoolean(stream, state, false)); + case 1 -> header.setPriority(state.getDecoder().readUnsignedByte(stream, state, Header.DEFAULT_PRIORITY)); + case 2 -> header.setTimeToLive(state.getDecoder().readUnsignedInteger(stream, state, 0l)); + case 3 -> header.setFirstAcquirer(state.getDecoder().readBoolean(stream, state, false)); + case 4 -> header.setDeliveryCount(state.getDecoder().readUnsignedInteger(stream, state, 0l)); } } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/ModifiedTypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/ModifiedTypeDecoder.java index d5a2fcc0..bff22f94 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/ModifiedTypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/ModifiedTypeDecoder.java @@ -90,17 +90,9 @@ public final class ModifiedTypeDecoder extends AbstractDescribedListTypeDecoder< for (int index = 0; index < count; ++index) { switch (index) { - case 0: - modified.setDeliveryFailed(state.getDecoder().readBoolean(buffer, state, false)); - break; - case 1: - modified.setUndeliverableHere(state.getDecoder().readBoolean(buffer, state, false)); - break; - case 2: - modified.setMessageAnnotations(state.getDecoder().readMap(buffer, state)); - break; - default: - throw new DecodeException("To many entries in Modified encoding"); + case 0 -> modified.setDeliveryFailed(state.getDecoder().readBoolean(buffer, state, false)); + case 1 -> modified.setUndeliverableHere(state.getDecoder().readBoolean(buffer, state, false)); + case 2 -> modified.setMessageAnnotations(state.getDecoder().readMap(buffer, state)); } } @@ -146,17 +138,9 @@ public final class ModifiedTypeDecoder extends AbstractDescribedListTypeDecoder< for (int index = 0; index < count; ++index) { switch (index) { - case 0: - modified.setDeliveryFailed(state.getDecoder().readBoolean(stream, state, false)); - break; - case 1: - modified.setUndeliverableHere(state.getDecoder().readBoolean(stream, state, false)); - break; - case 2: - modified.setMessageAnnotations(state.getDecoder().readMap(stream, state)); - break; - default: - throw new DecodeException("To many entries in Modified encoding"); + case 0 -> modified.setDeliveryFailed(state.getDecoder().readBoolean(stream, state, false)); + case 1 -> modified.setUndeliverableHere(state.getDecoder().readBoolean(stream, state, false)); + case 2 -> modified.setMessageAnnotations(state.getDecoder().readMap(stream, state)); } } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/PropertiesTypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/PropertiesTypeDecoder.java index 63517014..e846d304 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/PropertiesTypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/PropertiesTypeDecoder.java @@ -101,45 +101,19 @@ public final class PropertiesTypeDecoder extends AbstractDescribedListTypeDecode } switch (index) { - case 0: - properties.setMessageId(state.getDecoder().readObject(buffer, state)); - break; - case 1: - properties.setUserId(state.getDecoder().readBinary(buffer, state)); - break; - case 2: - properties.setTo(state.getDecoder().readString(buffer, state)); - break; - case 3: - properties.setSubject(state.getDecoder().readString(buffer, state)); - break; - case 4: - properties.setReplyTo(state.getDecoder().readString(buffer, state)); - break; - case 5: - properties.setCorrelationId(state.getDecoder().readObject(buffer, state)); - break; - case 6: - properties.setContentType(state.getDecoder().readSymbol(buffer, state, null)); - break; - case 7: - properties.setContentEncoding(state.getDecoder().readSymbol(buffer, state, null)); - break; - case 8: - properties.setAbsoluteExpiryTime(state.getDecoder().readTimestamp(buffer, state, 0l)); - break; - case 9: - properties.setCreationTime(state.getDecoder().readTimestamp(buffer, state, 0l)); - break; - case 10: - properties.setGroupId(state.getDecoder().readString(buffer, state)); - break; - case 11: - properties.setGroupSequence(state.getDecoder().readUnsignedInteger(buffer, state, 0l)); - break; - case 12: - properties.setReplyToGroupId(state.getDecoder().readString(buffer, state)); - break; + case 0 -> properties.setMessageId(state.getDecoder().readObject(buffer, state)); + case 1 -> properties.setUserId(state.getDecoder().readBinary(buffer, state)); + case 2 -> properties.setTo(state.getDecoder().readString(buffer, state)); + case 3 -> properties.setSubject(state.getDecoder().readString(buffer, state)); + case 4 -> properties.setReplyTo(state.getDecoder().readString(buffer, state)); + case 5 -> properties.setCorrelationId(state.getDecoder().readObject(buffer, state)); + case 6 -> properties.setContentType(state.getDecoder().readSymbol(buffer, state, null)); + case 7 -> properties.setContentEncoding(state.getDecoder().readSymbol(buffer, state, null)); + case 8 -> properties.setAbsoluteExpiryTime(state.getDecoder().readTimestamp(buffer, state, 0l)); + case 9 -> properties.setCreationTime(state.getDecoder().readTimestamp(buffer, state, 0l)); + case 10 -> properties.setGroupId(state.getDecoder().readString(buffer, state)); + case 11 -> properties.setGroupSequence(state.getDecoder().readUnsignedInteger(buffer, state, 0l)); + case 12 -> properties.setReplyToGroupId(state.getDecoder().readString(buffer, state)); } } @@ -196,45 +170,19 @@ public final class PropertiesTypeDecoder extends AbstractDescribedListTypeDecode } switch (index) { - case 0: - properties.setMessageId(state.getDecoder().readObject(stream, state)); - break; - case 1: - properties.setUserId(state.getDecoder().readBinary(stream, state)); - break; - case 2: - properties.setTo(state.getDecoder().readString(stream, state)); - break; - case 3: - properties.setSubject(state.getDecoder().readString(stream, state)); - break; - case 4: - properties.setReplyTo(state.getDecoder().readString(stream, state)); - break; - case 5: - properties.setCorrelationId(state.getDecoder().readObject(stream, state)); - break; - case 6: - properties.setContentType(state.getDecoder().readSymbol(stream, state, null)); - break; - case 7: - properties.setContentEncoding(state.getDecoder().readSymbol(stream, state, null)); - break; - case 8: - properties.setAbsoluteExpiryTime(state.getDecoder().readTimestamp(stream, state, 0l)); - break; - case 9: - properties.setCreationTime(state.getDecoder().readTimestamp(stream, state, 0l)); - break; - case 10: - properties.setGroupId(state.getDecoder().readString(stream, state)); - break; - case 11: - properties.setGroupSequence(state.getDecoder().readUnsignedInteger(stream, state, 0l)); - break; - case 12: - properties.setReplyToGroupId(state.getDecoder().readString(stream, state)); - break; + case 0 -> properties.setMessageId(state.getDecoder().readObject(stream, state)); + case 1 -> properties.setUserId(state.getDecoder().readBinary(stream, state)); + case 2 -> properties.setTo(state.getDecoder().readString(stream, state)); + case 3 -> properties.setSubject(state.getDecoder().readString(stream, state)); + case 4 -> properties.setReplyTo(state.getDecoder().readString(stream, state)); + case 5 -> properties.setCorrelationId(state.getDecoder().readObject(stream, state)); + case 6 -> properties.setContentType(state.getDecoder().readSymbol(stream, state, null)); + case 7 -> properties.setContentEncoding(state.getDecoder().readSymbol(stream, state, null)); + case 8 -> properties.setAbsoluteExpiryTime(state.getDecoder().readTimestamp(stream, state, 0l)); + case 9 -> properties.setCreationTime(state.getDecoder().readTimestamp(stream, state, 0l)); + case 10 -> properties.setGroupId(state.getDecoder().readString(stream, state)); + case 11 -> properties.setGroupSequence(state.getDecoder().readUnsignedInteger(stream, state, 0l)); + case 12 -> properties.setReplyToGroupId(state.getDecoder().readString(stream, state)); } } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/ReceivedTypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/ReceivedTypeDecoder.java index e2f277ff..6983ff17 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/ReceivedTypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/ReceivedTypeDecoder.java @@ -85,12 +85,8 @@ public final class ReceivedTypeDecoder extends AbstractDescribedListTypeDecoder< for (int index = 0; index < count; ++index) { switch (index) { - case 0: - received.setSectionNumber(state.getDecoder().readUnsignedInteger(buffer, state)); - break; - case 1: - received.setSectionOffset(state.getDecoder().readUnsignedLong(buffer, state)); - break; + case 0 -> received.setSectionNumber(state.getDecoder().readUnsignedInteger(buffer, state)); + case 1 -> received.setSectionOffset(state.getDecoder().readUnsignedLong(buffer, state)); } } @@ -130,12 +126,8 @@ public final class ReceivedTypeDecoder extends AbstractDescribedListTypeDecoder< for (int index = 0; index < count; ++index) { switch (index) { - case 0: - received.setSectionNumber(state.getDecoder().readUnsignedInteger(stream, state)); - break; - case 1: - received.setSectionOffset(state.getDecoder().readUnsignedLong(stream, state)); - break; + case 0 -> received.setSectionNumber(state.getDecoder().readUnsignedInteger(stream, state)); + case 1 -> received.setSectionOffset(state.getDecoder().readUnsignedLong(stream, state)); } } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/RejectedTypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/RejectedTypeDecoder.java index 56908ec3..1ba976e9 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/RejectedTypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/RejectedTypeDecoder.java @@ -93,9 +93,7 @@ public final class RejectedTypeDecoder extends AbstractDescribedListTypeDecoder< for (int index = 0; index < count; ++index) { switch (index) { - case 0: - rejected.setError(state.getDecoder().readObject(buffer, state, ErrorCondition.class)); - break; + case 0 -> rejected.setError(state.getDecoder().readObject(buffer, state, ErrorCondition.class)); } } @@ -139,9 +137,7 @@ public final class RejectedTypeDecoder extends AbstractDescribedListTypeDecoder< for (int index = 0; index < count; ++index) { switch (index) { - case 0: - rejected.setError(state.getDecoder().readObject(stream, state, ErrorCondition.class)); - break; + case 0 -> rejected.setError(state.getDecoder().readObject(stream, state, ErrorCondition.class)); } } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/SourceTypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/SourceTypeDecoder.java index c3dd55c7..9eece464 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/SourceTypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/SourceTypeDecoder.java @@ -93,42 +93,20 @@ public final class SourceTypeDecoder extends AbstractDescribedListTypeDecoder<So for (int index = 0; index < count; ++index) { switch (index) { - case 0: - source.setAddress(state.getDecoder().readString(buffer, state)); - break; - case 1: - final long durability = state.getDecoder().readUnsignedInteger(buffer, state, 0); - source.setDurable(TerminusDurability.valueOf(durability)); - break; - case 2: + case 0 -> source.setAddress(state.getDecoder().readString(buffer, state)); + case 1 -> source.setDurable(TerminusDurability.valueOf(state.getDecoder().readUnsignedInteger(buffer, state, 0))); + case 2 -> { final Symbol expiryPolicy = state.getDecoder().readSymbol(buffer, state); source.setExpiryPolicy(expiryPolicy == null ? TerminusExpiryPolicy.SESSION_END : TerminusExpiryPolicy.valueOf(expiryPolicy)); - break; - case 3: - final UnsignedInteger timeout = state.getDecoder().readUnsignedInteger(buffer, state); - source.setTimeout(timeout == null ? UnsignedInteger.ZERO : timeout); - break; - case 4: - source.setDynamic(state.getDecoder().readBoolean(buffer, state, false)); - break; - case 5: - source.setDynamicNodeProperties(state.getDecoder().readMap(buffer, state)); - break; - case 6: - source.setDistributionMode(state.getDecoder().readSymbol(buffer, state)); - break; - case 7: - source.setFilter(state.getDecoder().readMap(buffer, state)); - break; - case 8: - source.setDefaultOutcome(state.getDecoder().readObject(buffer, state, Outcome.class)); - break; - case 9: - source.setOutcomes(state.getDecoder().readMultiple(buffer, state, Symbol.class)); - break; - case 10: - source.setCapabilities(state.getDecoder().readMultiple(buffer, state, Symbol.class)); - break; + } + case 3 -> source.setTimeout(state.getDecoder().readUnsignedInteger(buffer, state, UnsignedInteger.ZERO)); + case 4 -> source.setDynamic(state.getDecoder().readBoolean(buffer, state, false)); + case 5 -> source.setDynamicNodeProperties(state.getDecoder().readMap(buffer, state)); + case 6 -> source.setDistributionMode(state.getDecoder().readSymbol(buffer, state)); + case 7 -> source.setFilter(state.getDecoder().readMap(buffer, state)); + case 8 -> source.setDefaultOutcome(state.getDecoder().readObject(buffer, state, Outcome.class)); + case 9 -> source.setOutcomes(state.getDecoder().readMultiple(buffer, state, Symbol.class)); + case 10 -> source.setCapabilities(state.getDecoder().readMultiple(buffer, state, Symbol.class)); } } @@ -171,42 +149,20 @@ public final class SourceTypeDecoder extends AbstractDescribedListTypeDecoder<So for (int index = 0; index < count; ++index) { switch (index) { - case 0: - source.setAddress(state.getDecoder().readString(stream, state)); - break; - case 1: - final long durability = state.getDecoder().readUnsignedInteger(stream, state, 0); - source.setDurable(TerminusDurability.valueOf(durability)); - break; - case 2: + case 0 -> source.setAddress(state.getDecoder().readString(stream, state)); + case 1 -> source.setDurable(TerminusDurability.valueOf(state.getDecoder().readUnsignedInteger(stream, state, 0))); + case 2 -> { final Symbol expiryPolicy = state.getDecoder().readSymbol(stream, state); source.setExpiryPolicy(expiryPolicy == null ? TerminusExpiryPolicy.SESSION_END : TerminusExpiryPolicy.valueOf(expiryPolicy)); - break; - case 3: - final UnsignedInteger timeout = state.getDecoder().readUnsignedInteger(stream, state); - source.setTimeout(timeout == null ? UnsignedInteger.ZERO : timeout); - break; - case 4: - source.setDynamic(state.getDecoder().readBoolean(stream, state, false)); - break; - case 5: - source.setDynamicNodeProperties(state.getDecoder().readMap(stream, state)); - break; - case 6: - source.setDistributionMode(state.getDecoder().readSymbol(stream, state)); - break; - case 7: - source.setFilter(state.getDecoder().readMap(stream, state)); - break; - case 8: - source.setDefaultOutcome(state.getDecoder().readObject(stream, state, Outcome.class)); - break; - case 9: - source.setOutcomes(state.getDecoder().readMultiple(stream, state, Symbol.class)); - break; - case 10: - source.setCapabilities(state.getDecoder().readMultiple(stream, state, Symbol.class)); - break; + } + case 3 -> source.setTimeout(state.getDecoder().readUnsignedInteger(stream, state, UnsignedInteger.ZERO)); + case 4 -> source.setDynamic(state.getDecoder().readBoolean(stream, state, false)); + case 5 -> source.setDynamicNodeProperties(state.getDecoder().readMap(stream, state)); + case 6 -> source.setDistributionMode(state.getDecoder().readSymbol(stream, state)); + case 7 -> source.setFilter(state.getDecoder().readMap(stream, state)); + case 8 -> source.setDefaultOutcome(state.getDecoder().readObject(stream, state, Outcome.class)); + case 9 -> source.setOutcomes(state.getDecoder().readMultiple(stream, state, Symbol.class)); + case 10 -> source.setCapabilities(state.getDecoder().readMultiple(stream, state, Symbol.class)); } } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/TargetTypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/TargetTypeDecoder.java index fabd61ce..e3f5bb81 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/TargetTypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/messaging/TargetTypeDecoder.java @@ -92,30 +92,16 @@ public final class TargetTypeDecoder extends AbstractDescribedListTypeDecoder<Ta for (int index = 0; index < count; ++index) { switch (index) { - case 0: - target.setAddress(state.getDecoder().readString(buffer, state)); - break; - case 1: - final long durability = state.getDecoder().readUnsignedInteger(buffer, state, 0); - target.setDurable(TerminusDurability.valueOf(durability)); - break; - case 2: + case 0 -> target.setAddress(state.getDecoder().readString(buffer, state)); + case 1 -> target.setDurable(TerminusDurability.valueOf(state.getDecoder().readUnsignedInteger(buffer, state, 0))); + case 2 -> { final Symbol expiryPolicy = state.getDecoder().readSymbol(buffer, state); target.setExpiryPolicy(expiryPolicy == null ? TerminusExpiryPolicy.SESSION_END : TerminusExpiryPolicy.valueOf(expiryPolicy)); - break; - case 3: - final UnsignedInteger timeout = state.getDecoder().readUnsignedInteger(buffer, state); - target.setTimeout(timeout == null ? UnsignedInteger.ZERO : timeout); - break; - case 4: - target.setDynamic(state.getDecoder().readBoolean(buffer, state, false)); - break; - case 5: - target.setDynamicNodeProperties(state.getDecoder().readMap(buffer, state)); - break; - case 6: - target.setCapabilities(state.getDecoder().readMultiple(buffer, state, Symbol.class)); - break; + } + case 3 -> target.setTimeout(state.getDecoder().readUnsignedInteger(buffer, state, UnsignedInteger.ZERO)); + case 4 -> target.setDynamic(state.getDecoder().readBoolean(buffer, state, false)); + case 5 -> target.setDynamicNodeProperties(state.getDecoder().readMap(buffer, state)); + case 6 -> target.setCapabilities(state.getDecoder().readMultiple(buffer, state, Symbol.class)); } } @@ -158,30 +144,16 @@ public final class TargetTypeDecoder extends AbstractDescribedListTypeDecoder<Ta for (int index = 0; index < count; ++index) { switch (index) { - case 0: - target.setAddress(state.getDecoder().readString(stream, state)); - break; - case 1: - final long durability = state.getDecoder().readUnsignedInteger(stream, state, 0); - target.setDurable(TerminusDurability.valueOf(durability)); - break; - case 2: + case 0 -> target.setAddress(state.getDecoder().readString(stream, state)); + case 1 -> target.setDurable(TerminusDurability.valueOf(state.getDecoder().readUnsignedInteger(stream, state, 0))); + case 2 -> { final Symbol expiryPolicy = state.getDecoder().readSymbol(stream, state); target.setExpiryPolicy(expiryPolicy == null ? TerminusExpiryPolicy.SESSION_END : TerminusExpiryPolicy.valueOf(expiryPolicy)); - break; - case 3: - final UnsignedInteger timeout = state.getDecoder().readUnsignedInteger(stream, state); - target.setTimeout(timeout == null ? UnsignedInteger.ZERO : timeout); - break; - case 4: - target.setDynamic(state.getDecoder().readBoolean(stream, state, false)); - break; - case 5: - target.setDynamicNodeProperties(state.getDecoder().readMap(stream, state)); - break; - case 6: - target.setCapabilities(state.getDecoder().readMultiple(stream, state, Symbol.class)); - break; + } + case 3 -> target.setTimeout(state.getDecoder().readUnsignedInteger(stream, state, UnsignedInteger.ZERO)); + case 4 -> target.setDynamic(state.getDecoder().readBoolean(stream, state, false)); + case 5 -> target.setDynamicNodeProperties(state.getDecoder().readMap(stream, state)); + case 6 -> target.setCapabilities(state.getDecoder().readMultiple(stream, state, Symbol.class)); } } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/primitives/ByteTypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/primitives/ByteTypeDecoder.java index 0ebd56b8..2218e86b 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/primitives/ByteTypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/primitives/ByteTypeDecoder.java @@ -107,5 +107,4 @@ public final class ByteTypeDecoder extends AbstractPrimitiveTypeDecoder<Byte> { public int readSize(InputStream stream, StreamDecoderState state) { return Byte.BYTES; } - } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/primitives/Decimal128TypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/primitives/Decimal128TypeDecoder.java index 9b72b0d3..05e35023 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/primitives/Decimal128TypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/primitives/Decimal128TypeDecoder.java @@ -77,5 +77,4 @@ public final class Decimal128TypeDecoder extends AbstractPrimitiveTypeDecoder<De public int readSize(InputStream stream, StreamDecoderState state) { return Decimal128.BYTES; } - } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/primitives/Decimal32TypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/primitives/Decimal32TypeDecoder.java index c46f1f74..d94d78e6 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/primitives/Decimal32TypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/primitives/Decimal32TypeDecoder.java @@ -71,5 +71,4 @@ public final class Decimal32TypeDecoder extends AbstractPrimitiveTypeDecoder<Dec public int readSize(InputStream stream, StreamDecoderState state) { return Decimal32.BYTES; } - } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/primitives/DoubleTypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/primitives/DoubleTypeDecoder.java index 2238386b..fbb7dff4 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/primitives/DoubleTypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/primitives/DoubleTypeDecoder.java @@ -107,5 +107,4 @@ public final class DoubleTypeDecoder extends AbstractPrimitiveTypeDecoder<Double public int readSize(InputStream stream, StreamDecoderState state) { return Double.BYTES; } - } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/primitives/Integer32TypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/primitives/Integer32TypeDecoder.java index 4ecc4e5a..44c2af07 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/primitives/Integer32TypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/primitives/Integer32TypeDecoder.java @@ -107,5 +107,4 @@ public final class Integer32TypeDecoder extends AbstractPrimitiveTypeDecoder<Int public int readSize(InputStream stream, StreamDecoderState state) { return Integer.BYTES; } - } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/security/SaslInitTypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/security/SaslInitTypeDecoder.java index 3b93710d..b21c6b78 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/security/SaslInitTypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/security/SaslInitTypeDecoder.java @@ -90,15 +90,9 @@ public final class SaslInitTypeDecoder extends AbstractDescribedListTypeDecoder< for (int index = 0; index < count; ++index) { switch (index) { - case 0: - init.setMechanism(state.getDecoder().readSymbol(buffer, state)); - break; - case 1: - init.setInitialResponse(state.getDecoder().readBinaryAsBuffer(buffer, state)); - break; - case 2: - init.setHostname(state.getDecoder().readString(buffer, state)); - break; + case 0 -> init.setMechanism(state.getDecoder().readSymbol(buffer, state)); + case 1 -> init.setInitialResponse(state.getDecoder().readBinaryAsBuffer(buffer, state)); + case 2 -> init.setHostname(state.getDecoder().readString(buffer, state)); } } @@ -142,15 +136,9 @@ public final class SaslInitTypeDecoder extends AbstractDescribedListTypeDecoder< for (int index = 0; index < count; ++index) { switch (index) { - case 0: - init.setMechanism(state.getDecoder().readSymbol(stream, state)); - break; - case 1: - init.setInitialResponse(state.getDecoder().readBinaryAsBuffer(stream, state)); - break; - case 2: - init.setHostname(state.getDecoder().readString(stream, state)); - break; + case 0 -> init.setMechanism(state.getDecoder().readSymbol(stream, state)); + case 1 -> init.setInitialResponse(state.getDecoder().readBinaryAsBuffer(stream, state)); + case 2 -> init.setHostname(state.getDecoder().readString(stream, state)); } } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/security/SaslOutcomeTypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/security/SaslOutcomeTypeDecoder.java index 388deb95..af3f82cd 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/security/SaslOutcomeTypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/security/SaslOutcomeTypeDecoder.java @@ -91,12 +91,8 @@ public final class SaslOutcomeTypeDecoder extends AbstractDescribedListTypeDecod for (int index = 0; index < count; ++index) { switch (index) { - case 0: - outcome.setCode(SaslCode.valueOf(state.getDecoder().readUnsignedByte(buffer, state))); - break; - case 1: - outcome.setAdditionalData(state.getDecoder().readBinaryAsBuffer(buffer, state)); - break; + case 0 -> outcome.setCode(SaslCode.valueOf(state.getDecoder().readUnsignedByte(buffer, state))); + case 1 -> outcome.setAdditionalData(state.getDecoder().readBinaryAsBuffer(buffer, state)); } } @@ -140,12 +136,8 @@ public final class SaslOutcomeTypeDecoder extends AbstractDescribedListTypeDecod for (int index = 0; index < count; ++index) { switch (index) { - case 0: - outcome.setCode(SaslCode.valueOf(state.getDecoder().readUnsignedByte(stream, state))); - break; - case 1: - outcome.setAdditionalData(state.getDecoder().readBinaryAsBuffer(stream, state)); - break; + case 0 -> outcome.setCode(SaslCode.valueOf(state.getDecoder().readUnsignedByte(stream, state))); + case 1 -> outcome.setAdditionalData(state.getDecoder().readBinaryAsBuffer(stream, state)); } } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transactions/DischargeTypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transactions/DischargeTypeDecoder.java index f48c5a51..749dcf10 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transactions/DischargeTypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transactions/DischargeTypeDecoder.java @@ -90,12 +90,8 @@ public final class DischargeTypeDecoder extends AbstractDescribedListTypeDecoder for (int index = 0; index < count; ++index) { switch (index) { - case 0: - discharge.setTxnId(state.getDecoder().readBinary(buffer, state)); - break; - case 1: - discharge.setFail(state.getDecoder().readBoolean(buffer, state, false)); - break; + case 0 -> discharge.setTxnId(state.getDecoder().readBinary(buffer, state)); + case 1 -> discharge.setFail(state.getDecoder().readBoolean(buffer, state, false)); } } @@ -139,12 +135,8 @@ public final class DischargeTypeDecoder extends AbstractDescribedListTypeDecoder for (int index = 0; index < count; ++index) { switch (index) { - case 0: - discharge.setTxnId(state.getDecoder().readBinary(stream, state)); - break; - case 1: - discharge.setFail(state.getDecoder().readBoolean(stream, state, false)); - break; + case 0 -> discharge.setTxnId(state.getDecoder().readBinary(stream, state)); + case 1 -> discharge.setFail(state.getDecoder().readBoolean(stream, state, false)); } } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transactions/TransactionStateTypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transactions/TransactionStateTypeDecoder.java index d53874e2..6ee7bf35 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transactions/TransactionStateTypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transactions/TransactionStateTypeDecoder.java @@ -91,12 +91,8 @@ public final class TransactionStateTypeDecoder extends AbstractDescribedListType for (int index = 0; index < count; ++index) { switch (index) { - case 0: - transactionalState.setTxnId(state.getDecoder().readBinary(buffer, state)); - break; - case 1: - transactionalState.setOutcome((Outcome) state.getDecoder().readObject(buffer, state)); - break; + case 0 -> transactionalState.setTxnId(state.getDecoder().readBinary(buffer, state)); + case 1 -> transactionalState.setOutcome((Outcome) state.getDecoder().readObject(buffer, state)); } } @@ -140,12 +136,8 @@ public final class TransactionStateTypeDecoder extends AbstractDescribedListType for (int index = 0; index < count; ++index) { switch (index) { - case 0: - transactionalState.setTxnId(state.getDecoder().readBinary(stream, state)); - break; - case 1: - transactionalState.setOutcome((Outcome) state.getDecoder().readObject(stream, state)); - break; + case 0 -> transactionalState.setTxnId(state.getDecoder().readBinary(stream, state)); + case 1 -> transactionalState.setOutcome((Outcome) state.getDecoder().readObject(stream, state)); } } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/AttachTypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/AttachTypeDecoder.java index c1ce9d30..f466fb73 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/AttachTypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/AttachTypeDecoder.java @@ -111,48 +111,20 @@ public final class AttachTypeDecoder extends AbstractDescribedListTypeDecoder<At } switch (index) { - case 0: - attach.setName(decoder.readString(buffer, state)); - break; - case 1: - attach.setHandle(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 2: - attach.setRole(decoder.readBoolean(buffer, state, false) ? Role.RECEIVER : Role.SENDER); - break; - case 3: - attach.setSenderSettleMode(SenderSettleMode.valueOf(decoder.readUnsignedByte(buffer, state, (byte) 2))); - break; - case 4: - attach.setReceiverSettleMode(ReceiverSettleMode.valueOf(decoder.readUnsignedByte(buffer, state, (byte) 0))); - break; - case 5: - attach.setSource(decoder.readObject(buffer, state, Source.class)); - break; - case 6: - attach.setTarget(decoder.readObject(buffer, state, Terminus.class)); - break; - case 7: - attach.setUnsettled(decoder.readMap(buffer, state)); - break; - case 8: - attach.setIncompleteUnsettled(decoder.readBoolean(buffer, state, true)); - break; - case 9: - attach.setInitialDeliveryCount(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 10: - attach.setMaxMessageSize(decoder.readUnsignedLong(buffer, state)); - break; - case 11: - attach.setOfferedCapabilities(decoder.readMultiple(buffer, state, Symbol.class)); - break; - case 12: - attach.setDesiredCapabilities(decoder.readMultiple(buffer, state, Symbol.class)); - break; - case 13: - attach.setProperties(decoder.readMap(buffer, state)); - break; + case 0 -> attach.setName(decoder.readString(buffer, state)); + case 1 -> attach.setHandle(decoder.readUnsignedInteger(buffer, state, 0l)); + case 2 -> attach.setRole(decoder.readBoolean(buffer, state, false) ? Role.RECEIVER : Role.SENDER); + case 3 -> attach.setSenderSettleMode(SenderSettleMode.valueOf(decoder.readUnsignedByte(buffer, state, (byte) 2))); + case 4 -> attach.setReceiverSettleMode(ReceiverSettleMode.valueOf(decoder.readUnsignedByte(buffer, state, (byte) 0))); + case 5 -> attach.setSource(decoder.readObject(buffer, state, Source.class)); + case 6 -> attach.setTarget(decoder.readObject(buffer, state, Terminus.class)); + case 7 -> attach.setUnsettled(decoder.readMap(buffer, state)); + case 8 -> attach.setIncompleteUnsettled(decoder.readBoolean(buffer, state, true)); + case 9 -> attach.setInitialDeliveryCount(decoder.readUnsignedInteger(buffer, state, 0l)); + case 10 -> attach.setMaxMessageSize(decoder.readUnsignedLong(buffer, state)); + case 11 -> attach.setOfferedCapabilities(decoder.readMultiple(buffer, state, Symbol.class)); + case 12 -> attach.setDesiredCapabilities(decoder.readMultiple(buffer, state, Symbol.class)); + case 13 -> attach.setProperties(decoder.readMap(buffer, state)); } } @@ -213,48 +185,20 @@ public final class AttachTypeDecoder extends AbstractDescribedListTypeDecoder<At } switch (index) { - case 0: - attach.setName(decoder.readString(stream, state)); - break; - case 1: - attach.setHandle(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 2: - attach.setRole(decoder.readBoolean(stream, state, false) ? Role.RECEIVER : Role.SENDER); - break; - case 3: - attach.setSenderSettleMode(SenderSettleMode.valueOf(decoder.readUnsignedByte(stream, state, (byte) 2))); - break; - case 4: - attach.setReceiverSettleMode(ReceiverSettleMode.valueOf(decoder.readUnsignedByte(stream, state, (byte) 0))); - break; - case 5: - attach.setSource(decoder.readObject(stream, state, Source.class)); - break; - case 6: - attach.setTarget(decoder.readObject(stream, state, Terminus.class)); - break; - case 7: - attach.setUnsettled(decoder.readMap(stream, state)); - break; - case 8: - attach.setIncompleteUnsettled(decoder.readBoolean(stream, state, true)); - break; - case 9: - attach.setInitialDeliveryCount(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 10: - attach.setMaxMessageSize(decoder.readUnsignedLong(stream, state)); - break; - case 11: - attach.setOfferedCapabilities(decoder.readMultiple(stream, state, Symbol.class)); - break; - case 12: - attach.setDesiredCapabilities(decoder.readMultiple(stream, state, Symbol.class)); - break; - case 13: - attach.setProperties(decoder.readMap(stream, state)); - break; + case 0 -> attach.setName(decoder.readString(stream, state)); + case 1 -> attach.setHandle(decoder.readUnsignedInteger(stream, state, 0l)); + case 2 -> attach.setRole(decoder.readBoolean(stream, state, false) ? Role.RECEIVER : Role.SENDER); + case 3 -> attach.setSenderSettleMode(SenderSettleMode.valueOf(decoder.readUnsignedByte(stream, state, (byte) 2))); + case 4 -> attach.setReceiverSettleMode(ReceiverSettleMode.valueOf(decoder.readUnsignedByte(stream, state, (byte) 0))); + case 5 -> attach.setSource(decoder.readObject(stream, state, Source.class)); + case 6 -> attach.setTarget(decoder.readObject(stream, state, Terminus.class)); + case 7 -> attach.setUnsettled(decoder.readMap(stream, state)); + case 8 -> attach.setIncompleteUnsettled(decoder.readBoolean(stream, state, true)); + case 9 -> attach.setInitialDeliveryCount(decoder.readUnsignedInteger(stream, state, 0l)); + case 10 -> attach.setMaxMessageSize(decoder.readUnsignedLong(stream, state)); + case 11 -> attach.setOfferedCapabilities(decoder.readMultiple(stream, state, Symbol.class)); + case 12 -> attach.setDesiredCapabilities(decoder.readMultiple(stream, state, Symbol.class)); + case 13 -> attach.setProperties(decoder.readMap(stream, state)); } } @@ -262,13 +206,10 @@ public final class AttachTypeDecoder extends AbstractDescribedListTypeDecoder<At } private String errorForMissingRequiredFields(int present) { - switch (present) { - case 2: - return "The role field cannot be omitted from the Attach"; - case 1: - return "The handle field cannot be omitted from the Attach"; - default: - return "The name field cannot be omitted from the Attach"; - } + return switch (present) { + case 2 -> "The role field cannot be omitted from the Attach"; + case 1 -> "The handle field cannot be omitted from the Attach"; + default -> "The name field cannot be omitted from the Attach"; + }; } } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/BeginTypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/BeginTypeDecoder.java index 80a37251..255474b3 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/BeginTypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/BeginTypeDecoder.java @@ -106,30 +106,14 @@ public final class BeginTypeDecoder extends AbstractDescribedListTypeDecoder<Beg } switch (index) { - case 0: - begin.setRemoteChannel(decoder.readUnsignedShort(buffer, state, 0)); - break; - case 1: - begin.setNextOutgoingId(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 2: - begin.setIncomingWindow(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 3: - begin.setOutgoingWindow(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 4: - begin.setHandleMax(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 5: - begin.setOfferedCapabilities(decoder.readMultiple(buffer, state, Symbol.class)); - break; - case 6: - begin.setDesiredCapabilities(decoder.readMultiple(buffer, state, Symbol.class)); - break; - case 7: - begin.setProperties(decoder.readMap(buffer, state)); - break; + case 0 -> begin.setRemoteChannel(decoder.readUnsignedShort(buffer, state, 0)); + case 1 -> begin.setNextOutgoingId(decoder.readUnsignedInteger(buffer, state, 0l)); + case 2 -> begin.setIncomingWindow(decoder.readUnsignedInteger(buffer, state, 0l)); + case 3 -> begin.setOutgoingWindow(decoder.readUnsignedInteger(buffer, state, 0l)); + case 4 -> begin.setHandleMax(decoder.readUnsignedInteger(buffer, state, 0l)); + case 5 -> begin.setOfferedCapabilities(decoder.readMultiple(buffer, state, Symbol.class)); + case 6 -> begin.setDesiredCapabilities(decoder.readMultiple(buffer, state, Symbol.class)); + case 7 -> begin.setProperties(decoder.readMap(buffer, state)); } } @@ -190,30 +174,14 @@ public final class BeginTypeDecoder extends AbstractDescribedListTypeDecoder<Beg } switch (index) { - case 0: - begin.setRemoteChannel(decoder.readUnsignedShort(stream, state, 0)); - break; - case 1: - begin.setNextOutgoingId(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 2: - begin.setIncomingWindow(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 3: - begin.setOutgoingWindow(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 4: - begin.setHandleMax(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 5: - begin.setOfferedCapabilities(decoder.readMultiple(stream, state, Symbol.class)); - break; - case 6: - begin.setDesiredCapabilities(decoder.readMultiple(stream, state, Symbol.class)); - break; - case 7: - begin.setProperties(decoder.readMap(stream, state)); - break; + case 0 -> begin.setRemoteChannel(decoder.readUnsignedShort(stream, state, 0)); + case 1 -> begin.setNextOutgoingId(decoder.readUnsignedInteger(stream, state, 0l)); + case 2 -> begin.setIncomingWindow(decoder.readUnsignedInteger(stream, state, 0l)); + case 3 -> begin.setOutgoingWindow(decoder.readUnsignedInteger(stream, state, 0l)); + case 4 -> begin.setHandleMax(decoder.readUnsignedInteger(stream, state, 0l)); + case 5 -> begin.setOfferedCapabilities(decoder.readMultiple(stream, state, Symbol.class)); + case 6 -> begin.setDesiredCapabilities(decoder.readMultiple(stream, state, Symbol.class)); + case 7 -> begin.setProperties(decoder.readMap(stream, state)); } } @@ -221,13 +189,10 @@ public final class BeginTypeDecoder extends AbstractDescribedListTypeDecoder<Beg } private String errorForMissingRequiredFields(int present) { - switch (present) { - case 3: - return "The outgoing-window field cannot be omitted from the Begin"; - case 2: - return "The incoming-window field cannot be omitted from the Begin"; - default: - return "The next-outgoing-id field cannot be omitted from the Begin"; - } + return switch (present) { + case 3 -> "The outgoing-window field cannot be omitted from the Begin"; + case 2 -> "The incoming-window field cannot be omitted from the Begin"; + default -> "The next-outgoing-id field cannot be omitted from the Begin"; + }; } } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/DetachTypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/DetachTypeDecoder.java index 4811c78d..33e7eabb 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/DetachTypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/DetachTypeDecoder.java @@ -105,15 +105,9 @@ public final class DetachTypeDecoder extends AbstractDescribedListTypeDecoder<De } switch (index) { - case 0: - detach.setHandle(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 1: - detach.setClosed(decoder.readBoolean(buffer, state, false)); - break; - case 2: - detach.setError(decoder.readObject(buffer, state, ErrorCondition.class)); - break; + case 0 -> detach.setHandle(decoder.readUnsignedInteger(buffer, state, 0l)); + case 1 -> detach.setClosed(decoder.readBoolean(buffer, state, false)); + case 2 -> detach.setError(decoder.readObject(buffer, state, ErrorCondition.class)); } } @@ -173,15 +167,9 @@ public final class DetachTypeDecoder extends AbstractDescribedListTypeDecoder<De } switch (index) { - case 0: - detach.setHandle(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 1: - detach.setClosed(decoder.readBoolean(stream, state, false)); - break; - case 2: - detach.setError(decoder.readObject(stream, state, ErrorCondition.class)); - break; + case 0 -> detach.setHandle(decoder.readUnsignedInteger(stream, state, 0l)); + case 1 -> detach.setClosed(decoder.readBoolean(stream, state, false)); + case 2 -> detach.setError(decoder.readObject(stream, state, ErrorCondition.class)); } } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/DispositionTypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/DispositionTypeDecoder.java index 5350a3f0..99a1c94e 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/DispositionTypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/DispositionTypeDecoder.java @@ -108,24 +108,12 @@ public final class DispositionTypeDecoder extends AbstractDescribedListTypeDecod } switch (index) { - case 0: - disposition.setRole(decoder.readBoolean(buffer, state, false) ? Role.RECEIVER : Role.SENDER); - break; - case 1: - disposition.setFirst(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 2: - disposition.setLast(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 3: - disposition.setSettled(decoder.readBoolean(buffer, state, false)); - break; - case 4: - disposition.setState(decoder.readObject(buffer, state, DeliveryState.class)); - break; - case 5: - disposition.setBatchable(decoder.readBoolean(buffer, state, false)); - break; + case 0 -> disposition.setRole(decoder.readBoolean(buffer, state, false) ? Role.RECEIVER : Role.SENDER); + case 1 -> disposition.setFirst(decoder.readUnsignedInteger(buffer, state, 0l)); + case 2 -> disposition.setLast(decoder.readUnsignedInteger(buffer, state, 0l)); + case 3 -> disposition.setSettled(decoder.readBoolean(buffer, state, false)); + case 4 -> disposition.setState(decoder.readObject(buffer, state, DeliveryState.class)); + case 5 -> disposition.setBatchable(decoder.readBoolean(buffer, state, false)); } } @@ -195,24 +183,12 @@ public final class DispositionTypeDecoder extends AbstractDescribedListTypeDecod } switch (index) { - case 0: - disposition.setRole(decoder.readBoolean(stream, state, false) ? Role.RECEIVER : Role.SENDER); - break; - case 1: - disposition.setFirst(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 2: - disposition.setLast(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 3: - disposition.setSettled(decoder.readBoolean(stream, state, false)); - break; - case 4: - disposition.setState(decoder.readObject(stream, state, DeliveryState.class)); - break; - case 5: - disposition.setBatchable(decoder.readBoolean(stream, state, false)); - break; + case 0 -> disposition.setRole(decoder.readBoolean(stream, state, false) ? Role.RECEIVER : Role.SENDER); + case 1 -> disposition.setFirst(decoder.readUnsignedInteger(stream, state, 0l)); + case 2 -> disposition.setLast(decoder.readUnsignedInteger(stream, state, 0l)); + case 3 -> disposition.setSettled(decoder.readBoolean(stream, state, false)); + case 4 -> disposition.setState(decoder.readObject(stream, state, DeliveryState.class)); + case 5 -> disposition.setBatchable(decoder.readBoolean(stream, state, false)); } } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/ErrorConditionTypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/ErrorConditionTypeDecoder.java index b8ec663e..dfa4b6b4 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/ErrorConditionTypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/ErrorConditionTypeDecoder.java @@ -94,15 +94,9 @@ public final class ErrorConditionTypeDecoder extends AbstractDescribedListTypeDe for (int index = 0; index < count; ++index) { switch (index) { - case 0: - condition = decoder.readSymbol(buffer, state); - break; - case 1: - description = decoder.readString(buffer, state); - break; - case 2: - info = decoder.readMap(buffer, state); - break; + case 0 -> condition = decoder.readSymbol(buffer, state); + case 1 -> description = decoder.readString(buffer, state); + case 2 -> info = decoder.readMap(buffer, state); } } @@ -147,15 +141,9 @@ public final class ErrorConditionTypeDecoder extends AbstractDescribedListTypeDe for (int index = 0; index < count; ++index) { switch (index) { - case 0: - condition = decoder.readSymbol(stream, state); - break; - case 1: - description = decoder.readString(stream, state); - break; - case 2: - info = decoder.readMap(stream, state); - break; + case 0 -> condition = decoder.readSymbol(stream, state); + case 1 -> description = decoder.readString(stream, state); + case 2 -> info = decoder.readMap(stream, state); } } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/FlowTypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/FlowTypeDecoder.java index 595f1b08..b7815025 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/FlowTypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/FlowTypeDecoder.java @@ -107,39 +107,17 @@ public final class FlowTypeDecoder extends AbstractDescribedListTypeDecoder<Flow } switch (index) { - case 0: - flow.setNextIncomingId(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 1: - flow.setIncomingWindow(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 2: - flow.setNextOutgoingId(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 3: - flow.setOutgoingWindow(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 4: - flow.setHandle(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 5: - flow.setDeliveryCount(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 6: - flow.setLinkCredit(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 7: - flow.setAvailable(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 8: - flow.setDrain(decoder.readBoolean(buffer, state, false)); - break; - case 9: - flow.setEcho(decoder.readBoolean(buffer, state, false)); - break; - case 10: - flow.setProperties(decoder.readMap(buffer, state)); - break; + case 0 -> flow.setNextIncomingId(decoder.readUnsignedInteger(buffer, state, 0l)); + case 1 -> flow.setIncomingWindow(decoder.readUnsignedInteger(buffer, state, 0l)); + case 2 -> flow.setNextOutgoingId(decoder.readUnsignedInteger(buffer, state, 0l)); + case 3 -> flow.setOutgoingWindow(decoder.readUnsignedInteger(buffer, state, 0l)); + case 4 -> flow.setHandle(decoder.readUnsignedInteger(buffer, state, 0l)); + case 5 -> flow.setDeliveryCount(decoder.readUnsignedInteger(buffer, state, 0l)); + case 6 -> flow.setLinkCredit(decoder.readUnsignedInteger(buffer, state, 0l)); + case 7 -> flow.setAvailable(decoder.readUnsignedInteger(buffer, state, 0l)); + case 8 -> flow.setDrain(decoder.readBoolean(buffer, state, false)); + case 9 -> flow.setEcho(decoder.readBoolean(buffer, state, false)); + case 10 -> flow.setProperties(decoder.readMap(buffer, state)); } } @@ -201,39 +179,17 @@ public final class FlowTypeDecoder extends AbstractDescribedListTypeDecoder<Flow } switch (index) { - case 0: - flow.setNextIncomingId(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 1: - flow.setIncomingWindow(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 2: - flow.setNextOutgoingId(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 3: - flow.setOutgoingWindow(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 4: - flow.setHandle(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 5: - flow.setDeliveryCount(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 6: - flow.setLinkCredit(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 7: - flow.setAvailable(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 8: - flow.setDrain(decoder.readBoolean(stream, state, false)); - break; - case 9: - flow.setEcho(decoder.readBoolean(stream, state, false)); - break; - case 10: - flow.setProperties(decoder.readMap(stream, state)); - break; + case 0 -> flow.setNextIncomingId(decoder.readUnsignedInteger(stream, state, 0l)); + case 1 -> flow.setIncomingWindow(decoder.readUnsignedInteger(stream, state, 0l)); + case 2 -> flow.setNextOutgoingId(decoder.readUnsignedInteger(stream, state, 0l)); + case 3 -> flow.setOutgoingWindow(decoder.readUnsignedInteger(stream, state, 0l)); + case 4 -> flow.setHandle(decoder.readUnsignedInteger(stream, state, 0l)); + case 5 -> flow.setDeliveryCount(decoder.readUnsignedInteger(stream, state, 0l)); + case 6 -> flow.setLinkCredit(decoder.readUnsignedInteger(stream, state, 0l)); + case 7 -> flow.setAvailable(decoder.readUnsignedInteger(stream, state, 0l)); + case 8 -> flow.setDrain(decoder.readBoolean(stream, state, false)); + case 9 -> flow.setEcho(decoder.readBoolean(stream, state, false)); + case 10 -> flow.setProperties(decoder.readMap(stream, state)); } } @@ -241,13 +197,10 @@ public final class FlowTypeDecoder extends AbstractDescribedListTypeDecoder<Flow } private String errorForMissingRequiredFields(int present) { - switch (present) { - case 3: - return "The outgoing-window field cannot be omitted from the Flow"; - case 2: - return "The next-outgoing-id field cannot be omitted from the Flow"; - default: - return "The incoming-window field cannot be omitted from the Flow"; - } + return switch (present) { + case 3 -> "The outgoing-window field cannot be omitted from the Flow"; + case 2 -> "The next-outgoing-id field cannot be omitted from the Flow"; + default -> "The incoming-window field cannot be omitted from the Flow"; + }; } } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/OpenTypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/OpenTypeDecoder.java index 377efa48..1ec6889f 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/OpenTypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/OpenTypeDecoder.java @@ -105,36 +105,16 @@ public final class OpenTypeDecoder extends AbstractDescribedListTypeDecoder<Open } switch (index) { - case 0: - open.setContainerId(decoder.readString(buffer, state)); - break; - case 1: - open.setHostname(decoder.readString(buffer, state)); - break; - case 2: - open.setMaxFrameSize(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 3: - open.setChannelMax(decoder.readUnsignedShort(buffer, state, 0)); - break; - case 4: - open.setIdleTimeout(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 5: - open.setOutgoingLocales(decoder.readMultiple(buffer, state, Symbol.class)); - break; - case 6: - open.setIncomingLocales(decoder.readMultiple(buffer, state, Symbol.class)); - break; - case 7: - open.setOfferedCapabilities(decoder.readMultiple(buffer, state, Symbol.class)); - break; - case 8: - open.setDesiredCapabilities(decoder.readMultiple(buffer, state, Symbol.class)); - break; - case 9: - open.setProperties(decoder.readMap(buffer, state)); - break; + case 0 -> open.setContainerId(decoder.readString(buffer, state)); + case 1 -> open.setHostname(decoder.readString(buffer, state)); + case 2 -> open.setMaxFrameSize(decoder.readUnsignedInteger(buffer, state, 0l)); + case 3 -> open.setChannelMax(decoder.readUnsignedShort(buffer, state, 0)); + case 4 -> open.setIdleTimeout(decoder.readUnsignedInteger(buffer, state, 0l)); + case 5 -> open.setOutgoingLocales(decoder.readMultiple(buffer, state, Symbol.class)); + case 6 -> open.setIncomingLocales(decoder.readMultiple(buffer, state, Symbol.class)); + case 7 -> open.setOfferedCapabilities(decoder.readMultiple(buffer, state, Symbol.class)); + case 8 -> open.setDesiredCapabilities(decoder.readMultiple(buffer, state, Symbol.class)); + case 9 -> open.setProperties(decoder.readMap(buffer, state)); } } @@ -194,36 +174,16 @@ public final class OpenTypeDecoder extends AbstractDescribedListTypeDecoder<Open } switch (index) { - case 0: - open.setContainerId(decoder.readString(stream, state)); - break; - case 1: - open.setHostname(decoder.readString(stream, state)); - break; - case 2: - open.setMaxFrameSize(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 3: - open.setChannelMax(decoder.readUnsignedShort(stream, state, 0)); - break; - case 4: - open.setIdleTimeout(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 5: - open.setOutgoingLocales(decoder.readMultiple(stream, state, Symbol.class)); - break; - case 6: - open.setIncomingLocales(decoder.readMultiple(stream, state, Symbol.class)); - break; - case 7: - open.setOfferedCapabilities(decoder.readMultiple(stream, state, Symbol.class)); - break; - case 8: - open.setDesiredCapabilities(decoder.readMultiple(stream, state, Symbol.class)); - break; - case 9: - open.setProperties(decoder.readMap(stream, state)); - break; + case 0 -> open.setContainerId(decoder.readString(stream, state)); + case 1 -> open.setHostname(decoder.readString(stream, state)); + case 2 -> open.setMaxFrameSize(decoder.readUnsignedInteger(stream, state, 0l)); + case 3 -> open.setChannelMax(decoder.readUnsignedShort(stream, state, 0)); + case 4 -> open.setIdleTimeout(decoder.readUnsignedInteger(stream, state, 0l)); + case 5 -> open.setOutgoingLocales(decoder.readMultiple(stream, state, Symbol.class)); + case 6 -> open.setIncomingLocales(decoder.readMultiple(stream, state, Symbol.class)); + case 7 -> open.setOfferedCapabilities(decoder.readMultiple(stream, state, Symbol.class)); + case 8 -> open.setDesiredCapabilities(decoder.readMultiple(stream, state, Symbol.class)); + case 9 -> open.setProperties(decoder.readMap(stream, state)); } } diff --git a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/TransferTypeDecoder.java b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/TransferTypeDecoder.java index 1fbe7a81..96de93df 100644 --- a/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/TransferTypeDecoder.java +++ b/protonj2/src/main/java/org/apache/qpid/protonj2/codec/decoders/transport/TransferTypeDecoder.java @@ -109,40 +109,20 @@ public final class TransferTypeDecoder extends AbstractDescribedListTypeDecoder< } switch (index) { - case 0: - transfer.setHandle(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 1: - transfer.setDeliveryId(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 2: - transfer.setDeliveryTag(decoder.readDeliveryTag(buffer, state)); - break; - case 3: - transfer.setMessageFormat(decoder.readUnsignedInteger(buffer, state, 0l)); - break; - case 4: - transfer.setSettled(decoder.readBoolean(buffer, state, false)); - break; - case 5: - transfer.setMore(decoder.readBoolean(buffer, state, false)); - break; - case 6: + case 0 -> transfer.setHandle(decoder.readUnsignedInteger(buffer, state, 0l)); + case 1 -> transfer.setDeliveryId(decoder.readUnsignedInteger(buffer, state, 0l)); + case 2 -> transfer.setDeliveryTag(decoder.readDeliveryTag(buffer, state)); + case 3 -> transfer.setMessageFormat(decoder.readUnsignedInteger(buffer, state, 0l)); + case 4 -> transfer.setSettled(decoder.readBoolean(buffer, state, false)); + case 5 -> transfer.setMore(decoder.readBoolean(buffer, state, false)); + case 6 -> { final UnsignedByte rcvSettleMode = decoder.readUnsignedByte(buffer, state); transfer.setRcvSettleMode(rcvSettleMode == null ? null : ReceiverSettleMode.values()[rcvSettleMode.intValue()]); - break; - case 7: - transfer.setState(decoder.readObject(buffer, state, DeliveryState.class)); - break; - case 8: - transfer.setResume(decoder.readBoolean(buffer, state, false)); - break; - case 9: - transfer.setAborted(decoder.readBoolean(buffer, state, false)); - break; - case 10: - transfer.setBatchable(decoder.readBoolean(buffer, state, false)); - break; + } + case 7 -> transfer.setState(decoder.readObject(buffer, state, DeliveryState.class)); + case 8 -> transfer.setResume(decoder.readBoolean(buffer, state, false)); + case 9 -> transfer.setAborted(decoder.readBoolean(buffer, state, false)); + case 10 -> transfer.setBatchable(decoder.readBoolean(buffer, state, false)); } } @@ -203,40 +183,20 @@ public final class TransferTypeDecoder extends AbstractDescribedListTypeDecoder< } switch (index) { - case 0: - transfer.setHandle(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 1: - transfer.setDeliveryId(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 2: - transfer.setDeliveryTag(decoder.readDeliveryTag(stream, state)); - break; - case 3: - transfer.setMessageFormat(decoder.readUnsignedInteger(stream, state, 0l)); - break; - case 4: - transfer.setSettled(decoder.readBoolean(stream, state, false)); - break; - case 5: - transfer.setMore(decoder.readBoolean(stream, state, false)); - break; - case 6: + case 0 -> transfer.setHandle(decoder.readUnsignedInteger(stream, state, 0l)); + case 1 -> transfer.setDeliveryId(decoder.readUnsignedInteger(stream, state, 0l)); + case 2 -> transfer.setDeliveryTag(decoder.readDeliveryTag(stream, state)); + case 3 -> transfer.setMessageFormat(decoder.readUnsignedInteger(stream, state, 0l)); + case 4 -> transfer.setSettled(decoder.readBoolean(stream, state, false)); + case 5 -> transfer.setMore(decoder.readBoolean(stream, state, false)); + case 6 -> { final UnsignedByte rcvSettleMode = decoder.readUnsignedByte(stream, state); transfer.setRcvSettleMode(rcvSettleMode == null ? null : ReceiverSettleMode.values()[rcvSettleMode.intValue()]); - break; - case 7: - transfer.setState(decoder.readObject(stream, state, DeliveryState.class)); - break; - case 8: - transfer.setResume(decoder.readBoolean(stream, state, false)); - break; - case 9: - transfer.setAborted(decoder.readBoolean(stream, state, false)); - break; - case 10: - transfer.setBatchable(decoder.readBoolean(stream, state, false)); - break; + } + case 7 -> transfer.setState(decoder.readObject(stream, state, DeliveryState.class)); + case 8 -> transfer.setResume(decoder.readBoolean(stream, state, false)); + case 9 -> transfer.setAborted(decoder.readBoolean(stream, state, false)); + case 10 -> transfer.setBatchable(decoder.readBoolean(stream, state, false)); } } diff --git a/protonj2/src/test/java/org/apache/qpid/protonj2/codec/decoders/ProtonDecoderTest.java b/protonj2/src/test/java/org/apache/qpid/protonj2/codec/decoders/ProtonDecoderTest.java index 0fd417ad..5ade59e6 100644 --- a/protonj2/src/test/java/org/apache/qpid/protonj2/codec/decoders/ProtonDecoderTest.java +++ b/protonj2/src/test/java/org/apache/qpid/protonj2/codec/decoders/ProtonDecoderTest.java @@ -36,6 +36,7 @@ import org.apache.qpid.protonj2.codec.DecodeException; import org.apache.qpid.protonj2.codec.DecoderState; import org.apache.qpid.protonj2.codec.EncodingCodes; import org.apache.qpid.protonj2.types.UnknownDescribedType; +import org.apache.qpid.protonj2.types.UnsignedInteger; import org.apache.qpid.protonj2.types.UnsignedLong; import org.junit.jupiter.api.Test; @@ -246,6 +247,26 @@ public class ProtonDecoderTest extends CodecTestSupport { assertEquals(32, decoder.readUnsignedInteger(buffer, decoderState, 32)); } + @Test + public void testReadUnsignedIntegerTypesAsObject() throws IOException { + ProtonBuffer buffer = ProtonBufferAllocator.defaultAllocator().allocate(); + + buffer.writeByte(EncodingCodes.UINT0); + buffer.writeByte(EncodingCodes.SMALLUINT); + buffer.writeByte((byte) 127); + buffer.writeByte(EncodingCodes.UINT); + buffer.writeByte((byte) 0); + buffer.writeByte((byte) 0); + buffer.writeByte((byte) 0); + buffer.writeByte((byte) 255); + buffer.writeByte(EncodingCodes.NULL); + + assertEquals(UnsignedInteger.valueOf(0), decoder.readUnsignedInteger(buffer, decoderState, UnsignedInteger.valueOf(32))); + assertEquals(UnsignedInteger.valueOf(127), decoder.readUnsignedInteger(buffer, decoderState, UnsignedInteger.valueOf(32))); + assertEquals(UnsignedInteger.valueOf(255), decoder.readUnsignedInteger(buffer, decoderState, UnsignedInteger.valueOf(32))); + assertEquals(UnsignedInteger.valueOf(32), decoder.readUnsignedInteger(buffer, decoderState, UnsignedInteger.valueOf(32))); + } + @Test public void testReadStringWithCustomStringDecoder() throws IOException { ProtonBuffer buffer = ProtonBufferAllocator.defaultAllocator().allocate(); diff --git a/protonj2/src/test/java/org/apache/qpid/protonj2/codec/decoders/ProtonStreamDecoderTest.java b/protonj2/src/test/java/org/apache/qpid/protonj2/codec/decoders/ProtonStreamDecoderTest.java index e0a0606c..ce124a5a 100644 --- a/protonj2/src/test/java/org/apache/qpid/protonj2/codec/decoders/ProtonStreamDecoderTest.java +++ b/protonj2/src/test/java/org/apache/qpid/protonj2/codec/decoders/ProtonStreamDecoderTest.java @@ -37,6 +37,7 @@ import org.apache.qpid.protonj2.codec.DecodeException; import org.apache.qpid.protonj2.codec.EncodingCodes; import org.apache.qpid.protonj2.codec.StreamDecoderState; import org.apache.qpid.protonj2.types.UnknownDescribedType; +import org.apache.qpid.protonj2.types.UnsignedInteger; import org.apache.qpid.protonj2.types.UnsignedLong; import org.apache.qpid.protonj2.types.messaging.Accepted; import org.junit.jupiter.api.Test; @@ -253,6 +254,28 @@ public class ProtonStreamDecoderTest extends CodecTestSupport { assertEquals(32, streamDecoder.readUnsignedInteger(stream, streamDecoderState, 32)); } + @Test + public void testReadUnsignedIntegerTypesAsObject() throws IOException { + ProtonBuffer buffer = ProtonBufferAllocator.defaultAllocator().allocate(); + + buffer.writeByte(EncodingCodes.UINT0); + buffer.writeByte(EncodingCodes.SMALLUINT); + buffer.writeByte((byte) 127); + buffer.writeByte(EncodingCodes.UINT); + buffer.writeByte((byte) 0); + buffer.writeByte((byte) 0); + buffer.writeByte((byte) 0); + buffer.writeByte((byte) 255); + buffer.writeByte(EncodingCodes.NULL); + + InputStream stream = new ProtonBufferInputStream(buffer); + + assertEquals(UnsignedInteger.valueOf(0), streamDecoder.readUnsignedInteger(stream, streamDecoderState, UnsignedInteger.valueOf(32))); + assertEquals(UnsignedInteger.valueOf(127), streamDecoder.readUnsignedInteger(stream, streamDecoderState, UnsignedInteger.valueOf(32))); + assertEquals(UnsignedInteger.valueOf(255), streamDecoder.readUnsignedInteger(stream, streamDecoderState, UnsignedInteger.valueOf(32))); + assertEquals(UnsignedInteger.valueOf(32), streamDecoder.readUnsignedInteger(stream, streamDecoderState, UnsignedInteger.valueOf(32))); + } + @Test public void testReadMultipleRequestsWrongTypeForArrayEncoding() throws IOException { ProtonBuffer buffer = ProtonBufferAllocator.defaultAllocator().allocate(); --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
