This is an automated email from the ASF dual-hosted git repository. cdutz pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit e8d7def7de049ced5f83063dc81aea70320d47da Author: Christofer Dutz <christofer.d...@c-ware.de> AuthorDate: Fri Sep 5 19:52:53 2025 +0200 fix: Fixed some slightly off types in bacnet (uint was used where int was appropriate) --- .../model/BACnetApplicationTagSignedInteger.go | 8 ++-- .../model/BACnetContextTagSignedInteger.go | 8 ++-- .../model/BACnetTagPayloadSignedInteger.go | 56 +++++++++++----------- .../BACnetApplicationTagSignedInteger.java | 12 ++--- .../readwrite/BACnetContextTagSignedInteger.java | 12 ++--- .../readwrite/BACnetTagPayloadSignedInteger.java | 19 ++++---- .../plc4x/java/bacnetip/RandomPackagesTest.java | 6 +-- .../resources/protocols/bacnetip/bacnet-tags.mspec | 6 +-- 8 files changed, 59 insertions(+), 68 deletions(-) diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go index b71e98b7d6..2bc12469c4 100644 --- a/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go +++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetApplicationTagSignedInteger.go @@ -44,7 +44,7 @@ type BACnetApplicationTagSignedInteger interface { // GetPayload returns Payload (property field) GetPayload() BACnetTagPayloadSignedInteger // GetActualValue returns ActualValue (virtual field) - GetActualValue() uint64 + GetActualValue() int64 // IsBACnetApplicationTagSignedInteger is a marker method to prevent unintentional type checks (interfaces of same signature) IsBACnetApplicationTagSignedInteger() // CreateBuilder creates a BACnetApplicationTagSignedIntegerBuilder @@ -216,10 +216,10 @@ func (m *_BACnetApplicationTagSignedInteger) GetPayload() BACnetTagPayloadSigned /////////////////////// Accessors for virtual fields. /////////////////////// -func (m *_BACnetApplicationTagSignedInteger) GetActualValue() uint64 { +func (m *_BACnetApplicationTagSignedInteger) GetActualValue() int64 { ctx := context.Background() _ = ctx - return uint64(m.GetPayload().GetActualValue()) + return int64(m.GetPayload().GetActualValue()) } /////////////////////// @@ -274,7 +274,7 @@ func (m *_BACnetApplicationTagSignedInteger) parse(ctx context.Context, readBuff } m.Payload = payload - actualValue, err := ReadVirtualField[uint64](ctx, "actualValue", (*uint64)(nil), payload.GetActualValue()) + actualValue, err := ReadVirtualField[int64](ctx, "actualValue", (*int64)(nil), payload.GetActualValue()) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'actualValue' field")) } diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetContextTagSignedInteger.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetContextTagSignedInteger.go index 63cd59fcbc..b3bba374e8 100644 --- a/plc4go/protocols/bacnetip/readwrite/model/BACnetContextTagSignedInteger.go +++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetContextTagSignedInteger.go @@ -44,7 +44,7 @@ type BACnetContextTagSignedInteger interface { // GetPayload returns Payload (property field) GetPayload() BACnetTagPayloadSignedInteger // GetActualValue returns ActualValue (virtual field) - GetActualValue() uint64 + GetActualValue() int64 // IsBACnetContextTagSignedInteger is a marker method to prevent unintentional type checks (interfaces of same signature) IsBACnetContextTagSignedInteger() // CreateBuilder creates a BACnetContextTagSignedIntegerBuilder @@ -220,10 +220,10 @@ func (m *_BACnetContextTagSignedInteger) GetPayload() BACnetTagPayloadSignedInte /////////////////////// Accessors for virtual fields. /////////////////////// -func (m *_BACnetContextTagSignedInteger) GetActualValue() uint64 { +func (m *_BACnetContextTagSignedInteger) GetActualValue() int64 { ctx := context.Background() _ = ctx - return uint64(m.GetPayload().GetActualValue()) + return int64(m.GetPayload().GetActualValue()) } /////////////////////// @@ -278,7 +278,7 @@ func (m *_BACnetContextTagSignedInteger) parse(ctx context.Context, readBuffer u } m.Payload = payload - actualValue, err := ReadVirtualField[uint64](ctx, "actualValue", (*uint64)(nil), payload.GetActualValue()) + actualValue, err := ReadVirtualField[int64](ctx, "actualValue", (*int64)(nil), payload.GetActualValue()) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'actualValue' field")) } diff --git a/plc4go/protocols/bacnetip/readwrite/model/BACnetTagPayloadSignedInteger.go b/plc4go/protocols/bacnetip/readwrite/model/BACnetTagPayloadSignedInteger.go index 27a5f6e5b8..ef661186bf 100644 --- a/plc4go/protocols/bacnetip/readwrite/model/BACnetTagPayloadSignedInteger.go +++ b/plc4go/protocols/bacnetip/readwrite/model/BACnetTagPayloadSignedInteger.go @@ -75,7 +75,7 @@ type BACnetTagPayloadSignedInteger interface { // GetIsInt64 returns IsInt64 (virtual field) GetIsInt64() bool // GetActualValue returns ActualValue (virtual field) - GetActualValue() uint64 + GetActualValue() int64 // IsBACnetTagPayloadSignedInteger is a marker method to prevent unintentional type checks (interfaces of same signature) IsBACnetTagPayloadSignedInteger() // CreateBuilder creates a BACnetTagPayloadSignedIntegerBuilder @@ -460,7 +460,7 @@ func (m *_BACnetTagPayloadSignedInteger) GetIsInt64() bool { return bool(bool((m.GetActualLength()) == (8))) } -func (m *_BACnetTagPayloadSignedInteger) GetActualValue() uint64 { +func (m *_BACnetTagPayloadSignedInteger) GetActualValue() int64 { ctx := context.Background() _ = ctx valueInt8 := m.GetValueInt8() @@ -479,19 +479,19 @@ func (m *_BACnetTagPayloadSignedInteger) GetActualValue() uint64 { _ = valueInt56 valueInt64 := m.GetValueInt64() _ = valueInt64 - return uint64(utils.InlineIf(m.GetIsInt8(), func() any { return uint64((*m.GetValueInt8())) }, func() any { - return uint64((utils.InlineIf(m.GetIsInt16(), func() any { return uint64((*m.GetValueInt16())) }, func() any { - return uint64((utils.InlineIf(m.GetIsInt24(), func() any { return uint64((*m.GetValueInt24())) }, func() any { - return uint64((utils.InlineIf(m.GetIsInt32(), func() any { return uint64((*m.GetValueInt32())) }, func() any { - return uint64((utils.InlineIf(m.GetIsInt40(), func() any { return uint64((*m.GetValueInt40())) }, func() any { - return uint64((utils.InlineIf(m.GetIsInt48(), func() any { return uint64((*m.GetValueInt48())) }, func() any { - return uint64((utils.InlineIf(m.GetIsInt56(), func() any { return uint64((*m.GetValueInt56())) }, func() any { return uint64((*m.GetValueInt64())) }).(uint64))) - }).(uint64))) - }).(uint64))) - }).(uint64))) - }).(uint64))) - }).(uint64))) - }).(uint64)) + return int64(utils.InlineIf(m.GetIsInt8(), func() any { return int64((*m.GetValueInt8())) }, func() any { + return int64((utils.InlineIf(m.GetIsInt16(), func() any { return int64((*m.GetValueInt16())) }, func() any { + return int64((utils.InlineIf(m.GetIsInt24(), func() any { return int64((*m.GetValueInt24())) }, func() any { + return int64((utils.InlineIf(m.GetIsInt32(), func() any { return int64((*m.GetValueInt32())) }, func() any { + return int64((utils.InlineIf(m.GetIsInt40(), func() any { return int64((*m.GetValueInt40())) }, func() any { + return int64((utils.InlineIf(m.GetIsInt48(), func() any { return int64((*m.GetValueInt48())) }, func() any { + return int64((utils.InlineIf(m.GetIsInt56(), func() any { return int64((*m.GetValueInt56())) }, func() any { return int64((*m.GetValueInt64())) }).(int64))) + }).(int64))) + }).(int64))) + }).(int64))) + }).(int64))) + }).(int64))) + }).(int64)) } /////////////////////// @@ -719,19 +719,19 @@ func (m *_BACnetTagPayloadSignedInteger) parse(ctx context.Context, readBuffer u return nil, errors.WithStack(utils.ParseValidationError{Message: "unmapped integer length"}) } - actualValue, err := ReadVirtualField[uint64](ctx, "actualValue", (*uint64)(nil), utils.InlineIf(isInt8, func() any { return uint64((*valueInt8)) }, func() any { - return uint64((utils.InlineIf(isInt16, func() any { return uint64((*valueInt16)) }, func() any { - return uint64((utils.InlineIf(isInt24, func() any { return uint64((*valueInt24)) }, func() any { - return uint64((utils.InlineIf(isInt32, func() any { return uint64((*valueInt32)) }, func() any { - return uint64((utils.InlineIf(isInt40, func() any { return uint64((*valueInt40)) }, func() any { - return uint64((utils.InlineIf(isInt48, func() any { return uint64((*valueInt48)) }, func() any { - return uint64((utils.InlineIf(isInt56, func() any { return uint64((*valueInt56)) }, func() any { return uint64((*valueInt64)) }).(uint64))) - }).(uint64))) - }).(uint64))) - }).(uint64))) - }).(uint64))) - }).(uint64))) - }).(uint64)) + actualValue, err := ReadVirtualField[int64](ctx, "actualValue", (*int64)(nil), utils.InlineIf(isInt8, func() any { return int64((*valueInt8)) }, func() any { + return int64((utils.InlineIf(isInt16, func() any { return int64((*valueInt16)) }, func() any { + return int64((utils.InlineIf(isInt24, func() any { return int64((*valueInt24)) }, func() any { + return int64((utils.InlineIf(isInt32, func() any { return int64((*valueInt32)) }, func() any { + return int64((utils.InlineIf(isInt40, func() any { return int64((*valueInt40)) }, func() any { + return int64((utils.InlineIf(isInt48, func() any { return int64((*valueInt48)) }, func() any { + return int64((utils.InlineIf(isInt56, func() any { return int64((*valueInt56)) }, func() any { return int64((*valueInt64)) }).(int64))) + }).(int64))) + }).(int64))) + }).(int64))) + }).(int64))) + }).(int64))) + }).(int64)) if err != nil { return nil, errors.Wrap(err, fmt.Sprintf("Error parsing 'actualValue' field")) } diff --git a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetApplicationTagSignedInteger.java b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetApplicationTagSignedInteger.java index 1b6c2ef88c..eb1822976c 100644 --- a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetApplicationTagSignedInteger.java +++ b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetApplicationTagSignedInteger.java @@ -24,7 +24,6 @@ import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*; import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*; import static org.apache.plc4x.java.spi.generation.StaticHelper.*; -import java.math.BigInteger; import java.time.*; import java.util.*; import org.apache.plc4x.java.api.exceptions.*; @@ -53,10 +52,8 @@ public class BACnetApplicationTagSignedInteger extends BACnetApplicationTag impl return payload; } - public BigInteger getActualValue() { - Object o = getPayload().getActualValue(); - if (o instanceof BigInteger) return (BigInteger) o; - return BigInteger.valueOf(((Number) o).longValue()); + public long getActualValue() { + return (long) (getPayload().getActualValue()); } @Override @@ -70,7 +67,7 @@ public class BACnetApplicationTagSignedInteger extends BACnetApplicationTag impl writeSimpleField("payload", payload, writeComplex(writeBuffer)); // Virtual field (doesn't serialize anything, just makes the value available) - BigInteger actualValue = getActualValue(); + long actualValue = getActualValue(); writeBuffer.writeVirtual("actualValue", actualValue); writeBuffer.popContext("BACnetApplicationTagSignedInteger"); @@ -109,8 +106,7 @@ public class BACnetApplicationTagSignedInteger extends BACnetApplicationTag impl BACnetTagPayloadSignedInteger.staticParse( readBuffer, (long) (header.getActualLength())), readBuffer)); - BigInteger actualValue = - readVirtualField("actualValue", BigInteger.class, payload.getActualValue()); + long actualValue = readVirtualField("actualValue", long.class, payload.getActualValue()); readBuffer.closeContext("BACnetApplicationTagSignedInteger"); // Create the instance diff --git a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetContextTagSignedInteger.java b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetContextTagSignedInteger.java index 999eabf205..8fb8dd57f8 100644 --- a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetContextTagSignedInteger.java +++ b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetContextTagSignedInteger.java @@ -24,7 +24,6 @@ import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*; import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*; import static org.apache.plc4x.java.spi.generation.StaticHelper.*; -import java.math.BigInteger; import java.time.*; import java.util.*; import org.apache.plc4x.java.api.exceptions.*; @@ -56,10 +55,8 @@ public class BACnetContextTagSignedInteger extends BACnetContextTag implements M return payload; } - public BigInteger getActualValue() { - Object o = getPayload().getActualValue(); - if (o instanceof BigInteger) return (BigInteger) o; - return BigInteger.valueOf(((Number) o).longValue()); + public long getActualValue() { + return (long) (getPayload().getActualValue()); } @Override @@ -73,7 +70,7 @@ public class BACnetContextTagSignedInteger extends BACnetContextTag implements M writeSimpleField("payload", payload, writeComplex(writeBuffer)); // Virtual field (doesn't serialize anything, just makes the value available) - BigInteger actualValue = getActualValue(); + long actualValue = getActualValue(); writeBuffer.writeVirtual("actualValue", actualValue); writeBuffer.popContext("BACnetContextTagSignedInteger"); @@ -116,8 +113,7 @@ public class BACnetContextTagSignedInteger extends BACnetContextTag implements M BACnetTagPayloadSignedInteger.staticParse( readBuffer, (long) (header.getActualLength())), readBuffer)); - BigInteger actualValue = - readVirtualField("actualValue", BigInteger.class, payload.getActualValue()); + long actualValue = readVirtualField("actualValue", long.class, payload.getActualValue()); readBuffer.closeContext("BACnetContextTagSignedInteger"); // Create the instance diff --git a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetTagPayloadSignedInteger.java b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetTagPayloadSignedInteger.java index cbeea75230..065b15152f 100644 --- a/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetTagPayloadSignedInteger.java +++ b/plc4j/drivers/bacnet/src/main/generated/org/apache/plc4x/java/bacnetip/readwrite/BACnetTagPayloadSignedInteger.java @@ -24,7 +24,6 @@ import static org.apache.plc4x.java.spi.codegen.io.DataReaderFactory.*; import static org.apache.plc4x.java.spi.codegen.io.DataWriterFactory.*; import static org.apache.plc4x.java.spi.generation.StaticHelper.*; -import java.math.BigInteger; import java.time.*; import java.util.*; import org.apache.plc4x.java.api.exceptions.*; @@ -139,9 +138,9 @@ public class BACnetTagPayloadSignedInteger implements Message { return (boolean) ((actualLength) == (8)); } - public BigInteger getActualValue() { - Object o = - ((getIsInt8()) + public long getActualValue() { + return (long) + (((getIsInt8()) ? getValueInt8() : (((getIsInt16()) ? getValueInt16() @@ -153,9 +152,9 @@ public class BACnetTagPayloadSignedInteger implements Message { ? getValueInt40() : (((getIsInt48()) ? getValueInt48() - : (((getIsInt56()) ? getValueInt56() : getValueInt64()))))))))))))); - if (o instanceof BigInteger) return (BigInteger) o; - return BigInteger.valueOf(((Number) o).longValue()); + : (((getIsInt56()) + ? getValueInt56() + : getValueInt64())))))))))))))); } public void serialize(WriteBuffer writeBuffer) throws SerializationException { @@ -220,7 +219,7 @@ public class BACnetTagPayloadSignedInteger implements Message { writeOptionalField("valueInt64", valueInt64, writeSignedLong(writeBuffer, 64)); // Virtual field (doesn't serialize anything, just makes the value available) - BigInteger actualValue = getActualValue(); + long actualValue = getActualValue(); writeBuffer.writeVirtual("actualValue", actualValue); writeBuffer.popContext("BACnetTagPayloadSignedInteger"); @@ -333,10 +332,10 @@ public class BACnetTagPayloadSignedInteger implements Message { || (isInt64))) { throw new ParseValidationException("unmapped integer length"); } - BigInteger actualValue = + long actualValue = readVirtualField( "actualValue", - BigInteger.class, + long.class, ((isInt8) ? valueInt8 : (((isInt16) diff --git a/plc4j/drivers/bacnet/src/test/java/org/apache/plc4x/java/bacnetip/RandomPackagesTest.java b/plc4j/drivers/bacnet/src/test/java/org/apache/plc4x/java/bacnetip/RandomPackagesTest.java index 643aaecce4..6c2760539d 100644 --- a/plc4j/drivers/bacnet/src/test/java/org/apache/plc4x/java/bacnetip/RandomPackagesTest.java +++ b/plc4j/drivers/bacnet/src/test/java/org/apache/plc4x/java/bacnetip/RandomPackagesTest.java @@ -3580,7 +3580,7 @@ public class RandomPackagesTest { .asInstanceOf(InstanceOfAssertFactories.type(BACnetApplicationTagSignedInteger.class)) .extracting(BACnetApplicationTagSignedInteger::getPayload) .extracting(BACnetTagPayloadSignedInteger::getActualValue) - .isEqualTo(BigInteger.valueOf(0)); + .isEqualTo(0L); assertThat(baCnetConfirmedServiceRequestAtomicReadFileStream) .extracting(BACnetConfirmedServiceRequestAtomicReadFileStream::getRequestOctetCount) .asInstanceOf(InstanceOfAssertFactories.type(BACnetApplicationTagUnsignedInteger.class)) @@ -4235,7 +4235,7 @@ public class RandomPackagesTest { assertEquals(201, baCnetServiceAckReadProperty.getObjectIdentifier().getInstanceNumber()); assertEquals(BACnetPropertyIdentifier.UTC_OFFSET, baCnetServiceAckReadProperty.getPropertyIdentifier().getValue()); BACnetApplicationTagSignedInteger value = ((BACnetConstructedDataUTCOffset) baCnetServiceAckReadProperty.getValues()).getUtcOffset(); - assertEquals(0, value.getPayload().getActualValue().longValue()); + assertEquals(0, value.getPayload().getActualValue()); }), DynamicTest.dynamicTest("No. 47 - Confirmed-REQ readProperty[ 47] device,201 daylights-savings-status", () -> { @@ -5013,7 +5013,7 @@ public class RandomPackagesTest { assertEquals(61, baCnetServiceAckReadProperty.getObjectIdentifier().getInstanceNumber()); assertEquals(BACnetPropertyIdentifier.UTC_OFFSET, baCnetServiceAckReadProperty.getPropertyIdentifier().getValue()); BACnetApplicationTagSignedInteger value = ((BACnetConstructedDataUTCOffset) baCnetServiceAckReadProperty.getValues()).getUtcOffset(); - assertEquals(BigInteger.valueOf(-300), value.getPayload().getActualValue()); + assertEquals(-300L, value.getPayload().getActualValue()); }), DynamicTest.dynamicTest("No. 103 - Confirmed-REQ readProperty[ 75] device,61 daylights-savings-status", () -> { diff --git a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnet-tags.mspec b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnet-tags.mspec index e38f7749e1..040332b615 100644 --- a/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnet-tags.mspec +++ b/protocols/bacnetip/src/main/resources/protocols/bacnetip/bacnet-tags.mspec @@ -55,7 +55,7 @@ ['0x3' *SignedInteger(BACnetTagHeader header) [simple BACnetTagPayloadSignedInteger('header.actualLength') payload ] - [virtual uint 64 actualValue 'payload.actualValue' ] + [virtual int 64 actualValue 'payload.actualValue' ] ] ['0x4' *Real [simple BACnetTagPayloadReal @@ -134,7 +134,7 @@ ['SIGNED_INTEGER' *SignedInteger(BACnetTagHeader header) [simple BACnetTagPayloadSignedInteger('header.actualLength') payload ] - [virtual uint 64 actualValue 'payload.actualValue' ] + [virtual int 64 actualValue 'payload.actualValue' ] ] ['REAL' *Real [simple BACnetTagPayloadReal @@ -249,7 +249,7 @@ [virtual bit isInt64 'actualLength == 8' ] [optional int 64 valueInt64 'isInt64' ] [validation 'isInt8 || isInt16 || isInt24 || isInt32 || isInt40 || isInt48 || isInt56 || isInt64' "unmapped integer length"] - [virtual uint 64 actualValue 'isInt8?valueInt8:(isInt16?valueInt16:(isInt24?valueInt24:(isInt32?valueInt32:(isInt40?valueInt40:(isInt48?valueInt48:(isInt56?valueInt56:valueInt64))))))'] + [virtual int 64 actualValue 'isInt8?valueInt8:(isInt16?valueInt16:(isInt24?valueInt24:(isInt32?valueInt32:(isInt40?valueInt40:(isInt48?valueInt48:(isInt56?valueInt56:valueInt64))))))'] ] [type BACnetTagPayloadReal