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/01/11 09:58:55 UTC
[incubator-plc4x] 01/01: use list instead of array and get rid of
some more suppress warnings
This is an automated email from the ASF dual-hosted git repository.
sruehl pushed a commit to branch refactoring/java_generify
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git
commit 1361a0a2f604b1e932e09e7825a25147edb230d1
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Thu Jan 11 10:53:55 2018 +0100
use list instead of array and get rid of some more suppress warnings
---
.../java/org/apache/plc4x/camel/PLC4XProducer.java | 6 ++---
.../apache/plc4x/edgent/mock/MockConnection.java | 4 +--
.../plc4x/java/api/messages/PlcWriteRequest.java | 8 +-----
.../java/api/messages/items/WriteRequestItem.java | 18 +++++++-------
.../api/messages/specific/BulkPlcReadRequest.java | 17 ++++++-------
.../api/messages/specific/BulkPlcReadResponse.java | 6 ++---
.../api/messages/specific/BulkPlcWriteRequest.java | 18 +++++---------
.../messages/specific/BulkPlcWriteResponse.java | 6 ++---
.../specific/CheckedBulkPlcReadRequest.java | 6 ++---
.../specific/CheckedBulkPlcWriteRequest.java | 13 +++-------
.../messages/specific/SinglePlcReadRequest.java | 2 +-
.../messages/specific/SinglePlcWriteRequest.java | 2 +-
.../plc4x/java/api/messages/APIMessageTests.java | 29 +++++++++++-----------
.../plc4x/java/s7/netty/Plc4XS7Protocol.java | 24 +++++++++++-------
14 files changed, 74 insertions(+), 85 deletions(-)
diff --git a/integrations/apache-camel/src/main/java/org/apache/plc4x/camel/PLC4XProducer.java b/integrations/apache-camel/src/main/java/org/apache/plc4x/camel/PLC4XProducer.java
index cff83d2..fcd037c 100644
--- a/integrations/apache-camel/src/main/java/org/apache/plc4x/camel/PLC4XProducer.java
+++ b/integrations/apache-camel/src/main/java/org/apache/plc4x/camel/PLC4XProducer.java
@@ -25,9 +25,9 @@ import org.apache.camel.impl.DefaultAsyncProducer;
import org.apache.plc4x.java.api.connection.PlcConnection;
import org.apache.plc4x.java.api.connection.PlcWriter;
import org.apache.plc4x.java.api.exceptions.PlcException;
+import org.apache.plc4x.java.api.messages.items.WriteRequestItem;
import org.apache.plc4x.java.api.messages.specific.BulkPlcWriteRequest;
import org.apache.plc4x.java.api.messages.specific.SinglePlcWriteRequest;
-import org.apache.plc4x.java.api.messages.items.WriteRequestItem;
import org.apache.plc4x.java.api.model.Address;
import java.util.List;
@@ -62,9 +62,9 @@ public class PLC4XProducer extends DefaultAsyncProducer {
CompletableFuture<?> completableFuture;
if (body instanceof List) {
List<?> bodyList = in.getBody(List.class);
- List<WriteRequestItem> collect = bodyList
+ List<WriteRequestItem<?>> collect = bodyList
.stream()
- .map(o -> new WriteRequestItem(o.getClass(), address, o))
+ .map(o -> (WriteRequestItem<?>) new WriteRequestItem(o.getClass(), address, o))
.collect(Collectors.toList());
BulkPlcWriteRequest bulkPlcWriteRequest = new BulkPlcWriteRequest(collect);
PlcWriter plcWriter = plcConnection.getWriter().orElseThrow(() -> new IllegalArgumentException("Writer for driver not found"));
diff --git a/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockConnection.java b/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockConnection.java
index 1a5bb09..1868046 100644
--- a/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockConnection.java
+++ b/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockConnection.java
@@ -91,7 +91,7 @@ public class MockConnection extends AbstractPlcConnection implements PlcReader,
cf.completeExceptionally(new PlcIoException(readExceptionMsg));
return cf;
}
- List<ReadResponseItem> responseItems = new LinkedList<>();
+ List<ReadResponseItem<?>> responseItems = new LinkedList<>();
for (ReadRequestItem requestItem : readRequest.getReadRequestItems()) {
ReadResponseItem responseItem = new ReadResponseItem(requestItem, ResponseCode.OK,
Collections.singletonList(getDataValue(requestItem.getAddress())));
@@ -118,7 +118,7 @@ public class MockConnection extends AbstractPlcConnection implements PlcReader,
cf.completeExceptionally(new PlcIoException(writeExceptionMsg));
return cf;
}
- List<WriteResponseItem> responseItems = new LinkedList<>();
+ List<WriteResponseItem<?>> responseItems = new LinkedList<>();
for (WriteRequestItem requestItem : writeRequest.getRequestItems()) {
setDataValue(requestItem.getAddress(), requestItem.getValues());
WriteResponseItem<?> responseItem = new WriteResponseItem<>(requestItem, ResponseCode.OK);
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcWriteRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcWriteRequest.java
index e95ba29..1a6c082 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcWriteRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcWriteRequest.java
@@ -59,13 +59,7 @@ public interface PlcWriteRequest extends PlcRequest {
private List<WriteRequestItem> requests = new LinkedList<>();
- public <T> PlcWriteRequest.Builder addItem(Class<T> dataType, Address address, T value) {
- checkType(dataType);
- requests.add(new WriteRequestItem<>(dataType, address, value));
- return this;
- }
-
- public <T> PlcWriteRequest.Builder addItem(Class<T> dataType, Address address, T[] values) {
+ public <T> PlcWriteRequest.Builder addItem(Class<T> dataType, Address address, T... values) {
checkType(dataType);
requests.add(new WriteRequestItem<>(dataType, address, values));
return this;
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteRequestItem.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteRequestItem.java
index 33aa544..5ece7c0 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteRequestItem.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteRequestItem.java
@@ -20,7 +20,9 @@ package org.apache.plc4x.java.api.messages.items;
import org.apache.plc4x.java.api.model.Address;
-import java.lang.reflect.Array;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
import java.util.Optional;
public class WriteRequestItem<T> {
@@ -29,23 +31,21 @@ public class WriteRequestItem<T> {
private final Address address;
- private final T[] values;
+ private final List<T> values;
private WriteResponseItem<T> responseItem;
- @SuppressWarnings("unchecked")
- public WriteRequestItem(Class<T> datatype, Address address, T value) {
+ public WriteRequestItem(Class<T> datatype, Address address, T... values) {
this.datatype = datatype;
this.address = address;
- this.values = (T[]) Array.newInstance(datatype, 1);
- this.values[0] = value;
+ this.values = new ArrayList<>(Arrays.asList(values));
responseItem = null;
}
- public WriteRequestItem(Class<T> datatype, Address address, T[] values) {
+ public WriteRequestItem(Class<T> datatype, Address address, List<T> values) {
this.datatype = datatype;
this.address = address;
- this.values = values;
+ this.values = new ArrayList<>(values);
responseItem = null;
}
@@ -57,7 +57,7 @@ public class WriteRequestItem<T> {
return address;
}
- public T[] getValues() {
+ public List<T> getValues() {
return values;
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/BulkPlcReadRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/BulkPlcReadRequest.java
index 4b56e5a..47c7f39 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/BulkPlcReadRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/BulkPlcReadRequest.java
@@ -25,34 +25,33 @@ import org.apache.plc4x.java.api.model.Address;
import java.util.LinkedList;
import java.util.List;
-@SuppressWarnings("unchecked")
public class BulkPlcReadRequest implements PlcReadRequest {
- private final List<ReadRequestItem> readRequestItems;
+ private final List<ReadRequestItem<?>> readRequestItems;
public BulkPlcReadRequest() {
this.readRequestItems = new LinkedList<>();
}
- public BulkPlcReadRequest(Class dataType, Address address) {
+ public BulkPlcReadRequest(Class<?> dataType, Address address) {
this();
- addItem(new ReadRequestItem(dataType, address));
+ addItem(new ReadRequestItem<>(dataType, address));
}
- public BulkPlcReadRequest(Class dataType, Address address, int size) {
+ public BulkPlcReadRequest(Class<?> dataType, Address address, int size) {
this();
- addItem(new ReadRequestItem(dataType, address, size));
+ addItem(new ReadRequestItem<>(dataType, address, size));
}
- public BulkPlcReadRequest(List<ReadRequestItem> readRequestItems) {
+ public BulkPlcReadRequest(List<ReadRequestItem<?>> readRequestItems) {
this.readRequestItems = readRequestItems;
}
- public void addItem(ReadRequestItem readRequestItem) {
+ public void addItem(ReadRequestItem<?> readRequestItem) {
readRequestItems.add(readRequestItem);
}
- public List<? extends ReadRequestItem> getReadRequestItems() {
+ public List<? extends ReadRequestItem<?>> getReadRequestItems() {
return readRequestItems;
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/BulkPlcReadResponse.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/BulkPlcReadResponse.java
index 7c9ee72..00458a7 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/BulkPlcReadResponse.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/BulkPlcReadResponse.java
@@ -29,9 +29,9 @@ import java.util.Optional;
public class BulkPlcReadResponse implements PlcReadResponse {
private final BulkPlcReadRequest request;
- private final List<ReadResponseItem> responseItems;
+ private final List<ReadResponseItem<?>> responseItems;
- public BulkPlcReadResponse(BulkPlcReadRequest request, List<ReadResponseItem> responseItems) {
+ public BulkPlcReadResponse(BulkPlcReadRequest request, List<ReadResponseItem<?>> responseItems) {
this.request = request;
this.responseItems = responseItems;
}
@@ -40,7 +40,7 @@ public class BulkPlcReadResponse implements PlcReadResponse {
return request;
}
- public List<? extends ReadResponseItem> getResponseItems() {
+ public List<? extends ReadResponseItem<?>> getResponseItems() {
return responseItems;
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/BulkPlcWriteRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/BulkPlcWriteRequest.java
index 610e072..9ffe97c 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/BulkPlcWriteRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/BulkPlcWriteRequest.java
@@ -25,34 +25,28 @@ import org.apache.plc4x.java.api.model.Address;
import java.util.LinkedList;
import java.util.List;
-@SuppressWarnings("unchecked")
public class BulkPlcWriteRequest implements PlcWriteRequest {
- private final List<WriteRequestItem> requestItems;
+ private final List<WriteRequestItem<?>> requestItems;
public BulkPlcWriteRequest() {
this.requestItems = new LinkedList<>();
}
- public BulkPlcWriteRequest(Class dataType, Address address, Object value) {
+ public <T> BulkPlcWriteRequest(Class<T> dataType, Address address, T... values) {
this();
- addItem(new WriteRequestItem(dataType, address, value));
+ addItem(new WriteRequestItem<>(dataType, address, values));
}
- public BulkPlcWriteRequest(Class dataType, Address address, Object[] values) {
- this();
- addItem(new WriteRequestItem(dataType, address, values));
- }
-
- public BulkPlcWriteRequest(List<WriteRequestItem> requestItems) {
+ public BulkPlcWriteRequest(List<WriteRequestItem<?>> requestItems) {
this.requestItems = requestItems;
}
- public void addItem(WriteRequestItem requestItem) {
+ public void addItem(WriteRequestItem<?> requestItem) {
requestItems.add(requestItem);
}
- public List<? extends WriteRequestItem> getRequestItems() {
+ public List<? extends WriteRequestItem<?>> getRequestItems() {
return requestItems;
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/BulkPlcWriteResponse.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/BulkPlcWriteResponse.java
index 873fffd..3af5c33 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/BulkPlcWriteResponse.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/BulkPlcWriteResponse.java
@@ -26,9 +26,9 @@ import java.util.List;
public class BulkPlcWriteResponse implements PlcWriteResponse {
private final BulkPlcWriteRequest request;
- private final List<WriteResponseItem> responseItems;
+ private final List<WriteResponseItem<?>> responseItems;
- public BulkPlcWriteResponse(BulkPlcWriteRequest request, List<WriteResponseItem> responseItems) {
+ public BulkPlcWriteResponse(BulkPlcWriteRequest request, List<WriteResponseItem<?>> responseItems) {
this.request = request;
this.responseItems = responseItems;
}
@@ -37,7 +37,7 @@ public class BulkPlcWriteResponse implements PlcWriteResponse {
return request;
}
- public List<? extends WriteResponseItem> getResponseItems() {
+ public List<? extends WriteResponseItem<?>> getResponseItems() {
return responseItems;
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/CheckedBulkPlcReadRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/CheckedBulkPlcReadRequest.java
index a56c78c..42fe6eb 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/CheckedBulkPlcReadRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/CheckedBulkPlcReadRequest.java
@@ -50,17 +50,17 @@ public class CheckedBulkPlcReadRequest<T> extends BulkPlcReadRequest {
}
@SuppressWarnings("unchecked")
- public void addItem(ReadRequestItem readRequestItem) {
+ public void addItem(ReadRequestItem<?> readRequestItem) {
if (readRequestItem == null) {
return;
}
if (readRequestItem.getDatatype() != datatype) {
throw new IllegalArgumentException("Incompatible datatype " + readRequestItem.getDatatype());
}
- readRequestItems.add(readRequestItem);
+ readRequestItems.add((ReadRequestItem<T>) readRequestItem);
}
- public List<? extends ReadRequestItem> getReadRequestItems() {
+ public List<? extends ReadRequestItem<?>> getReadRequestItems() {
return readRequestItems;
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/CheckedBulkPlcWriteRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/CheckedBulkPlcWriteRequest.java
index 550b985..ff94d8b 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/CheckedBulkPlcWriteRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/CheckedBulkPlcWriteRequest.java
@@ -35,12 +35,7 @@ public class CheckedBulkPlcWriteRequest<T> extends BulkPlcWriteRequest {
this.requestItems = new LinkedList<>();
}
- public CheckedBulkPlcWriteRequest(Class<T> dataType, Address address, T value) {
- this(dataType);
- addItem(new WriteRequestItem<>(dataType, address, value));
- }
-
- public CheckedBulkPlcWriteRequest(Class<T> dataType, Address address, T[] values) {
+ public CheckedBulkPlcWriteRequest(Class<T> dataType, Address address, T... values) {
this(dataType);
addItem(new WriteRequestItem<>(dataType, address, values));
}
@@ -50,17 +45,17 @@ public class CheckedBulkPlcWriteRequest<T> extends BulkPlcWriteRequest {
}
@SuppressWarnings("unchecked")
- public void addItem(WriteRequestItem writeRequestItem) {
+ public void addItem(WriteRequestItem<?> writeRequestItem) {
if (writeRequestItem == null) {
return;
}
if (writeRequestItem.getDatatype() != datatype) {
throw new IllegalArgumentException("Incompatible datatype " + writeRequestItem.getDatatype());
}
- requestItems.add(writeRequestItem);
+ requestItems.add((WriteRequestItem<T>)writeRequestItem);
}
- public List<? extends WriteRequestItem> getRequestItems() {
+ public List<? extends WriteRequestItem<?>> getRequestItems() {
return requestItems;
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcReadRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcReadRequest.java
index 104281d..ac5d05f 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcReadRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcReadRequest.java
@@ -47,7 +47,7 @@ public class SinglePlcReadRequest<T> implements PlcReadRequest {
@Override
@SuppressWarnings("unchecked")
- public void addItem(ReadRequestItem readRequestItem) {
+ public void addItem(ReadRequestItem<?> readRequestItem) {
if (this.requestItem != null && readRequestItem != null) {
throw new IllegalStateException(SinglePlcReadRequest.class.getName() + " can only contain on requestItem");
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcWriteRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcWriteRequest.java
index bf224ac..3beca8b 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcWriteRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcWriteRequest.java
@@ -47,7 +47,7 @@ public class SinglePlcWriteRequest<T> implements PlcWriteRequest {
@Override
@SuppressWarnings("unchecked")
- public void addItem(WriteRequestItem requestItem) {
+ public void addItem(WriteRequestItem<?> requestItem) {
if (this.requestItem != null && requestItem != null) {
throw new IllegalStateException(SinglePlcReadRequest.class.getName() + " can only contain on readRequestItem");
}
diff --git a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/APIMessageTests.java b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/APIMessageTests.java
index 0cb0ba6..1ea3e8a 100644
--- a/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/APIMessageTests.java
+++ b/plc4j/api/src/test/java/org/apache/plc4x/java/api/messages/APIMessageTests.java
@@ -31,6 +31,7 @@ import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.Collections;
+import java.util.List;
import java.util.Optional;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -77,7 +78,7 @@ class APIMessageTests {
assertTrue(writeRequestItem.getAddress().equals(address), "Unexpected address");
assertTrue(writeRequestItem.getDatatype() == Byte.class, "Unexpected data type");
- assertTrue(writeRequestItem.getValues()[0] == 0x45, "Unexpected value");
+ assertTrue(writeRequestItem.getValues().get(0) == 0x45, "Unexpected value");
}
@Test
@@ -88,8 +89,8 @@ class APIMessageTests {
WriteRequestItem<Byte> writeRequestItem = new WriteRequestItem<>(Byte.class, address, data);
assertTrue(writeRequestItem.getAddress().equals(address), "Unexpected address");
assertTrue(writeRequestItem.getDatatype() == Byte.class, "Unexpected data type");
- assertTrue(writeRequestItem.getValues()[0] == (byte) 0x23, "Unexpected value");
- assertTrue(writeRequestItem.getValues()[1] == (byte) 0x84, "Unexpected value");
+ assertTrue(writeRequestItem.getValues().get(0) == (byte) 0x23, "Unexpected value");
+ assertTrue(writeRequestItem.getValues().get(1) == (byte) 0x84, "Unexpected value");
}
@Test
@@ -145,7 +146,7 @@ class APIMessageTests {
@Tag("fast")
void plcReadResponse() {
BulkPlcReadRequest plcReadRequest = new BulkPlcReadRequest();
- ArrayList<ReadResponseItem> responseItems = new ArrayList<>();
+ List<ReadResponseItem<?>> responseItems = new ArrayList<>();
MockAddress address = new MockAddress("mock:/DATA");
ReadRequestItem<Byte> readRequestItem = new ReadRequestItem<>(Byte.class, address, 1);
ReadResponseItem<Byte> readResponseItem = new ReadResponseItem<>(readRequestItem, ResponseCode.OK, Collections.emptyList());
@@ -172,8 +173,8 @@ class APIMessageTests {
PlcWriteRequest plcWriteRequest = new SinglePlcWriteRequest<>(Byte.class, address, (byte) 0x33);
assertTrue(plcWriteRequest.getRequestItems().size() == 1, "Expected no request item");
assertTrue(plcWriteRequest.getNumberOfItems() == 1, "Expected one request item");
- Object[] values = plcWriteRequest.getRequestItems().get(0).getValues();
- assertTrue((byte) values[0] == (byte) 0x33, "Expected value 0x33");
+ List values = plcWriteRequest.getRequestItems().get(0).getValues();
+ assertTrue((byte) values.get(0) == (byte) 0x33, "Expected value 0x33");
}
@Test
@@ -184,16 +185,16 @@ class APIMessageTests {
PlcWriteRequest plcWriteRequest = new SinglePlcWriteRequest<>(Byte.class, address, data);
assertTrue(plcWriteRequest.getRequestItems().size() == 1, "Expected one request item");
assertTrue(plcWriteRequest.getNumberOfItems() == 1, "Expected one request item");
- Byte[] values = (Byte[]) plcWriteRequest.getRequestItems().get(0).getValues();
- assertTrue(values[0] == (byte) 0x22, "Expected value 0x22");
- assertTrue(values[1] == (byte) 0x66, "Expected value 0x66");
+ List values = plcWriteRequest.getRequestItems().get(0).getValues();
+ assertTrue((Byte) values.get(0) == (byte) 0x22, "Expected value 0x22");
+ assertTrue((Byte) values.get(1) == (byte) 0x66, "Expected value 0x66");
}
@Test
@Tag("fast")
void plcWriteResponse() {
BulkPlcWriteRequest plcWriteRequest = new BulkPlcWriteRequest();
- ArrayList<WriteResponseItem> responseItems = new ArrayList<>();
+ List<WriteResponseItem<?>> responseItems = new ArrayList<>();
MockAddress address = new MockAddress("mock:/DATA");
WriteRequestItem<Byte> writeRequestItem = new WriteRequestItem<>(Byte.class, address, (byte) 1);
WriteResponseItem<Byte> writeResponseItem = new WriteResponseItem<>(writeRequestItem, ResponseCode.OK);
@@ -209,7 +210,7 @@ class APIMessageTests {
@Tag("fast")
void bulkPlcWriteResponseGetValue() {
BulkPlcWriteRequest plcWriteRequest = new BulkPlcWriteRequest();
- ArrayList<WriteResponseItem> responseItems = new ArrayList<>();
+ List<WriteResponseItem<?>> responseItems = new ArrayList<>();
MockAddress address = new MockAddress("mock:/DATA");
WriteRequestItem<Byte> writeRequestItem1 = new WriteRequestItem<>(Byte.class, address, (byte) 1);
WriteRequestItem<Byte> writeRequestItem2 = new WriteRequestItem<>(Byte.class, address, (byte) 1);
@@ -228,7 +229,7 @@ class APIMessageTests {
@Tag("fast")
void nonExistingItemBulkPlcWriteResponseGetValue() {
BulkPlcWriteRequest plcWriteRequest = new BulkPlcWriteRequest();
- ArrayList<WriteResponseItem> responseItems = new ArrayList<>();
+ List<WriteResponseItem<?>> responseItems = new ArrayList<>();
MockAddress address = new MockAddress("mock:/DATA");
WriteRequestItem<Byte> nonExistingWriteRequestItem = new WriteRequestItem<>(Byte.class, address, (byte) 1);
BulkPlcWriteResponse plcWriteResponse = new BulkPlcWriteResponse(plcWriteRequest, responseItems);
@@ -240,7 +241,7 @@ class APIMessageTests {
@Tag("fast")
void bulkPlcReadResponseGetValue() {
BulkPlcReadRequest plcReadRequest = new BulkPlcReadRequest();
- ArrayList<ReadResponseItem> responseItems = new ArrayList<>();
+ List<ReadResponseItem<?>> responseItems = new ArrayList<>();
MockAddress address = new MockAddress("mock:/DATA");
ReadRequestItem<Byte> readRequestItem1 = new ReadRequestItem<>(Byte.class, address, 1);
ReadRequestItem<Byte> readRequestItem2 = new ReadRequestItem<>(Byte.class, address, 1);
@@ -259,7 +260,7 @@ class APIMessageTests {
@Tag("fast")
void nonExistingItemBulkPlcReadResponseGetValue() {
BulkPlcReadRequest plcReadRequest = new BulkPlcReadRequest();
- ArrayList<ReadResponseItem> responseItems = new ArrayList<>();
+ List<ReadResponseItem<?>> responseItems = new ArrayList<>();
MockAddress address = new MockAddress("mock:/DATA");
ReadRequestItem<Byte> nonExistingReadRequestItem = new ReadRequestItem<>(Byte.class, address, 1);
BulkPlcReadResponse plcReadResponse = new BulkPlcReadResponse(plcReadRequest, responseItems);
diff --git a/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java b/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java
index cc1faf1..6233801 100644
--- a/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java
+++ b/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java
@@ -22,7 +22,10 @@ import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToMessageCodec;
import org.apache.plc4x.java.api.exceptions.PlcException;
import org.apache.plc4x.java.api.exceptions.PlcProtocolException;
-import org.apache.plc4x.java.api.messages.*;
+import org.apache.plc4x.java.api.messages.PlcReadRequest;
+import org.apache.plc4x.java.api.messages.PlcRequestContainer;
+import org.apache.plc4x.java.api.messages.PlcResponse;
+import org.apache.plc4x.java.api.messages.PlcWriteRequest;
import org.apache.plc4x.java.api.messages.items.ReadRequestItem;
import org.apache.plc4x.java.api.messages.items.ReadResponseItem;
import org.apache.plc4x.java.api.messages.items.WriteRequestItem;
@@ -99,7 +102,7 @@ public class Plc4XS7Protocol extends MessageToMessageCodec<S7Message, PlcRequest
// Depending on the address type, generate the corresponding type of request item.
VarParameterItem varParameterItem = encodeVarParameterItem(
- requestItem.getAddress(), transportSize, requestItem.getValues().length);
+ requestItem.getAddress(), transportSize, requestItem.getValues().size());
parameterItems.add(varParameterItem);
DataTransportSize dataTransportSize = encodeDataTransportSize(requestItem.getDatatype());
@@ -108,7 +111,7 @@ public class Plc4XS7Protocol extends MessageToMessageCodec<S7Message, PlcRequest
}
VarPayloadItem varPayloadItem = new VarPayloadItem(
- DataTransportErrorCode.RESERVED, dataTransportSize, encodeData(requestItem.getValues()));
+ DataTransportErrorCode.RESERVED, dataTransportSize, encodeData(requestItem.getValues().toArray()));
payloadItems.add(varPayloadItem);
}
@@ -141,7 +144,7 @@ public class Plc4XS7Protocol extends MessageToMessageCodec<S7Message, PlcRequest
if (requestContainer.getRequest() instanceof PlcReadRequest) {
PlcReadRequest plcReadRequest = (PlcReadRequest) requestContainer.getRequest();
- List<ReadResponseItem> responseItems = new LinkedList<>();
+ List<ReadResponseItem<?>> responseItems = new LinkedList<>();
VarPayload payload = responseMessage.getPayload(VarPayload.class);
// If the numbers of items don't match, we're in big trouble as the only
// way to know how to interpret the responses is by aligning them with the
@@ -186,7 +189,7 @@ public class Plc4XS7Protocol extends MessageToMessageCodec<S7Message, PlcRequest
// Handle the response to a write request.
else if (requestContainer.getRequest() instanceof PlcWriteRequest) {
PlcWriteRequest plcWriteRequest = (PlcWriteRequest) requestContainer.getRequest();
- List<WriteResponseItem> responseItems = new LinkedList<>();
+ List<WriteResponseItem<?>> responseItems = new LinkedList<>();
VarPayload payload = responseMessage.getPayload(VarPayload.class);
// If the numbers of items don't match, we're in big trouble as the only
// way to know how to interpret the responses is by aligning them with the
@@ -297,7 +300,7 @@ public class Plc4XS7Protocol extends MessageToMessageCodec<S7Message, PlcRequest
}
private byte[] encodeData(Object[] values) {
- final int length =values.length;
+ final int length = values.length;
if (length == 0) {
return new byte[]{};
}
@@ -380,10 +383,13 @@ public class Plc4XS7Protocol extends MessageToMessageCodec<S7Message, PlcRequest
}
}
- @SuppressWarnings("unchecked")private <T>List<T> decodeData(Class<T> datatype, byte[] s7Data) throws PlcProtocolException {
+ @SuppressWarnings("unchecked")
+ private <T> List<T> decodeData(Class<T> datatype, byte[] s7Data) throws PlcProtocolException {
List<Object> result = new LinkedList<>();
- int i = 0; final int length = s7Data.length;while (i < length) {
+ int i = 0;
+ final int length = s7Data.length;
+ while (i < length) {
if (datatype == Boolean.class) {
result.add((s7Data[i] & 0x01) == 0x01);
i += 1;
@@ -408,7 +414,7 @@ public class Plc4XS7Protocol extends MessageToMessageCodec<S7Message, PlcRequest
} else if (datatype == String.class) {
StringBuilder builder = new StringBuilder();
while (s7Data[i] != (byte) 0x0 && i < length) {
- builder.append((char)s7Data[i]);
+ builder.append((char) s7Data[i]);
i++;
}
i++; // skip terminating character
--
To stop receiving notification emails like this one, please contact
"commits@plc4x.apache.org" <co...@plc4x.apache.org>.