You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by sr...@apache.org on 2018/10/18 12:22:55 UTC

[incubator-plc4x] 02/02: [Modbus] remove validation on reading by avoiding supplying of null items in the first place.

This is an automated email from the ASF dual-hosted git repository.

sruehl pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git

commit d94b11c093e323e43eb7ad938caf9a039e44f443
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Thu Oct 18 12:21:17 2018 +0200

    [Modbus] remove validation on reading by avoiding supplying of null items in the first place.
---
 .../messages/items/DefaultByteArrayFieldItem.java  |  5 +++++
 .../items/DefaultModbusByteArrayFieldItem.java     | 25 +++-------------------
 2 files changed, 8 insertions(+), 22 deletions(-)

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 078422d..0aeac4f 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,10 +18,15 @@ under the License.
 */
 package org.apache.plc4x.java.base.messages.items;
 
+import java.util.Objects;
+
 public class DefaultByteArrayFieldItem extends FieldItem<Byte[]> {
 
     public DefaultByteArrayFieldItem(Byte[]... values) {
         super(values);
+        for (Byte[] value : values) {
+            Objects.requireNonNull(value);
+        }
     }
 
     @Override
diff --git a/plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/messages/items/DefaultModbusByteArrayFieldItem.java b/plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/messages/items/DefaultModbusByteArrayFieldItem.java
index 27a2cd2..4b3002f 100644
--- a/plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/messages/items/DefaultModbusByteArrayFieldItem.java
+++ b/plc4j/protocols/modbus/src/main/java/org/apache/plc4x/java/modbus/messages/items/DefaultModbusByteArrayFieldItem.java
@@ -65,8 +65,7 @@ public class DefaultModbusByteArrayFieldItem extends DefaultByteArrayFieldItem {
 
     @Override
     public boolean isValidShort(int index) {
-        return this.completeByteArray.length >= shortIndexToByteIndex(index) + SHORT_BYTES &&
-            validateByteValues(shortIndexToByteIndex(index), SHORT_BYTES);
+        return this.completeByteArray.length >= shortIndexToByteIndex(index) + SHORT_BYTES;
     }
 
     @Override
@@ -104,8 +103,7 @@ public class DefaultModbusByteArrayFieldItem extends DefaultByteArrayFieldItem {
 
     @Override
     public boolean isValidInteger(int index) {
-        return this.completeByteArray.length >= intIndexToByteIndex(index) + INTEGER_BYTES &&
-            validateByteValues(intIndexToByteIndex(index), INTEGER_BYTES);
+        return this.completeByteArray.length >= intIndexToByteIndex(index) + INTEGER_BYTES;
     }
 
     @Override
@@ -143,8 +141,7 @@ public class DefaultModbusByteArrayFieldItem extends DefaultByteArrayFieldItem {
 
     @Override
     public boolean isValidLong(int index) {
-        return this.completeByteArray.length >= longIndexToByteIndex(index) + LONG_BYTES &&
-            validateByteValues(longIndexToByteIndex(index), LONG_BYTES);
+        return this.completeByteArray.length >= longIndexToByteIndex(index) + LONG_BYTES;
     }
 
     @Override
@@ -181,22 +178,6 @@ public class DefaultModbusByteArrayFieldItem extends DefaultByteArrayFieldItem {
     }
 
     /**
-     * validates if requested bytes contain only non-null values
-     *
-     * @param startIndex index of the first byte requested
-     * @param length     amount of subsequent bytes
-     * @return true if requested values are not-null, false otherwise
-     */
-    private boolean validateByteValues(int startIndex, int length) {
-        for (int byteIndex = startIndex; byteIndex < startIndex + length; byteIndex++) {
-            if (this.completeByteArray[byteIndex] == null) {
-                return false;
-            }
-        }
-        return true;
-    }
-
-    /**
      * returns a subarray with the wanted index first
      *
      * @param index start-index of wanted value