Add byteops-milo module for Eclipse Milo unsigned types #13
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What problem(s) was I solving?
Projects using Eclipse Milo's OPC UA stack have their own unsigned types (
UByte,UShort,UInteger,ULong) inorg.eclipse.milo.opcua.stack.core.types.builtin.unsigned. Currently, there's no convenient way to read/write these types using byteops - users would need to manually convert between primitive types and Milo's unsigned types.What user-facing changes did I ship?
Added a new
byteops-milomodule that providesMiloByteOps<T>- a wrapper class for working with Eclipse Milo's unsigned types. This follows the same pattern as the existingbyteops-unsignedmodule (which wraps jOOU types).New API methods:
getUByte/setUByte- read/writeUBytevaluesgetUShort/setUShort- read/writeUShortvaluesgetUInt/setUInt- read/writeUIntegervaluesgetULong/setULong- read/writeULongvaluesHow I implemented it
byteops-miloMaven module with dependency onorg.eclipse.milo:milo-stack-core:1.0.8MiloByteOps<T>using the delegation pattern (same asUnsignedByteOps<T>)ByteOps<T>and delegates all standard operations to the wrapped instance@NullMarkedpackage annotation for nullability consistency with the rest of the projectHow to verify it
Automated
mvn clean packagepassesMiloByteOpsTest)Manual Testing
Description for the changelog
Add
byteops-milomodule providingMiloByteOps<T>wrapper for Eclipse Milo unsigned types.