You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by cd...@apache.org on 2018/10/18 12:59:37 UTC
[incubator-plc4x] 01/02: - Made the FieldItems throw Exceptions in
case of incompatible data types and values.
This is an automated email from the ASF dual-hosted git repository.
cdutz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git
commit 5301025d40c67b59a9c87fe6bf794ab2ead02dd0
Author: Christofer Dutz <ch...@c-ware.de>
AuthorDate: Thu Oct 18 14:59:17 2018 +0200
- Made the FieldItems throw Exceptions in case of incompatible data types and values.
---
.../PlcIncompatibleDatatypeException.java | 28 +++++++++
.../messages/items/DefaultBigDecimalFieldItem.java | 71 +++++++++++----------
.../messages/items/DefaultBigIntegerFieldItem.java | 73 +++++++++++-----------
.../messages/items/DefaultBooleanFieldItem.java | 8 ++-
.../messages/items/DefaultByteArrayFieldItem.java | 5 ++
.../base/messages/items/DefaultByteFieldItem.java | 71 +++++++++++----------
.../messages/items/DefaultDoubleFieldItem.java | 69 ++++++++++----------
.../base/messages/items/DefaultFloatFieldItem.java | 69 ++++++++++----------
.../messages/items/DefaultIntegerFieldItem.java | 71 +++++++++++----------
.../messages/items/DefaultLocalDateFieldItem.java | 8 ++-
.../items/DefaultLocalDateTimeFieldItem.java | 20 +++---
.../messages/items/DefaultLocalTimeFieldItem.java | 8 ++-
.../base/messages/items/DefaultLongFieldItem.java | 71 +++++++++++----------
.../base/messages/items/DefaultShortFieldItem.java | 71 +++++++++++----------
.../messages/items/DefaultStringFieldItem.java | 8 ++-
.../plc4x/java/base/messages/items/FieldItem.java | 31 ++++-----
16 files changed, 382 insertions(+), 300 deletions(-)
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/exceptions/PlcIncompatibleDatatypeException.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/exceptions/PlcIncompatibleDatatypeException.java
new file mode 100644
index 0000000..cb779df
--- /dev/null
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/exceptions/PlcIncompatibleDatatypeException.java
@@ -0,0 +1,28 @@
+/*
+ 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
+
+ http://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.api.exceptions;
+
+public class PlcIncompatibleDatatypeException extends PlcRuntimeException {
+
+ public PlcIncompatibleDatatypeException(Class<?> datatype, int index) {
+ super("Incompatible Datatype " + datatype.getName() + " at index " + index);
+ }
+
+}
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultBigDecimalFieldItem.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultBigDecimalFieldItem.java
index 17a5ed7..2b9466c 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultBigDecimalFieldItem.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultBigDecimalFieldItem.java
@@ -18,6 +18,8 @@ under the License.
*/
package org.apache.plc4x.java.base.messages.items;
+import org.apache.plc4x.java.api.exceptions.PlcIncompatibleDatatypeException;
+
import java.math.BigDecimal;
import java.math.BigInteger;
@@ -39,10 +41,10 @@ public class DefaultBigDecimalFieldItem extends FieldItem<BigDecimal> {
@Override
public Boolean getBoolean(int index) {
- if (isValidBoolean(index)) {
- return getValue(index).compareTo(BigDecimal.ZERO) != 0;
+ if (!isValidBoolean(index)) {
+ throw new PlcIncompatibleDatatypeException(Boolean.class, index);
}
- return null;
+ return getValue(index).compareTo(BigDecimal.ZERO) != 0;
}
@Override
@@ -55,10 +57,10 @@ public class DefaultBigDecimalFieldItem extends FieldItem<BigDecimal> {
@Override
public Byte getByte(int index) {
- if (isValidByte(index)) {
- return getValue(index).byteValue();
+ if (!isValidByte(index)) {
+ throw new PlcIncompatibleDatatypeException(Byte.class, index);
}
- return null;
+ return getValue(index).byteValue();
}
@Override
@@ -71,10 +73,10 @@ public class DefaultBigDecimalFieldItem extends FieldItem<BigDecimal> {
@Override
public Short getShort(int index) {
- if (isValidShort(index)) {
- return getValue(index).shortValue();
+ if (!isValidShort(index)) {
+ throw new PlcIncompatibleDatatypeException(Short.class, index);
}
- return null;
+ return getValue(index).shortValue();
}
@Override
@@ -87,22 +89,10 @@ public class DefaultBigDecimalFieldItem extends FieldItem<BigDecimal> {
@Override
public Integer getInteger(int index) {
- if (isValidInteger(index)) {
- return getValue(index).intValue();
- }
- return null;
- }
-
- public boolean isValidBigInteger(int index) {
- BigDecimal value = getValue(index);
- return value != null;
- }
-
- public BigInteger getBigInteger(int index) {
- if (isValidBigInteger(index)) {
- return getValue(index).toBigInteger();
+ if (!isValidInteger(index)) {
+ throw new PlcIncompatibleDatatypeException(Integer.class, index);
}
- return null;
+ return getValue(index).intValue();
}
@Override
@@ -115,10 +105,22 @@ public class DefaultBigDecimalFieldItem extends FieldItem<BigDecimal> {
@Override
public Long getLong(int index) {
- if (isValidLong(index)) {
- return getValue(index).longValue();
+ if (!isValidLong(index)) {
+ throw new PlcIncompatibleDatatypeException(Long.class, index);
}
- return null;
+ return getValue(index).longValue();
+ }
+
+ public boolean isValidBigInteger(int index) {
+ BigDecimal value = getValue(index);
+ return value != null;
+ }
+
+ public BigInteger getBigInteger(int index) {
+ if (!isValidBigInteger(index)) {
+ throw new PlcIncompatibleDatatypeException(BigInteger.class, index);
+ }
+ return getValue(index).toBigInteger();
}
@Override
@@ -131,10 +133,10 @@ public class DefaultBigDecimalFieldItem extends FieldItem<BigDecimal> {
@Override
public Float getFloat(int index) {
- if (isValidFloat(index)) {
- return getValue(index).floatValue();
+ if (!isValidFloat(index)) {
+ throw new PlcIncompatibleDatatypeException(Float.class, index);
}
- return null;
+ return getValue(index).floatValue();
}
@Override
@@ -147,10 +149,10 @@ public class DefaultBigDecimalFieldItem extends FieldItem<BigDecimal> {
@Override
public Double getDouble(int index) {
- if (isValidDouble(index)) {
- return getValue(index).doubleValue();
+ if (!isValidDouble(index)) {
+ throw new PlcIncompatibleDatatypeException(Double.class, index);
}
- return null;
+ return getValue(index).doubleValue();
}
public boolean isValidBigDecimal(int index) {
@@ -158,6 +160,9 @@ public class DefaultBigDecimalFieldItem extends FieldItem<BigDecimal> {
}
public BigDecimal getBigDecimal(int index) {
+ if(!isValidBigDecimal(index)) {
+ throw new PlcIncompatibleDatatypeException(BigDecimal.class, index);
+ }
return getValue(index);
}
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultBigIntegerFieldItem.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultBigIntegerFieldItem.java
index 9e30774..08decfb 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultBigIntegerFieldItem.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultBigIntegerFieldItem.java
@@ -18,6 +18,8 @@ under the License.
*/
package org.apache.plc4x.java.base.messages.items;
+import org.apache.plc4x.java.api.exceptions.PlcIncompatibleDatatypeException;
+
import java.math.BigDecimal;
import java.math.BigInteger;
@@ -39,10 +41,10 @@ public class DefaultBigIntegerFieldItem extends FieldItem<BigInteger> {
@Override
public Boolean getBoolean(int index) {
- if (isValidBoolean(index)) {
- return getValue(index).compareTo(BigInteger.ZERO) == 0;
+ if (!isValidBoolean(index)) {
+ throw new PlcIncompatibleDatatypeException(Boolean.class, index);
}
- return null;
+ return getValue(index).compareTo(BigInteger.ZERO) == 0;
}
@Override
@@ -54,10 +56,10 @@ public class DefaultBigIntegerFieldItem extends FieldItem<BigInteger> {
@Override
public Byte getByte(int index) {
- if (isValidByte(index)) {
- return getValue(index).byteValue();
+ if (!isValidByte(index)) {
+ throw new PlcIncompatibleDatatypeException(Byte.class, index);
}
- return null;
+ return getValue(index).byteValue();
}
@Override
@@ -69,10 +71,10 @@ public class DefaultBigIntegerFieldItem extends FieldItem<BigInteger> {
@Override
public Short getShort(int index) {
- if (isValidShort(index)) {
- return getValue(index).shortValue();
+ if (!isValidShort(index)) {
+ throw new PlcIncompatibleDatatypeException(Short.class, index);
}
- return null;
+ return getValue(index).shortValue();
}
@Override
@@ -84,23 +86,10 @@ public class DefaultBigIntegerFieldItem extends FieldItem<BigInteger> {
@Override
public Integer getInteger(int index) {
- if (isValidInteger(index)) {
- BigInteger value = getValue(index);
- return value.intValue();
- }
- return null;
- }
-
- public boolean isValidBigInteger(int index) {
- BigInteger value = getValue(index);
- return value != null;
- }
-
- public BigInteger getBigInteger(int index) {
- if (isValidBigInteger(index)) {
- return getValue(index);
+ if (!isValidInteger(index)) {
+ throw new PlcIncompatibleDatatypeException(Integer.class, index);
}
- return null;
+ return getValue(index).intValue();
}
@Override
@@ -112,11 +101,22 @@ public class DefaultBigIntegerFieldItem extends FieldItem<BigInteger> {
@Override
public Long getLong(int index) {
- if (isValidLong(index)) {
- BigInteger value = getValue(index);
- return value.longValue();
+ if (!isValidLong(index)) {
+ throw new PlcIncompatibleDatatypeException(Long.class, index);
}
- return null;
+ return getValue(index).longValue();
+ }
+
+ public boolean isValidBigInteger(int index) {
+ BigInteger value = getValue(index);
+ return value != null;
+ }
+
+ public BigInteger getBigInteger(int index) {
+ if (!isValidBigInteger(index)) {
+ throw new PlcIncompatibleDatatypeException(BigInteger.class, index);
+ }
+ return getValue(index);
}
@Override
@@ -132,10 +132,10 @@ public class DefaultBigIntegerFieldItem extends FieldItem<BigInteger> {
@Override
public Float getFloat(int index) {
- if (isValidFloat(index)) {
- return getValue(index).floatValue();
+ if (!isValidFloat(index)) {
+ throw new PlcIncompatibleDatatypeException(Float.class, index);
}
- return null;
+ return getValue(index).floatValue();
}
@Override
@@ -151,10 +151,10 @@ public class DefaultBigIntegerFieldItem extends FieldItem<BigInteger> {
@Override
public Double getDouble(int index) {
- if (isValidDouble(index)) {
- return getValue(index).doubleValue();
+ if (!isValidDouble(index)) {
+ throw new PlcIncompatibleDatatypeException(Double.class, index);
}
- return null;
+ return getValue(index).doubleValue();
}
public boolean isValidBigDecimal(int index) {
@@ -162,6 +162,9 @@ public class DefaultBigIntegerFieldItem extends FieldItem<BigInteger> {
}
public BigDecimal getBigDecimal(int index) {
+ if(!isValidBigDecimal(index)) {
+ throw new PlcIncompatibleDatatypeException(BigDecimal.class, index);
+ }
return new BigDecimal(getValue(index));
}
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultBooleanFieldItem.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultBooleanFieldItem.java
index abb02b4..0e85bed 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultBooleanFieldItem.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultBooleanFieldItem.java
@@ -18,6 +18,8 @@ under the License.
*/
package org.apache.plc4x.java.base.messages.items;
+import org.apache.plc4x.java.api.exceptions.PlcIncompatibleDatatypeException;
+
import java.util.BitSet;
public class DefaultBooleanFieldItem extends FieldItem<Boolean> {
@@ -38,10 +40,10 @@ public class DefaultBooleanFieldItem extends FieldItem<Boolean> {
@Override
public Boolean getBoolean(int index) {
- if (isValidBoolean(index)) {
- return getValue(index);
+ if (!isValidBoolean(index)) {
+ throw new PlcIncompatibleDatatypeException(Boolean.class, index);
}
- return null;
+ return getValue(index);
}
@Override
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultByteArrayFieldItem.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultByteArrayFieldItem.java
index 0aeac4f..b0732f5 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultByteArrayFieldItem.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultByteArrayFieldItem.java
@@ -18,6 +18,8 @@ under the License.
*/
package org.apache.plc4x.java.base.messages.items;
+import org.apache.plc4x.java.api.exceptions.PlcIncompatibleDatatypeException;
+
import java.util.Objects;
public class DefaultByteArrayFieldItem extends FieldItem<Byte[]> {
@@ -42,6 +44,9 @@ public class DefaultByteArrayFieldItem extends FieldItem<Byte[]> {
@Override
public Byte[] getByteArray(int index) {
+ if(!isValidByteArray(index)) {
+ throw new PlcIncompatibleDatatypeException(Byte[].class, index);
+ }
return getValue(index);
}
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultByteFieldItem.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultByteFieldItem.java
index eec3ad7..be6581e 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultByteFieldItem.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultByteFieldItem.java
@@ -18,6 +18,8 @@ under the License.
*/
package org.apache.plc4x.java.base.messages.items;
+import org.apache.plc4x.java.api.exceptions.PlcIncompatibleDatatypeException;
+
import java.math.BigDecimal;
import java.math.BigInteger;
@@ -39,10 +41,10 @@ public class DefaultByteFieldItem extends FieldItem<Byte> {
@Override
public Boolean getBoolean(int index) {
- if (isValidBoolean(index)) {
- return getValue(index) != 0L;
+ if (!isValidBoolean(index)) {
+ throw new PlcIncompatibleDatatypeException(Boolean.class, index);
}
- return null;
+ return getValue(index) != 0L;
}
@Override
@@ -53,10 +55,10 @@ public class DefaultByteFieldItem extends FieldItem<Byte> {
@Override
public Byte getByte(int index) {
- if (isValidByte(index)) {
- return getValue(index);
+ if (!isValidByte(index)) {
+ throw new PlcIncompatibleDatatypeException(Byte.class, index);
}
- return null;
+ return getValue(index);
}
@Override
@@ -67,10 +69,10 @@ public class DefaultByteFieldItem extends FieldItem<Byte> {
@Override
public Short getShort(int index) {
- if (isValidShort(index)) {
- return getValue(index).shortValue();
+ if (!isValidShort(index)) {
+ throw new PlcIncompatibleDatatypeException(Short.class, index);
}
- return null;
+ return getValue(index).shortValue();
}
@Override
@@ -81,22 +83,10 @@ public class DefaultByteFieldItem extends FieldItem<Byte> {
@Override
public Integer getInteger(int index) {
- if (isValidInteger(index)) {
- return getValue(index).intValue();
- }
- return null;
- }
-
- public boolean isValidBigInteger(int index) {
- Byte value = getValue(index);
- return value != null;
- }
-
- public BigInteger getBigInteger(int index) {
- if (isValidBigInteger(index)) {
- return BigInteger.valueOf(getValue(index));
+ if (!isValidInteger(index)) {
+ throw new PlcIncompatibleDatatypeException(Integer.class, index);
}
- return null;
+ return getValue(index).intValue();
}
@Override
@@ -106,10 +96,22 @@ public class DefaultByteFieldItem extends FieldItem<Byte> {
@Override
public Long getLong(int index) {
- if (isValidFloat(index)) {
- return getValue(index).longValue();
+ if (!isValidLong(index)) {
+ throw new PlcIncompatibleDatatypeException(Long.class, index);
}
- return null;
+ return getValue(index).longValue();
+ }
+
+ public boolean isValidBigInteger(int index) {
+ Byte value = getValue(index);
+ return value != null;
+ }
+
+ public BigInteger getBigInteger(int index) {
+ if (!isValidBigInteger(index)) {
+ throw new PlcIncompatibleDatatypeException(BigInteger.class, index);
+ }
+ return BigInteger.valueOf(getValue(index));
}
@Override
@@ -120,10 +122,10 @@ public class DefaultByteFieldItem extends FieldItem<Byte> {
@Override
public Float getFloat(int index) {
- if (isValidFloat(index)) {
- return getValue(index).floatValue();
+ if (!isValidFloat(index)) {
+ throw new PlcIncompatibleDatatypeException(Float.class, index);
}
- return null;
+ return getValue(index).floatValue();
}
@Override
@@ -134,10 +136,10 @@ public class DefaultByteFieldItem extends FieldItem<Byte> {
@Override
public Double getDouble(int index) {
- if (isValidDouble(index)) {
- return getValue(index).doubleValue();
+ if (!isValidDouble(index)) {
+ throw new PlcIncompatibleDatatypeException(Double.class, index);
}
- return null;
+ return getValue(index).doubleValue();
}
public boolean isValidBigDecimal(int index) {
@@ -145,6 +147,9 @@ public class DefaultByteFieldItem extends FieldItem<Byte> {
}
public BigDecimal getBigDecimal(int index) {
+ if(!isValidBigDecimal(index)) {
+ throw new PlcIncompatibleDatatypeException(BigDecimal.class, index);
+ }
return new BigDecimal(getValue(index));
}
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultDoubleFieldItem.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultDoubleFieldItem.java
index 5019ca9..c010cc5 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultDoubleFieldItem.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultDoubleFieldItem.java
@@ -18,6 +18,8 @@ under the License.
*/
package org.apache.plc4x.java.base.messages.items;
+import org.apache.plc4x.java.api.exceptions.PlcIncompatibleDatatypeException;
+
import java.math.BigDecimal;
import java.math.BigInteger;
@@ -39,10 +41,10 @@ public class DefaultDoubleFieldItem extends FieldItem<Double> {
@Override
public Boolean getBoolean(int index) {
- if (isValidBoolean(index)) {
- return getValue(index) != 0L;
+ if (!isValidBoolean(index)) {
+ throw new PlcIncompatibleDatatypeException(Boolean.class, index);
}
- return null;
+ return getValue(index) != 0L;
}
@Override
@@ -53,10 +55,10 @@ public class DefaultDoubleFieldItem extends FieldItem<Double> {
@Override
public Byte getByte(int index) {
- if (isValidByte(index)) {
- return getValue(index).byteValue();
+ if (!isValidByte(index)) {
+ throw new PlcIncompatibleDatatypeException(Byte.class, index);
}
- return null;
+ return getValue(index).byteValue();
}
@Override
@@ -67,10 +69,10 @@ public class DefaultDoubleFieldItem extends FieldItem<Double> {
@Override
public Short getShort(int index) {
- if (isValidShort(index)) {
- return getValue(index).shortValue();
+ if (!isValidShort(index)) {
+ throw new PlcIncompatibleDatatypeException(Short.class, index);
}
- return null;
+ return getValue(index).shortValue();
}
@Override
@@ -81,36 +83,36 @@ public class DefaultDoubleFieldItem extends FieldItem<Double> {
@Override
public Integer getInteger(int index) {
- if (isValidInteger(index)) {
- return getValue(index).intValue();
+ if (!isValidInteger(index)) {
+ throw new PlcIncompatibleDatatypeException(Integer.class, index);
}
- return null;
+ return getValue(index).intValue();
}
- public boolean isValidBigInteger(int index) {
+ @Override
+ public boolean isValidLong(int index) {
Double value = getValue(index);
- return value != null;
+ return (value != null) && (value <= Long.MAX_VALUE) && (value >= Long.MIN_VALUE);
}
- public BigInteger getBigInteger(int index) {
- if (isValidBigInteger(index)) {
- return BigInteger.valueOf(getValue(index).longValue());
+ @Override
+ public Long getLong(int index) {
+ if (!isValidLong(index)) {
+ throw new PlcIncompatibleDatatypeException(Long.class, index);
}
- return null;
+ return getValue(index).longValue();
}
- @Override
- public boolean isValidLong(int index) {
+ public boolean isValidBigInteger(int index) {
Double value = getValue(index);
- return (value != null) && (value <= Long.MAX_VALUE) && (value >= Long.MIN_VALUE);
+ return value != null;
}
- @Override
- public Long getLong(int index) {
- if (isValidLong(index)) {
- return getValue(index).longValue();
+ public BigInteger getBigInteger(int index) {
+ if (!isValidBigInteger(index)) {
+ throw new PlcIncompatibleDatatypeException(BigInteger.class, index);
}
- return null;
+ return BigInteger.valueOf(getValue(index).longValue());
}
@Override
@@ -121,10 +123,10 @@ public class DefaultDoubleFieldItem extends FieldItem<Double> {
@Override
public Float getFloat(int index) {
- if (isValidFloat(index)) {
- return getValue(index).floatValue();
+ if (!isValidFloat(index)) {
+ throw new PlcIncompatibleDatatypeException(Float.class, index);
}
- return null;
+ return getValue(index).floatValue();
}
@Override
@@ -134,10 +136,10 @@ public class DefaultDoubleFieldItem extends FieldItem<Double> {
@Override
public Double getDouble(int index) {
- if (isValidDouble(index)) {
- return getValue(index);
+ if (!isValidDouble(index)) {
+ throw new PlcIncompatibleDatatypeException(Double.class, index);
}
- return null;
+ return getValue(index);
}
public boolean isValidBigDecimal(int index) {
@@ -145,6 +147,9 @@ public class DefaultDoubleFieldItem extends FieldItem<Double> {
}
public BigDecimal getBigDecimal(int index) {
+ if(!isValidBigDecimal(index)) {
+ throw new PlcIncompatibleDatatypeException(BigDecimal.class, index);
+ }
return new BigDecimal(getValue(index));
}
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultFloatFieldItem.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultFloatFieldItem.java
index 53f94e6..36cdc69 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultFloatFieldItem.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultFloatFieldItem.java
@@ -18,6 +18,8 @@ under the License.
*/
package org.apache.plc4x.java.base.messages.items;
+import org.apache.plc4x.java.api.exceptions.PlcIncompatibleDatatypeException;
+
import java.math.BigDecimal;
import java.math.BigInteger;
@@ -39,10 +41,10 @@ public class DefaultFloatFieldItem extends FieldItem<Float> {
@Override
public Boolean getBoolean(int index) {
- if (isValidBoolean(index)) {
- return getValue(index) != 0L;
+ if (!isValidBoolean(index)) {
+ throw new PlcIncompatibleDatatypeException(Boolean.class, index);
}
- return null;
+ return getValue(index) != 0L;
}
@Override
@@ -53,10 +55,10 @@ public class DefaultFloatFieldItem extends FieldItem<Float> {
@Override
public Byte getByte(int index) {
- if (isValidByte(index)) {
- return getValue(index).byteValue();
+ if (!isValidByte(index)) {
+ throw new PlcIncompatibleDatatypeException(Byte.class, index);
}
- return null;
+ return getValue(index).byteValue();
}
@Override
@@ -67,10 +69,10 @@ public class DefaultFloatFieldItem extends FieldItem<Float> {
@Override
public Short getShort(int index) {
- if (isValidShort(index)) {
- return getValue(index).shortValue();
+ if (!isValidShort(index)) {
+ throw new PlcIncompatibleDatatypeException(Short.class, index);
}
- return null;
+ return getValue(index).shortValue();
}
@Override
@@ -81,36 +83,36 @@ public class DefaultFloatFieldItem extends FieldItem<Float> {
@Override
public Integer getInteger(int index) {
- if (isValidInteger(index)) {
- return getValue(index).intValue();
+ if (!isValidInteger(index)) {
+ throw new PlcIncompatibleDatatypeException(Integer.class, index);
}
- return null;
+ return getValue(index).intValue();
}
- public boolean isValidBigInteger(int index) {
+ @Override
+ public boolean isValidLong(int index) {
Float value = getValue(index);
- return value != null;
+ return (value != null) && (value <= Long.MAX_VALUE) && (value >= Long.MIN_VALUE);
}
- public BigInteger getBigInteger(int index) {
- if (isValidBigInteger(index)) {
- return BigInteger.valueOf(getValue(index).longValue());
+ @Override
+ public Long getLong(int index) {
+ if (!isValidLong(index)) {
+ throw new PlcIncompatibleDatatypeException(Long.class, index);
}
- return null;
+ return getValue(index).longValue();
}
- @Override
- public boolean isValidLong(int index) {
+ public boolean isValidBigInteger(int index) {
Float value = getValue(index);
- return (value != null) && (value <= Long.MAX_VALUE) && (value >= Long.MIN_VALUE);
+ return value != null;
}
- @Override
- public Long getLong(int index) {
- if (isValidLong(index)) {
- return getValue(index).longValue();
+ public BigInteger getBigInteger(int index) {
+ if (!isValidBigInteger(index)) {
+ throw new PlcIncompatibleDatatypeException(BigInteger.class, index);
}
- return null;
+ return BigInteger.valueOf(getValue(index).longValue());
}
@Override
@@ -121,10 +123,10 @@ public class DefaultFloatFieldItem extends FieldItem<Float> {
@Override
public Float getFloat(int index) {
- if (isValidFloat(index)) {
- return getValue(index);
+ if (!isValidFloat(index)) {
+ throw new PlcIncompatibleDatatypeException(Float.class, index);
}
- return null;
+ return getValue(index);
}
@Override
@@ -134,10 +136,10 @@ public class DefaultFloatFieldItem extends FieldItem<Float> {
@Override
public Double getDouble(int index) {
- if (isValidDouble(index)) {
- return getValue(index).doubleValue();
+ if (!isValidDouble(index)) {
+ throw new PlcIncompatibleDatatypeException(Double.class, index);
}
- return null;
+ return getValue(index).doubleValue();
}
public boolean isValidBigDecimal(int index) {
@@ -145,6 +147,9 @@ public class DefaultFloatFieldItem extends FieldItem<Float> {
}
public BigDecimal getBigDecimal(int index) {
+ if(!isValidBigDecimal(index)) {
+ throw new PlcIncompatibleDatatypeException(BigDecimal.class, index);
+ }
return new BigDecimal(getValue(index));
}
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultIntegerFieldItem.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultIntegerFieldItem.java
index 3f2de70..dc12131 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultIntegerFieldItem.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultIntegerFieldItem.java
@@ -18,6 +18,8 @@ under the License.
*/
package org.apache.plc4x.java.base.messages.items;
+import org.apache.plc4x.java.api.exceptions.PlcIncompatibleDatatypeException;
+
import java.math.BigDecimal;
import java.math.BigInteger;
@@ -39,10 +41,10 @@ public class DefaultIntegerFieldItem extends FieldItem<Integer> {
@Override
public Boolean getBoolean(int index) {
- if (isValidBoolean(index)) {
- return getValue(index) != 0L;
+ if (!isValidBoolean(index)) {
+ throw new PlcIncompatibleDatatypeException(Boolean.class, index);
}
- return null;
+ return getValue(index) != 0L;
}
@Override
@@ -53,10 +55,10 @@ public class DefaultIntegerFieldItem extends FieldItem<Integer> {
@Override
public Byte getByte(int index) {
- if (isValidByte(index)) {
- return getValue(index).byteValue();
+ if (!isValidByte(index)) {
+ throw new PlcIncompatibleDatatypeException(Byte.class, index);
}
- return null;
+ return getValue(index).byteValue();
}
@Override
@@ -67,10 +69,10 @@ public class DefaultIntegerFieldItem extends FieldItem<Integer> {
@Override
public Short getShort(int index) {
- if (isValidShort(index)) {
- return getValue(index).shortValue();
+ if (!isValidShort(index)) {
+ throw new PlcIncompatibleDatatypeException(Short.class, index);
}
- return null;
+ return getValue(index).shortValue();
}
@Override
@@ -81,22 +83,10 @@ public class DefaultIntegerFieldItem extends FieldItem<Integer> {
@Override
public Integer getInteger(int index) {
- if (isValidInteger(index)) {
- return getValue(index);
- }
- return null;
- }
-
- public boolean isValidBigInteger(int index) {
- Integer value = getValue(index);
- return value != null;
- }
-
- public BigInteger getBigInteger(int index) {
- if (isValidBigInteger(index)) {
- return BigInteger.valueOf(getValue(index));
+ if (!isValidInteger(index)) {
+ throw new PlcIncompatibleDatatypeException(Integer.class, index);
}
- return null;
+ return getValue(index);
}
@Override
@@ -106,10 +96,22 @@ public class DefaultIntegerFieldItem extends FieldItem<Integer> {
@Override
public Long getLong(int index) {
- if (isValidFloat(index)) {
- return getValue(index).longValue();
+ if (!isValidFloat(index)) {
+ throw new PlcIncompatibleDatatypeException(Long.class, index);
}
- return null;
+ return getValue(index).longValue();
+ }
+
+ public boolean isValidBigInteger(int index) {
+ Integer value = getValue(index);
+ return value != null;
+ }
+
+ public BigInteger getBigInteger(int index) {
+ if (!isValidBigInteger(index)) {
+ throw new PlcIncompatibleDatatypeException(BigInteger.class, index);
+ }
+ return BigInteger.valueOf(getValue(index));
}
@Override
@@ -120,10 +122,10 @@ public class DefaultIntegerFieldItem extends FieldItem<Integer> {
@Override
public Float getFloat(int index) {
- if (isValidFloat(index)) {
- return getValue(index).floatValue();
+ if (!isValidFloat(index)) {
+ throw new PlcIncompatibleDatatypeException(Float.class, index);
}
- return null;
+ return getValue(index).floatValue();
}
@Override
@@ -134,10 +136,10 @@ public class DefaultIntegerFieldItem extends FieldItem<Integer> {
@Override
public Double getDouble(int index) {
- if (isValidDouble(index)) {
- return getValue(index).doubleValue();
+ if (!isValidDouble(index)) {
+ throw new PlcIncompatibleDatatypeException(Double.class, index);
}
- return null;
+ return getValue(index).doubleValue();
}
public boolean isValidBigDecimal(int index) {
@@ -145,6 +147,9 @@ public class DefaultIntegerFieldItem extends FieldItem<Integer> {
}
public BigDecimal getBigDecimal(int index) {
+ if(!isValidBigDecimal(index)) {
+ throw new PlcIncompatibleDatatypeException(BigDecimal.class, index);
+ }
return new BigDecimal(getValue(index));
}
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLocalDateFieldItem.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLocalDateFieldItem.java
index 6fedf24..f911464 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLocalDateFieldItem.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLocalDateFieldItem.java
@@ -18,6 +18,8 @@ under the License.
*/
package org.apache.plc4x.java.base.messages.items;
+import org.apache.plc4x.java.api.exceptions.PlcIncompatibleDatatypeException;
+
import java.time.LocalDate;
public class DefaultLocalDateFieldItem extends FieldItem<LocalDate> {
@@ -38,10 +40,10 @@ public class DefaultLocalDateFieldItem extends FieldItem<LocalDate> {
@Override
public LocalDate getDate(int index) {
- if (isValidTime(index)) {
- return getValue(index);
+ if (!isValidTime(index)) {
+ throw new PlcIncompatibleDatatypeException(LocalDate.class, index);
}
- return null;
+ return getValue(index);
}
}
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLocalDateTimeFieldItem.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLocalDateTimeFieldItem.java
index 8e9d371..c49a03a 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLocalDateTimeFieldItem.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLocalDateTimeFieldItem.java
@@ -18,6 +18,8 @@ under the License.
*/
package org.apache.plc4x.java.base.messages.items;
+import org.apache.plc4x.java.api.exceptions.PlcIncompatibleDatatypeException;
+
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
@@ -40,10 +42,10 @@ public class DefaultLocalDateTimeFieldItem extends FieldItem<LocalDateTime> {
@Override
public LocalTime getTime(int index) {
- if(isValidTime(index)) {
- return getValue(index).toLocalTime();
+ if (!isValidTime(index)) {
+ throw new PlcIncompatibleDatatypeException(LocalTime.class, index);
}
- return null;
+ return getValue(index).toLocalTime();
}
@Override
@@ -53,10 +55,10 @@ public class DefaultLocalDateTimeFieldItem extends FieldItem<LocalDateTime> {
@Override
public LocalDate getDate(int index) {
- if(isValidTime(index)) {
- return getValue(index).toLocalDate();
+ if (!isValidTime(index)) {
+ throw new PlcIncompatibleDatatypeException(LocalDate.class, index);
}
- return null;
+ return getValue(index).toLocalDate();
}
@Override
@@ -66,10 +68,10 @@ public class DefaultLocalDateTimeFieldItem extends FieldItem<LocalDateTime> {
@Override
public LocalDateTime getDateTime(int index) {
- if(isValidTime(index)) {
- return getValue(index);
+ if (!isValidTime(index)) {
+ throw new PlcIncompatibleDatatypeException(LocalDateTime.class, index);
}
- return null;
+ return getValue(index);
}
}
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLocalTimeFieldItem.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLocalTimeFieldItem.java
index fcaf0c7..149b0f8 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLocalTimeFieldItem.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLocalTimeFieldItem.java
@@ -18,6 +18,8 @@ under the License.
*/
package org.apache.plc4x.java.base.messages.items;
+import org.apache.plc4x.java.api.exceptions.PlcIncompatibleDatatypeException;
+
import java.time.LocalTime;
public class DefaultLocalTimeFieldItem extends FieldItem<LocalTime> {
@@ -38,10 +40,10 @@ public class DefaultLocalTimeFieldItem extends FieldItem<LocalTime> {
@Override
public LocalTime getTime(int index) {
- if (isValidTime(index)) {
- return getValue(index);
+ if (!isValidTime(index)) {
+ throw new PlcIncompatibleDatatypeException(LocalTime.class, index);
}
- return null;
+ return getValue(index);
}
}
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLongFieldItem.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLongFieldItem.java
index ff2e5e0..22d36dc 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLongFieldItem.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultLongFieldItem.java
@@ -18,6 +18,8 @@ under the License.
*/
package org.apache.plc4x.java.base.messages.items;
+import org.apache.plc4x.java.api.exceptions.PlcIncompatibleDatatypeException;
+
import java.math.BigDecimal;
import java.math.BigInteger;
@@ -39,10 +41,10 @@ public class DefaultLongFieldItem extends FieldItem<Long> {
@Override
public Boolean getBoolean(int index) {
- if (isValidBoolean(index)) {
- return getValue(index) != 0L;
+ if (!isValidBoolean(index)) {
+ throw new PlcIncompatibleDatatypeException(Boolean.class, index);
}
- return null;
+ return getValue(index) != 0L;
}
@Override
@@ -53,10 +55,10 @@ public class DefaultLongFieldItem extends FieldItem<Long> {
@Override
public Byte getByte(int index) {
- if (isValidByte(index)) {
- return getValue(index).byteValue();
+ if (!isValidByte(index)) {
+ throw new PlcIncompatibleDatatypeException(Byte.class, index);
}
- return null;
+ return getValue(index).byteValue();
}
@Override
@@ -67,10 +69,10 @@ public class DefaultLongFieldItem extends FieldItem<Long> {
@Override
public Short getShort(int index) {
- if (isValidShort(index)) {
- return getValue(index).shortValue();
+ if (!isValidShort(index)) {
+ throw new PlcIncompatibleDatatypeException(Short.class, index);
}
- return null;
+ return getValue(index).shortValue();
}
@Override
@@ -81,22 +83,10 @@ public class DefaultLongFieldItem extends FieldItem<Long> {
@Override
public Integer getInteger(int index) {
- if (isValidInteger(index)) {
- return getValue(index).intValue();
- }
- return null;
- }
-
- public boolean isValidBigInteger(int index) {
- Long value = getValue(index);
- return value != null;
- }
-
- public BigInteger getBigInteger(int index) {
- if (isValidBigInteger(index)) {
- return BigInteger.valueOf(getValue(index));
+ if (!isValidInteger(index)) {
+ throw new PlcIncompatibleDatatypeException(Integer.class, index);
}
- return null;
+ return getValue(index).intValue();
}
@Override
@@ -106,10 +96,22 @@ public class DefaultLongFieldItem extends FieldItem<Long> {
@Override
public Long getLong(int index) {
- if (isValidLong(index)) {
- return getValue(index);
+ if (!isValidLong(index)) {
+ throw new PlcIncompatibleDatatypeException(Long.class, index);
}
- return null;
+ return getValue(index);
+ }
+
+ public boolean isValidBigInteger(int index) {
+ Long value = getValue(index);
+ return value != null;
+ }
+
+ public BigInteger getBigInteger(int index) {
+ if (!isValidBigInteger(index)) {
+ throw new PlcIncompatibleDatatypeException(BigInteger.class, index);
+ }
+ return BigInteger.valueOf(getValue(index));
}
@Override
@@ -120,10 +122,10 @@ public class DefaultLongFieldItem extends FieldItem<Long> {
@Override
public Float getFloat(int index) {
- if (isValidFloat(index)) {
- return getValue(index).floatValue();
+ if (!isValidFloat(index)) {
+ throw new PlcIncompatibleDatatypeException(Float.class, index);
}
- return null;
+ return getValue(index).floatValue();
}
@Override
@@ -134,10 +136,10 @@ public class DefaultLongFieldItem extends FieldItem<Long> {
@Override
public Double getDouble(int index) {
- if (isValidDouble(index)) {
- return getValue(index).doubleValue();
+ if (!isValidDouble(index)) {
+ throw new PlcIncompatibleDatatypeException(Double.class, index);
}
- return null;
+ return getValue(index).doubleValue();
}
public boolean isValidBigDecimal(int index) {
@@ -145,6 +147,9 @@ public class DefaultLongFieldItem extends FieldItem<Long> {
}
public BigDecimal getBigDecimal(int index) {
+ if(!isValidBigDecimal(index)) {
+ throw new PlcIncompatibleDatatypeException(BigDecimal.class, index);
+ }
return new BigDecimal(getValue(index));
}
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultShortFieldItem.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultShortFieldItem.java
index a8e9d4e..2c61ad6 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultShortFieldItem.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultShortFieldItem.java
@@ -18,6 +18,8 @@ under the License.
*/
package org.apache.plc4x.java.base.messages.items;
+import org.apache.plc4x.java.api.exceptions.PlcIncompatibleDatatypeException;
+
import java.math.BigDecimal;
import java.math.BigInteger;
@@ -39,10 +41,10 @@ public class DefaultShortFieldItem extends FieldItem<Short> {
@Override
public Boolean getBoolean(int index) {
- if (isValidBoolean(index)) {
- return getValue(index) != 0L;
+ if (!isValidBoolean(index)) {
+ throw new PlcIncompatibleDatatypeException(Boolean.class, index);
}
- return null;
+ return getValue(index) != 0L;
}
@Override
@@ -53,10 +55,10 @@ public class DefaultShortFieldItem extends FieldItem<Short> {
@Override
public Byte getByte(int index) {
- if (isValidByte(index)) {
- return getValue(index).byteValue();
+ if (!isValidByte(index)) {
+ throw new PlcIncompatibleDatatypeException(Byte.class, index);
}
- return null;
+ return getValue(index).byteValue();
}
@Override
@@ -67,10 +69,10 @@ public class DefaultShortFieldItem extends FieldItem<Short> {
@Override
public Short getShort(int index) {
- if (isValidShort(index)) {
- return getValue(index);
+ if (!isValidShort(index)) {
+ throw new PlcIncompatibleDatatypeException(Short.class, index);
}
- return null;
+ return getValue(index);
}
@Override
@@ -81,22 +83,10 @@ public class DefaultShortFieldItem extends FieldItem<Short> {
@Override
public Integer getInteger(int index) {
- if (isValidInteger(index)) {
- return getValue(index).intValue();
- }
- return null;
- }
-
- public boolean isValidBigInteger(int index) {
- Short value = getValue(index);
- return value != null;
- }
-
- public BigInteger getBigInteger(int index) {
- if (isValidBigInteger(index)) {
- return BigInteger.valueOf(getValue(index));
+ if (!isValidInteger(index)) {
+ throw new PlcIncompatibleDatatypeException(Integer.class, index);
}
- return null;
+ return getValue(index).intValue();
}
@Override
@@ -106,10 +96,22 @@ public class DefaultShortFieldItem extends FieldItem<Short> {
@Override
public Long getLong(int index) {
- if (isValidFloat(index)) {
- return getValue(index).longValue();
+ if (!isValidLong(index)) {
+ throw new PlcIncompatibleDatatypeException(Long.class, index);
}
- return null;
+ return getValue(index).longValue();
+ }
+
+ public boolean isValidBigInteger(int index) {
+ Short value = getValue(index);
+ return value != null;
+ }
+
+ public BigInteger getBigInteger(int index) {
+ if (!isValidBigInteger(index)) {
+ throw new PlcIncompatibleDatatypeException(BigInteger.class, index);
+ }
+ return BigInteger.valueOf(getValue(index));
}
@Override
@@ -120,10 +122,10 @@ public class DefaultShortFieldItem extends FieldItem<Short> {
@Override
public Float getFloat(int index) {
- if (isValidFloat(index)) {
- return getValue(index).floatValue();
+ if (!isValidFloat(index)) {
+ throw new PlcIncompatibleDatatypeException(Float.class, index);
}
- return null;
+ return getValue(index).floatValue();
}
@Override
@@ -134,10 +136,10 @@ public class DefaultShortFieldItem extends FieldItem<Short> {
@Override
public Double getDouble(int index) {
- if (isValidDouble(index)) {
- return getValue(index).doubleValue();
+ if (!isValidDouble(index)) {
+ throw new PlcIncompatibleDatatypeException(Double.class, index);
}
- return null;
+ return getValue(index).doubleValue();
}
public boolean isValidBigDecimal(int index) {
@@ -145,6 +147,9 @@ public class DefaultShortFieldItem extends FieldItem<Short> {
}
public BigDecimal getBigDecimal(int index) {
+ if(!isValidBigDecimal(index)) {
+ throw new PlcIncompatibleDatatypeException(BigDecimal.class, index);
+ }
return new BigDecimal(getValue(index));
}
}
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultStringFieldItem.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultStringFieldItem.java
index 395a6c8..d02bbd2 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultStringFieldItem.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/DefaultStringFieldItem.java
@@ -18,6 +18,8 @@ under the License.
*/
package org.apache.plc4x.java.base.messages.items;
+import org.apache.plc4x.java.api.exceptions.PlcIncompatibleDatatypeException;
+
public class DefaultStringFieldItem extends FieldItem<String> {
public DefaultStringFieldItem(String... values) {
@@ -36,10 +38,10 @@ public class DefaultStringFieldItem extends FieldItem<String> {
@Override
public String getString(int index) {
- if(isValidString(index)) {
- return getValue(index);
+ if (!isValidString(index)) {
+ throw new PlcIncompatibleDatatypeException(String.class, index);
}
- return null;
+ return getValue(index);
}
}
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/FieldItem.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/FieldItem.java
index 7df46a9..14deb18 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/FieldItem.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/items/FieldItem.java
@@ -18,6 +18,8 @@ under the License.
*/
package org.apache.plc4x.java.base.messages.items;
+import org.apache.plc4x.java.api.exceptions.PlcIncompatibleDatatypeException;
+
import java.math.BigDecimal;
import java.math.BigInteger;
import java.time.LocalDate;
@@ -44,7 +46,7 @@ public abstract class FieldItem<T> {
}
public Boolean getBoolean(int index) {
- return null;
+ throw new PlcIncompatibleDatatypeException(Boolean.class, index);
}
public boolean isValidByte(int index) {
@@ -52,7 +54,7 @@ public abstract class FieldItem<T> {
}
public Byte getByte(int index) {
- return null;
+ throw new PlcIncompatibleDatatypeException(Byte.class, index);
}
public boolean isValidShort(int index) {
@@ -60,7 +62,7 @@ public abstract class FieldItem<T> {
}
public Short getShort(int index) {
- return null;
+ throw new PlcIncompatibleDatatypeException(Short.class, index);
}
public boolean isValidInteger(int index) {
@@ -68,7 +70,7 @@ public abstract class FieldItem<T> {
}
public Integer getInteger(int index) {
- return null;
+ throw new PlcIncompatibleDatatypeException(Integer.class, index);
}
public boolean isValidBigInteger(int index) {
@@ -76,7 +78,7 @@ public abstract class FieldItem<T> {
}
public BigInteger getBigInteger(int index) {
- return null;
+ throw new PlcIncompatibleDatatypeException(BigInteger.class, index);
}
public boolean isValidLong(int index) {
@@ -84,7 +86,7 @@ public abstract class FieldItem<T> {
}
public Long getLong(int index) {
- return null;
+ throw new PlcIncompatibleDatatypeException(Long.class, index);
}
public boolean isValidFloat(int index) {
@@ -92,7 +94,7 @@ public abstract class FieldItem<T> {
}
public Float getFloat(int index) {
- return null;
+ throw new PlcIncompatibleDatatypeException(Float.class, index);
}
public boolean isValidDouble(int index) {
@@ -100,7 +102,7 @@ public abstract class FieldItem<T> {
}
public Double getDouble(int index) {
- return null;
+ throw new PlcIncompatibleDatatypeException(Double.class, index);
}
public boolean isValidBigDecimal(int index) {
@@ -108,7 +110,7 @@ public abstract class FieldItem<T> {
}
public BigDecimal getBigDecimal(int index) {
- return null;
+ throw new PlcIncompatibleDatatypeException(BigDecimal.class, index);
}
public boolean isValidString(int index) {
@@ -116,7 +118,7 @@ public abstract class FieldItem<T> {
}
public String getString(int index) {
- return null;
+ throw new PlcIncompatibleDatatypeException(String.class, index);
}
public boolean isValidTime(int index) {
@@ -124,7 +126,7 @@ public abstract class FieldItem<T> {
}
public LocalTime getTime(int index) {
- return null;
+ throw new PlcIncompatibleDatatypeException(LocalTime.class, index);
}
public boolean isValidDate(int index) {
@@ -132,7 +134,7 @@ public abstract class FieldItem<T> {
}
public LocalDate getDate(int index) {
- return null;
+ throw new PlcIncompatibleDatatypeException(LocalDate.class, index);
}
public boolean isValidDateTime(int index) {
@@ -140,7 +142,7 @@ public abstract class FieldItem<T> {
}
public LocalDateTime getDateTime(int index) {
- return null;
+ throw new PlcIncompatibleDatatypeException(LocalDateTime.class, index);
}
public boolean isValidByteArray(int index) {
@@ -148,7 +150,7 @@ public abstract class FieldItem<T> {
}
public Byte[] getByteArray(int index) {
- return null;
+ throw new PlcIncompatibleDatatypeException(Byte[].class, index);
}
public T[] getValues() {
@@ -186,5 +188,4 @@ public abstract class FieldItem<T> {
'}';
}
- //ToDo Replace returning of null by Exceptions
}