This is an automated email from the ASF dual-hosted git repository. cdutz pushed a commit to branch feature/ads-symbol-discovery in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit 85a399075b734fea0170350176201a54657bb5d7 Author: Christofer Dutz <[email protected]> AuthorDate: Wed Aug 24 08:54:32 2022 +0200 chore(plc4j/api): Added new versions of PlcValueType, PlcResponseCode, PlcSubscriptionType. Adjusted PlcValue to return a PlcValueType. --- .../org/apache/plc4x/java/api/value/PlcValue.java | 3 + .../apache/plc4x/java/mock/field/MockPlcValue.java | 6 + .../org/apache/plc4x/nifi/util/Plc4xCommon.java | 16 +- .../java/spi/values/IEC61131ValueHandler.java | 9 +- .../org/apache/plc4x/java/spi/values/PlcBOOL.java | 6 + .../org/apache/plc4x/java/spi/values/PlcBYTE.java | 6 + .../plc4x/java/spi/values/PlcBigDecimal.java | 171 --------------------- .../plc4x/java/spi/values/PlcBigInteger.java | 170 -------------------- .../org/apache/plc4x/java/spi/values/PlcCHAR.java | 6 + .../org/apache/plc4x/java/spi/values/PlcDATE.java | 6 + .../plc4x/java/spi/values/PlcDATE_AND_TIME.java | 6 + .../org/apache/plc4x/java/spi/values/PlcDINT.java | 5 + .../org/apache/plc4x/java/spi/values/PlcDWORD.java | 6 + .../org/apache/plc4x/java/spi/values/PlcINT.java | 6 + .../org/apache/plc4x/java/spi/values/PlcLINT.java | 5 + .../org/apache/plc4x/java/spi/values/PlcLREAL.java | 6 + .../org/apache/plc4x/java/spi/values/PlcLTIME.java | 6 + .../org/apache/plc4x/java/spi/values/PlcLWORD.java | 6 + .../org/apache/plc4x/java/spi/values/PlcList.java | 6 + .../org/apache/plc4x/java/spi/values/PlcNull.java | 6 + .../org/apache/plc4x/java/spi/values/PlcREAL.java | 6 + .../{PlcByteArray.java => PlcRawByteArray.java} | 14 +- .../org/apache/plc4x/java/spi/values/PlcSINT.java | 6 + .../apache/plc4x/java/spi/values/PlcSTRING.java | 6 + .../apache/plc4x/java/spi/values/PlcStruct.java | 6 + .../org/apache/plc4x/java/spi/values/PlcTIME.java | 6 + .../plc4x/java/spi/values/PlcTIME_OF_DAY.java | 6 + .../org/apache/plc4x/java/spi/values/PlcUDINT.java | 5 + .../org/apache/plc4x/java/spi/values/PlcUINT.java | 6 + .../org/apache/plc4x/java/spi/values/PlcULINT.java | 6 + .../org/apache/plc4x/java/spi/values/PlcUSINT.java | 6 + .../org/apache/plc4x/java/spi/values/PlcWCHAR.java | 6 + .../org/apache/plc4x/java/spi/values/PlcWORD.java | 6 + 33 files changed, 174 insertions(+), 368 deletions(-) diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcValue.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcValue.java index 10a25f9ba..85c4bea57 100644 --- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcValue.java +++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/value/PlcValue.java @@ -19,6 +19,7 @@ package org.apache.plc4x.java.api.value; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import org.apache.plc4x.java.api.types.PlcValueType; import java.math.BigDecimal; import java.math.BigInteger; @@ -35,6 +36,8 @@ import java.util.Set; */ @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "className") public interface PlcValue { + + PlcValueType getPlcValueType(); Object getObject(); diff --git a/plc4j/drivers/mock/src/main/java/org/apache/plc4x/java/mock/field/MockPlcValue.java b/plc4j/drivers/mock/src/main/java/org/apache/plc4x/java/mock/field/MockPlcValue.java index 6168946cb..b3017f020 100644 --- a/plc4j/drivers/mock/src/main/java/org/apache/plc4x/java/mock/field/MockPlcValue.java +++ b/plc4j/drivers/mock/src/main/java/org/apache/plc4x/java/mock/field/MockPlcValue.java @@ -19,6 +19,7 @@ package org.apache.plc4x.java.mock.field; import org.apache.plc4x.java.api.exceptions.PlcNotImplementedException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.WriteBuffer; import org.apache.plc4x.java.spi.values.PlcValueAdapter; @@ -30,6 +31,11 @@ public class MockPlcValue extends PlcValueAdapter { this.values = values; } + @Override + public PlcValueType getPlcValueType() { + return null; + } + public Object getObject(int index) { return values[index]; } diff --git a/plc4j/integrations/apache-nifi/nifi-plc4x-processors/src/main/java/org/apache/plc4x/nifi/util/Plc4xCommon.java b/plc4j/integrations/apache-nifi/nifi-plc4x-processors/src/main/java/org/apache/plc4x/nifi/util/Plc4xCommon.java index 88ef4ed78..bfc4cea56 100644 --- a/plc4j/integrations/apache-nifi/nifi-plc4x-processors/src/main/java/org/apache/plc4x/nifi/util/Plc4xCommon.java +++ b/plc4j/integrations/apache-nifi/nifi-plc4x-processors/src/main/java/org/apache/plc4x/nifi/util/Plc4xCommon.java @@ -28,8 +28,6 @@ import org.apache.avro.SchemaBuilder.FieldAssembler; import org.apache.plc4x.java.api.value.PlcValue; import org.apache.plc4x.java.spi.values.PlcBOOL; import org.apache.plc4x.java.spi.values.PlcBYTE; -import org.apache.plc4x.java.spi.values.PlcBigDecimal; -import org.apache.plc4x.java.spi.values.PlcBigInteger; import org.apache.plc4x.java.spi.values.PlcBitString; import org.apache.plc4x.java.spi.values.PlcCHAR; import org.apache.plc4x.java.spi.values.PlcDATE; @@ -78,11 +76,7 @@ public class Plc4xCommon { for (Map.Entry<String, ? extends PlcValue> entry : responseDataStructure.entrySet()) { fieldName = entry.getKey(); - if (entry.getValue() instanceof PlcBigDecimal) { - builder.name(fieldName).type().unionOf().nullBuilder().endNull().and().floatType().endUnion().noDefault(); - }else if (entry.getValue() instanceof PlcBigInteger) { - builder.name(fieldName).type().unionOf().nullBuilder().endNull().and().longType().endUnion().noDefault(); - }else if (entry.getValue() instanceof PlcBitString) { + if (entry.getValue() instanceof PlcBitString) { builder.name(fieldName).type().unionOf().nullBuilder().endNull().and().stringType().endUnion().noDefault(); }else if (entry.getValue() instanceof PlcBOOL) { builder.name(fieldName).type().unionOf().nullBuilder().endNull().and().booleanType().endUnion().noDefault(); @@ -164,10 +158,6 @@ public class Plc4xCommon { PlcValue value = (PlcValue) valueOriginal; if (value.isBoolean() && value instanceof PlcBOOL) return value.getBoolean(); - else if (value.isBigInteger() && value instanceof PlcBigInteger) - return value.getBigInteger(); - else if (value.isBigDecimal() && value instanceof PlcBigDecimal) - return value.getBigDecimal(); else if (value.isByte() && value instanceof PlcBYTE) return value.getByte(); else if (value.isDate() && value instanceof PlcDATE) @@ -210,10 +200,6 @@ public class Plc4xCommon { PlcValue value = (PlcValue) valueOriginal; if(value.isBoolean() && value instanceof PlcBOOL) return value.getBoolean(); - else if (value.isBigInteger() && value instanceof PlcBigInteger) - return value.getBigInteger(); - else if (value.isBigDecimal() && value instanceof PlcBigDecimal) - return value.getBigDecimal(); else if (value.isByte() && value instanceof PlcBYTE) return value.getByte(); else if (value.isDate() && value instanceof PlcDATE) diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/IEC61131ValueHandler.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/IEC61131ValueHandler.java index d9bc321da..e31a803de 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/IEC61131ValueHandler.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/IEC61131ValueHandler.java @@ -24,7 +24,6 @@ import org.apache.plc4x.java.api.model.PlcField; import org.apache.plc4x.java.api.value.PlcValue; import org.apache.plc4x.java.api.value.PlcValueHandler; -import java.math.BigDecimal; import java.math.BigInteger; import java.time.Duration; import java.time.LocalDate; @@ -75,7 +74,7 @@ public class IEC61131ValueHandler implements PlcValueHandler { return PlcSINT.of(value); } if (value instanceof byte[]) { - return PlcByteArray.of(value); + return PlcRawByteArray.of(value); } if (value instanceof Short) { return PlcINT.of(value); @@ -86,18 +85,12 @@ public class IEC61131ValueHandler implements PlcValueHandler { if (value instanceof Long) { return PlcLINT.of(value); } - if (value instanceof BigInteger) { - return new PlcBigInteger((BigInteger) value); - } if (value instanceof Float) { return PlcREAL.of(value); } if (value instanceof Double) { return PlcLREAL.of(value); } - if (value instanceof BigDecimal) { - return new PlcBigDecimal((BigDecimal) value); - } if (value instanceof Duration) { return new PlcTIME((Duration) value); } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBOOL.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBOOL.java index 8da778c82..6f8e4c031 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBOOL.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBOOL.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcInvalidFieldException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -153,6 +154,11 @@ public class PlcBOOL extends PlcIECValue<Boolean> { this.isNullable = true; } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.BOOL; + } + @Override @JsonIgnore public boolean isBoolean() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBYTE.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBYTE.java index 4a5be3dd2..13e9fddca 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBYTE.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBYTE.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcInvalidFieldException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -153,6 +154,11 @@ public class PlcBYTE extends PlcIECValue<Short> { this.isNullable = false; } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.BYTE; + } + @Override @JsonIgnore public boolean isBoolean() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBigDecimal.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBigDecimal.java deleted file mode 100644 index 7f02ea5a1..000000000 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBigDecimal.java +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.plc4x.java.spi.values; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import org.apache.plc4x.java.spi.generation.SerializationException; -import org.apache.plc4x.java.spi.generation.WriteBuffer; - -import java.math.BigDecimal; -import java.math.BigInteger; - -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "className") -public class PlcBigDecimal extends PlcSimpleValue<BigDecimal> { - - @JsonCreator(mode = JsonCreator.Mode.PROPERTIES) - public PlcBigDecimal(@JsonProperty("value") BigDecimal value) { - super(value, true); - } - - @Override - @JsonIgnore - public boolean isBoolean() { - return true; - } - - @Override - @JsonIgnore - public boolean getBoolean() { - return (value != null) && !value.equals(BigDecimal.ZERO); - } - - @Override - @JsonIgnore - public boolean isByte() { - return (value != null) && (value.compareTo(BigDecimal.valueOf(Byte.MAX_VALUE)) <= 0) && (value.compareTo(BigDecimal.valueOf(Byte.MIN_VALUE)) >= 0); - } - - @Override - @JsonIgnore - public byte getByte() { - return value.byteValue(); - } - - @Override - @JsonIgnore - public boolean isShort() { - return (value != null) && (value.compareTo(BigDecimal.valueOf(Short.MAX_VALUE)) <= 0) && (value.compareTo(BigDecimal.valueOf(Short.MIN_VALUE)) >= 0); - } - - @Override - @JsonIgnore - public short getShort() { - return value.shortValue(); - } - - @Override - @JsonIgnore - public boolean isInteger() { - return (value != null) && (value.compareTo(BigDecimal.valueOf(Integer.MAX_VALUE)) <= 0) && (value.compareTo(BigDecimal.valueOf(Integer.MIN_VALUE)) >= 0); - } - - @Override - @JsonIgnore - public int getInteger() { - return value.intValue(); - } - - @Override - @JsonIgnore - public boolean isLong() { - return (value != null) && (value.compareTo(BigDecimal.valueOf(Long.MAX_VALUE)) <= 0) && (value.compareTo(BigDecimal.valueOf(Long.MIN_VALUE)) >= 0); - } - - @Override - @JsonIgnore - public long getLong() { - return value.longValue(); - } - - @Override - @JsonIgnore - public boolean isBigInteger() { - return true; - } - - @Override - @JsonIgnore - public BigInteger getBigInteger() { - return value.toBigInteger(); - } - - @Override - @JsonIgnore - public boolean isFloat() { - return true; - } - - @Override - @JsonIgnore - public float getFloat() { - return value.floatValue(); - } - - @Override - @JsonIgnore - public boolean isDouble() { - return true; - } - - @Override - @JsonIgnore - public double getDouble() { - return value.doubleValue(); - } - - @Override - @JsonIgnore - public boolean isBigDecimal() { - return true; - } - - @Override - @JsonIgnore - public BigDecimal getBigDecimal() { - return value; - } - - @Override - @JsonIgnore - public boolean isString() { - return true; - } - - @Override - @JsonIgnore - public String getString() { - return toString(); - } - - @Override - @JsonIgnore - public String toString() { - return value.toString(); - } - - @Override - public void serialize(WriteBuffer writeBuffer) throws SerializationException { - int scale = 32; - writeBuffer.writeBigDecimal(getClass().getSimpleName(), value.unscaledValue().bitLength() + scale, value); - } - -} diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBigInteger.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBigInteger.java deleted file mode 100644 index 38345ebbf..000000000 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcBigInteger.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.plc4x.java.spi.values; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import org.apache.plc4x.java.spi.generation.SerializationException; -import org.apache.plc4x.java.spi.generation.WriteBuffer; - -import java.math.BigDecimal; -import java.math.BigInteger; - -@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "className") -public class PlcBigInteger extends PlcSimpleValue<BigInteger> { - - @JsonCreator(mode = JsonCreator.Mode.PROPERTIES) - public PlcBigInteger(@JsonProperty("value") BigInteger value) { - super(value, true); - } - - @Override - @JsonIgnore - public boolean isBoolean() { - return true; - } - - @Override - @JsonIgnore - public boolean getBoolean() { - return (value != null) && !value.equals(BigInteger.ZERO); - } - - @Override - @JsonIgnore - public boolean isByte() { - return (value != null) && (value.compareTo(BigInteger.valueOf(Byte.MAX_VALUE)) <= 0) && (value.compareTo(BigInteger.valueOf(Byte.MIN_VALUE)) >= 0); - } - - @Override - @JsonIgnore - public byte getByte() { - return value.byteValue(); - } - - @Override - @JsonIgnore - public boolean isShort() { - return (value != null) && (value.compareTo(BigInteger.valueOf(Short.MAX_VALUE)) <= 0) && (value.compareTo(BigInteger.valueOf(Short.MIN_VALUE)) >= 0); - } - - @Override - @JsonIgnore - public short getShort() { - return value.shortValue(); - } - - @Override - @JsonIgnore - public boolean isInteger() { - return (value != null) && (value.compareTo(BigInteger.valueOf(Integer.MAX_VALUE)) <= 0) && (value.compareTo(BigInteger.valueOf(Integer.MIN_VALUE)) >= 0); - } - - @Override - @JsonIgnore - public int getInteger() { - return value.intValue(); - } - - @Override - @JsonIgnore - public boolean isLong() { - return (value != null) && (value.compareTo(BigInteger.valueOf(Long.MAX_VALUE)) <= 0) && (value.compareTo(BigInteger.valueOf(Long.MIN_VALUE)) >= 0); - } - - @Override - @JsonIgnore - public long getLong() { - return value.longValue(); - } - - @Override - @JsonIgnore - public boolean isBigInteger() { - return true; - } - - @Override - @JsonIgnore - public BigInteger getBigInteger() { - return value; - } - - @Override - @JsonIgnore - public boolean isFloat() { - return true; - } - - @Override - @JsonIgnore - public float getFloat() { - return value.floatValue(); - } - - @Override - @JsonIgnore - public boolean isDouble() { - return true; - } - - @Override - @JsonIgnore - public double getDouble() { - return value.doubleValue(); - } - - @Override - @JsonIgnore - public boolean isBigDecimal() { - return true; - } - - @Override - @JsonIgnore - public BigDecimal getBigDecimal() { - return new BigDecimal(value); - } - - @Override - @JsonIgnore - public boolean isString() { - return true; - } - - @Override - @JsonIgnore - public String getString() { - return toString(); - } - - @Override - @JsonIgnore - public String toString() { - return value.toString(); - } - - @Override - public void serialize(WriteBuffer writeBuffer) throws SerializationException { - writeBuffer.writeBigInteger(getClass().getSimpleName(), value.bitLength(), value); - } - -} diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcCHAR.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcCHAR.java index 51379ab44..534a92628 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcCHAR.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcCHAR.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcInvalidFieldException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -189,6 +190,11 @@ public class PlcCHAR extends PlcIECValue<Short> { } } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.CHAR; + } + @Override @JsonIgnore public boolean isBoolean() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE.java index c9c9ad8b5..25d2fef8a 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcRuntimeException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -64,6 +65,11 @@ public class PlcDATE extends PlcSimpleValue<LocalDate> { super(LocalDateTime.ofInstant(Instant.ofEpochSecond(value), ZoneId.systemDefault()).toLocalDate(), true); } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.DATE; + } + @Override @JsonIgnore public boolean isString() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE_AND_TIME.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE_AND_TIME.java index 74f7646bb..0227160f4 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE_AND_TIME.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDATE_AND_TIME.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcRuntimeException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -53,6 +54,11 @@ public class PlcDATE_AND_TIME extends PlcSimpleValue<LocalDateTime> { Instant.ofEpochSecond(value), ZoneId.of("UTC")), true); } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.DATE_AND_TIME; + } + @Override @JsonIgnore public boolean isString() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDINT.java index 367c20f01..60d7de564 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDINT.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDINT.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcInvalidFieldException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -135,6 +136,10 @@ public class PlcDINT extends PlcIECValue<Integer> { this.isNullable = false; } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.DINT; + } @Override @JsonIgnore diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDWORD.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDWORD.java index cc8a99a37..7e898b75f 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDWORD.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcDWORD.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcInvalidFieldException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -153,6 +154,11 @@ public class PlcDWORD extends PlcIECValue<Long> { this.isNullable = false; } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.DWORD; + } + @Override @JsonIgnore public boolean isBoolean() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcINT.java index 8f9d1b38e..93f11acc2 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcINT.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcINT.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcInvalidFieldException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -139,6 +140,11 @@ public class PlcINT extends PlcIECValue<Short> { this.isNullable = false; } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.INT; + } + @Override @JsonIgnore public boolean isBoolean() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLINT.java index ce8f48074..60334edc5 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLINT.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLINT.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcInvalidFieldException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -132,6 +133,10 @@ public class PlcLINT extends PlcIECValue<Long> { this.isNullable = false; } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.LINT; + } @Override @JsonIgnore diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLREAL.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLREAL.java index 19d7cfa63..273e55394 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLREAL.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLREAL.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcInvalidFieldException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -122,6 +123,11 @@ public class PlcLREAL extends PlcIECValue<Double> { this.isNullable = false; } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.LREAL; + } + @Override @JsonIgnore public boolean isBoolean() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLTIME.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLTIME.java index 7e097c2e1..80645d465 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLTIME.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLTIME.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcRuntimeException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -62,6 +63,11 @@ public class PlcLTIME extends PlcSimpleValue<Duration> { super(Duration.of(value.longValue(), ChronoUnit.NANOS), true); } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.LTIME; + } + @Override @JsonIgnore public boolean isString() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLWORD.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLWORD.java index 0f38b303d..b4e9819da 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLWORD.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcLWORD.java @@ -21,6 +21,7 @@ package org.apache.plc4x.java.spi.values; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcInvalidFieldException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -160,6 +161,11 @@ public class PlcLWORD extends PlcIECValue<BigInteger> { } } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.LWORD; + } + @Override @JsonIgnore public boolean isBoolean() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcList.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcList.java index 0798ecd66..0d6871c78 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcList.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcList.java @@ -20,6 +20,7 @@ package org.apache.plc4x.java.spi.values; import com.fasterxml.jackson.annotation.*; import org.apache.plc4x.java.api.exceptions.PlcRuntimeException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.api.value.PlcValue; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -49,6 +50,11 @@ public class PlcList extends PlcValueAdapter { this.listItems = Collections.unmodifiableList(safelist); } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.List; + } + public void add(PlcValue value) { listItems.add(value); } diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcNull.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcNull.java index 6b9bd866b..81306aa93 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcNull.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcNull.java @@ -18,6 +18,7 @@ */ package org.apache.plc4x.java.spi.values; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.api.value.PlcValue; import java.math.BigDecimal; @@ -32,6 +33,11 @@ import java.util.Set; public class PlcNull implements PlcValue { + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.NULL; + } + @Override public Object getObject() { return null; diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcREAL.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcREAL.java index a6a78135f..31f10a857 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcREAL.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcREAL.java @@ -20,6 +20,7 @@ package org.apache.plc4x.java.spi.values; import com.fasterxml.jackson.annotation.*; import org.apache.plc4x.java.api.exceptions.PlcInvalidFieldException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -122,6 +123,11 @@ public class PlcREAL extends PlcIECValue<Float> { this.isNullable = false; } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.REAL; + } + @Override @JsonIgnore public boolean isBoolean() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcByteArray.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcRawByteArray.java similarity index 82% rename from plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcByteArray.java rename to plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcRawByteArray.java index 2efd638f7..b8557ec99 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcByteArray.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcRawByteArray.java @@ -23,25 +23,31 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.commons.codec.binary.Hex; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, property = "className") -public class PlcByteArray extends PlcIECValue<byte[]> { +public class PlcRawByteArray extends PlcIECValue<byte[]> { - public static PlcByteArray of(Object value) { + public static PlcRawByteArray of(Object value) { if (value instanceof byte[]) { - return new PlcByteArray((byte[]) value); + return new PlcRawByteArray((byte[]) value); } throw new IllegalArgumentException("Only byte[] supported here"); } @JsonCreator(mode = JsonCreator.Mode.PROPERTIES) - public PlcByteArray(@JsonProperty("value")byte[] value) { + public PlcRawByteArray(@JsonProperty("value")byte[] value) { this.value = value; this.isNullable = false; } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.RAW_BYTE_ARRAY; + } + @Override @JsonIgnore public String toString() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSINT.java index 322e54106..00438b10d 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSINT.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSINT.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcInvalidFieldException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -141,6 +142,11 @@ public class PlcSINT extends PlcIECValue<Byte> { this.isNullable = false; } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.SINT; + } + @Override @JsonIgnore public boolean isBoolean() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSTRING.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSTRING.java index 5fd5eed35..b61f455ae 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSTRING.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcSTRING.java @@ -22,6 +22,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -50,6 +51,11 @@ public class PlcSTRING extends PlcSimpleValue<String> { } } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.STRING; + } + @Override @JsonIgnore public boolean isString() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcStruct.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcStruct.java index 603925e03..055ffb481 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcStruct.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcStruct.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcRuntimeException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.api.value.PlcValue; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -43,6 +44,11 @@ public class PlcStruct extends PlcValueAdapter { this.map = Collections.unmodifiableMap(map); } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.Struct; + } + @Override @JsonIgnore public int getLength() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME.java index f77f7d07b..72e7bd623 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcRuntimeException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -57,6 +58,11 @@ public class PlcTIME extends PlcSimpleValue<Duration> { super(Duration.of(value, ChronoUnit.MILLIS), true); } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.TIME; + } + @Override @JsonIgnore public boolean isString() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME_OF_DAY.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME_OF_DAY.java index 651764b39..90bc0c1a9 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME_OF_DAY.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcTIME_OF_DAY.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcRuntimeException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -51,6 +52,11 @@ public class PlcTIME_OF_DAY extends PlcSimpleValue<LocalTime> { super(LocalTime.ofNanoOfDay(value * 1000000), true); } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.TIME_OF_DAY; + } + @Override @JsonIgnore public boolean isString() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUDINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUDINT.java index 43a64f74e..e0056cdad 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUDINT.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUDINT.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcInvalidFieldException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -154,6 +155,10 @@ public class PlcUDINT extends PlcIECValue<Long> { this.isNullable = false; } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.UDINT; + } @Override @JsonIgnore diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUINT.java index 29cdd5e94..a3f3cb4e3 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUINT.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUINT.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcInvalidFieldException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -148,6 +149,11 @@ public class PlcUINT extends PlcIECValue<Integer> { this.isNullable = false; } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.UINT; + } + @Override @JsonIgnore public boolean isBoolean() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcULINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcULINT.java index 730b86a4e..a4a0e61e3 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcULINT.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcULINT.java @@ -21,6 +21,7 @@ package org.apache.plc4x.java.spi.values; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcInvalidFieldException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -159,6 +160,11 @@ public class PlcULINT extends PlcIECValue<BigInteger> { } } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.ULINT; + } + @Override @JsonIgnore public boolean isBoolean() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUSINT.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUSINT.java index f32200dcd..0ed0f8d44 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUSINT.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcUSINT.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcInvalidFieldException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -151,6 +152,11 @@ public class PlcUSINT extends PlcIECValue<Short> { this.isNullable = false; } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.USINT; + } + @Override @JsonIgnore public boolean isBoolean() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWCHAR.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWCHAR.java index d853991c3..9af567db9 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWCHAR.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWCHAR.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcInvalidFieldException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -164,6 +165,11 @@ public class PlcWCHAR extends PlcIECValue<Integer> { this.isNullable = false; } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.WCHAR; + } + @Override @JsonIgnore public boolean isBoolean() { diff --git a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWORD.java b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWORD.java index b5ee2cab2..e868e9378 100644 --- a/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWORD.java +++ b/plc4j/spi/src/main/java/org/apache/plc4x/java/spi/values/PlcWORD.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.apache.plc4x.java.api.exceptions.PlcInvalidFieldException; +import org.apache.plc4x.java.api.types.PlcValueType; import org.apache.plc4x.java.spi.generation.SerializationException; import org.apache.plc4x.java.spi.generation.WriteBuffer; @@ -149,6 +150,11 @@ public class PlcWORD extends PlcIECValue<Integer> { this.isNullable = false; } + @Override + public PlcValueType getPlcValueType() { + return PlcValueType.WORD; + } + @Override @JsonIgnore public boolean isBoolean() {
