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 08:27:47 UTC
[incubator-plc4x] 03/03: link response into request to retrieve a
typed response.
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 d6497dc7fa7dc0b34bf7169318fe241e4341a084
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Thu Jan 11 09:27:21 2018 +0100
link response into request to retrieve a typed response.
---
.../plc4x/java/api/messages/items/ReadRequestItem.java | 13 +++++++++++++
.../plc4x/java/api/messages/items/ReadResponseItem.java | 3 ++-
.../plc4x/java/api/messages/items/WriteRequestItem.java | 12 ++++++++++++
.../plc4x/java/api/messages/items/WriteResponseItem.java | 1 +
4 files changed, 28 insertions(+), 1 deletion(-)
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadRequestItem.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadRequestItem.java
index 6086959..fe3bc25 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadRequestItem.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadRequestItem.java
@@ -20,6 +20,8 @@ package org.apache.plc4x.java.api.messages.items;
import org.apache.plc4x.java.api.model.Address;
+import java.util.Optional;
+
public class ReadRequestItem<T> {
private final Class<T> datatype;
@@ -28,16 +30,20 @@ public class ReadRequestItem<T> {
private final int size;
+ private ReadResponseItem<T> responseItem;
+
public ReadRequestItem(Class<T> datatype, Address address) {
this.datatype = datatype;
this.address = address;
this.size = 1;
+ this.responseItem = null;
}
public ReadRequestItem(Class<T> datatype, Address address, int size) {
this.datatype = datatype;
this.address = address;
this.size = size;
+ this.responseItem = null;
}
public Class<T> getDatatype() {
@@ -52,4 +58,11 @@ public class ReadRequestItem<T> {
return size;
}
+ public Optional<ReadResponseItem<T>> getResponseItem() {
+ return Optional.ofNullable(responseItem);
+ }
+
+ protected void setResponseItem(ReadResponseItem<T> responseItem) {
+ this.responseItem = responseItem;
+ }
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadResponseItem.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadResponseItem.java
index 286fb64..876d4ec 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadResponseItem.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/ReadResponseItem.java
@@ -34,9 +34,10 @@ public class ReadResponseItem<T> {
this.requestItem = requestItem;
this.responseCode = responseCode;
this.values = values;
+ requestItem.setResponseItem(this);
}
- public ReadRequestItem getRequestItem() {
+ public ReadRequestItem<T> getRequestItem() {
return requestItem;
}
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 44111ae..33aa544 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
@@ -21,6 +21,7 @@ package org.apache.plc4x.java.api.messages.items;
import org.apache.plc4x.java.api.model.Address;
import java.lang.reflect.Array;
+import java.util.Optional;
public class WriteRequestItem<T> {
@@ -30,18 +31,22 @@ public class WriteRequestItem<T> {
private final T[] values;
+ private WriteResponseItem<T> responseItem;
+
@SuppressWarnings("unchecked")
public WriteRequestItem(Class<T> datatype, Address address, T value) {
this.datatype = datatype;
this.address = address;
this.values = (T[]) Array.newInstance(datatype, 1);
this.values[0] = value;
+ responseItem = null;
}
public WriteRequestItem(Class<T> datatype, Address address, T[] values) {
this.datatype = datatype;
this.address = address;
this.values = values;
+ responseItem = null;
}
public Class<T> getDatatype() {
@@ -56,4 +61,11 @@ public class WriteRequestItem<T> {
return values;
}
+ public Optional<WriteResponseItem<T>> getResponseItem() {
+ return Optional.ofNullable(responseItem);
+ }
+
+ protected void setResponseItem(WriteResponseItem<T> responseItem) {
+ this.responseItem = responseItem;
+ }
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteResponseItem.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteResponseItem.java
index 524f68f..1e3995c 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteResponseItem.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/items/WriteResponseItem.java
@@ -29,6 +29,7 @@ public class WriteResponseItem<T> {
public WriteResponseItem(WriteRequestItem<T> requestItem, ResponseCode responseCode) {
this.requestItem = requestItem;
this.responseCode = responseCode;
+ requestItem.setResponseItem(this);
}
public WriteRequestItem<T> getRequestItem() {
--
To stop receiving notification emails like this one, please contact
"commits@plc4x.apache.org" <co...@plc4x.apache.org>.