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/05 10:58:33 UTC
[incubator-plc4x] branch refactoring/java_generify updated: added a
checked variant of bulk requests/responses.
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
The following commit(s) were added to refs/heads/refactoring/java_generify by this push:
new 1eb41f8 added a checked variant of bulk requests/responses.
1eb41f8 is described below
commit 1eb41f86070da5789a59be8d7d50b49921d7d1b4
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Fri Jan 5 11:58:28 2018 +0100
added a checked variant of bulk requests/responses.
---
.../java/api/messages/BulkPlcReadRequest.java | 2 +-
.../java/api/messages/BulkPlcReadResponse.java | 2 +-
.../java/api/messages/BulkPlcWriteRequest.java | 2 +-
.../java/api/messages/BulkPlcWriteResponse.java | 2 +-
...Request.java => CheckedBulkPlcReadRequest.java} | 35 +++++++++++++-------
...sponse.java => CheckedBulkPlcReadResponse.java} | 11 ++++---
...equest.java => CheckedBulkPlcWriteRequest.java} | 37 ++++++++++++++--------
...ponse.java => CheckedBulkPlcWriteResponse.java} | 11 ++++---
8 files changed, 63 insertions(+), 39 deletions(-)
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcReadRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcReadRequest.java
index 631a99d..58f68a2 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcReadRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcReadRequest.java
@@ -47,7 +47,7 @@ public class BulkPlcReadRequest implements PlcReadRequest {
readRequestItems.add(readRequestItem);
}
- public List<ReadRequestItem> getReadRequestItems() {
+ public List<? extends ReadRequestItem> getReadRequestItems() {
return readRequestItems;
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcReadResponse.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcReadResponse.java
index 420d325..209ae5e 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcReadResponse.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcReadResponse.java
@@ -36,7 +36,7 @@ public class BulkPlcReadResponse implements PlcReadResponse {
return request;
}
- public List<ReadResponseItem> getResponseItems() {
+ public List<? extends ReadResponseItem> getResponseItems() {
return responseItems;
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcWriteRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcWriteRequest.java
index ff64054..c1cbf10 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcWriteRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcWriteRequest.java
@@ -51,7 +51,7 @@ public class BulkPlcWriteRequest implements PlcWriteRequest {
requestItems.add(requestItem);
}
- public List<WriteRequestItem> getRequestItems() {
+ public List<? extends WriteRequestItem> getRequestItems() {
return requestItems;
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcWriteResponse.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcWriteResponse.java
index 8e51652..25f2a71 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcWriteResponse.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcWriteResponse.java
@@ -36,7 +36,7 @@ public class BulkPlcWriteResponse implements PlcWriteResponse {
return request;
}
- public List<WriteResponseItem> getResponseItems() {
+ public List<? extends WriteResponseItem> getResponseItems() {
return responseItems;
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcReadRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/CheckedBulkPlcReadRequest.java
similarity index 55%
copy from plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcReadRequest.java
copy to plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/CheckedBulkPlcReadRequest.java
index 631a99d..72ec1a0 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcReadRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/CheckedBulkPlcReadRequest.java
@@ -24,30 +24,43 @@ import org.apache.plc4x.java.api.model.Address;
import java.util.LinkedList;
import java.util.List;
-@SuppressWarnings("unchecked")
-public class BulkPlcReadRequest implements PlcReadRequest {
+public class CheckedBulkPlcReadRequest<T> extends BulkPlcReadRequest {
- private final List<ReadRequestItem> readRequestItems;
+ private final List<ReadRequestItem<T>> readRequestItems;
- public BulkPlcReadRequest() {
+ private Class<T> datatype;
+
+ public CheckedBulkPlcReadRequest(Class<T> type) {
+ this.datatype = type;
this.readRequestItems = new LinkedList<>();
}
- public BulkPlcReadRequest(Class dataType, Address address) {
- this();
- addItem(new ReadRequestItem(dataType, address));
+ public CheckedBulkPlcReadRequest(Class<T> dataType, Address address) {
+ this(dataType);
+ addItem(new ReadRequestItem<>(dataType, address));
+ }
+
+ public CheckedBulkPlcReadRequest(Class<T> dataType, Address address, int size) {
+ this(dataType);
+ addItem(new ReadRequestItem<>(dataType, address, size));
}
- public BulkPlcReadRequest(Class dataType, Address address, int size) {
- this();
- addItem(new ReadRequestItem(dataType, address, size));
+ public void addCheckedItem(ReadRequestItem<T> readRequestItem) {
+ readRequestItems.add(readRequestItem);
}
+ @SuppressWarnings("unchecked")
public void addItem(ReadRequestItem readRequestItem) {
+ if (readRequestItem == null) {
+ return;
+ }
+ if (readRequestItem.getDatatype() != datatype) {
+ throw new IllegalArgumentException("Incompatible datatype " + readRequestItem.getDatatype());
+ }
readRequestItems.add(readRequestItem);
}
- public List<ReadRequestItem> getReadRequestItems() {
+ public List<? extends ReadRequestItem> getReadRequestItems() {
return readRequestItems;
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcReadResponse.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/CheckedBulkPlcReadResponse.java
similarity index 73%
copy from plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcReadResponse.java
copy to plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/CheckedBulkPlcReadResponse.java
index 420d325..ff9976d 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcReadResponse.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/CheckedBulkPlcReadResponse.java
@@ -22,12 +22,13 @@ import org.apache.plc4x.java.api.messages.items.ReadResponseItem;
import java.util.List;
-public class BulkPlcReadResponse implements PlcReadResponse {
+public class CheckedBulkPlcReadResponse<T> extends BulkPlcReadResponse {
- private final BulkPlcReadRequest request;
- private final List<ReadResponseItem> responseItems;
+ private final CheckedBulkPlcReadRequest<T> request;
+ private final List<ReadResponseItem<T>> responseItems;
- public BulkPlcReadResponse(BulkPlcReadRequest request, List<ReadResponseItem> responseItems) {
+ public CheckedBulkPlcReadResponse(CheckedBulkPlcReadRequest<T> request, List<ReadResponseItem<T>> responseItems) {
+ super(null, null);
this.request = request;
this.responseItems = responseItems;
}
@@ -36,7 +37,7 @@ public class BulkPlcReadResponse implements PlcReadResponse {
return request;
}
- public List<ReadResponseItem> getResponseItems() {
+ public List<ReadResponseItem<T>> getResponseItems() {
return responseItems;
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcWriteRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/CheckedBulkPlcWriteRequest.java
similarity index 51%
copy from plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcWriteRequest.java
copy to plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/CheckedBulkPlcWriteRequest.java
index ff64054..e51e225 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcWriteRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/CheckedBulkPlcWriteRequest.java
@@ -24,34 +24,43 @@ import org.apache.plc4x.java.api.model.Address;
import java.util.LinkedList;
import java.util.List;
-@SuppressWarnings("unchecked")
-public class BulkPlcWriteRequest implements PlcWriteRequest {
+public class CheckedBulkPlcWriteRequest<T> extends BulkPlcWriteRequest {
- private final List<WriteRequestItem> requestItems;
+ private final List<WriteRequestItem<T>> requestItems;
- public BulkPlcWriteRequest() {
+ private Class<T> datatype;
+
+ public CheckedBulkPlcWriteRequest(Class<T> type) {
+ this.datatype = type;
this.requestItems = new LinkedList<>();
}
- public BulkPlcWriteRequest(Class dataType, Address address, Object value) {
- this();
- addItem(new WriteRequestItem(dataType, address, value));
+ public CheckedBulkPlcWriteRequest(Class<T> dataType, Address address, T value) {
+ this(dataType);
+ addItem(new WriteRequestItem<>(dataType, address, value));
}
- public BulkPlcWriteRequest(Class dataType, Address address, Object[] values) {
- this();
- addItem(new WriteRequestItem(dataType, address, values));
+ public CheckedBulkPlcWriteRequest(Class<T> dataType, Address address, T[] values) {
+ this(dataType);
+ addItem(new WriteRequestItem<>(dataType, address, values));
}
- public BulkPlcWriteRequest(List<WriteRequestItem> requestItems) {
+ public CheckedBulkPlcWriteRequest(List<WriteRequestItem<T>> requestItems) {
this.requestItems = requestItems;
}
- public void addItem(WriteRequestItem requestItem) {
- requestItems.add(requestItem);
+ @SuppressWarnings("unchecked")
+ public void addItem(WriteRequestItem writeRequestItem) {
+ if (writeRequestItem == null) {
+ return;
+ }
+ if (writeRequestItem.getDatatype() != datatype) {
+ throw new IllegalArgumentException("Incompatible datatype " + writeRequestItem.getDatatype());
+ }
+ requestItems.add(writeRequestItem);
}
- public List<WriteRequestItem> getRequestItems() {
+ public List<? extends WriteRequestItem> getRequestItems() {
return requestItems;
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcWriteResponse.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/CheckedBulkPlcWriteResponse.java
similarity index 73%
copy from plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcWriteResponse.java
copy to plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/CheckedBulkPlcWriteResponse.java
index 8e51652..c76175b 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/BulkPlcWriteResponse.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/CheckedBulkPlcWriteResponse.java
@@ -22,12 +22,13 @@ import org.apache.plc4x.java.api.messages.items.WriteResponseItem;
import java.util.List;
-public class BulkPlcWriteResponse implements PlcWriteResponse {
+public class CheckedBulkPlcWriteResponse<T> extends BulkPlcWriteResponse {
- private final BulkPlcWriteRequest request;
- private final List<WriteResponseItem> responseItems;
+ private final CheckedBulkPlcWriteRequest<T> request;
+ private final List<WriteResponseItem<T>> responseItems;
- public BulkPlcWriteResponse(BulkPlcWriteRequest request, List<WriteResponseItem> responseItems) {
+ public CheckedBulkPlcWriteResponse(CheckedBulkPlcWriteRequest<T> request, List<WriteResponseItem<T>> responseItems) {
+ super(null, null);
this.request = request;
this.responseItems = responseItems;
}
@@ -36,7 +37,7 @@ public class BulkPlcWriteResponse implements PlcWriteResponse {
return request;
}
- public List<WriteResponseItem> getResponseItems() {
+ public List<WriteResponseItem<T>> getResponseItems() {
return responseItems;
}
--
To stop receiving notification emails like this one, please contact
['"commits@plc4x.apache.org" <co...@plc4x.apache.org>'].