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/17 16:48:08 UTC

[incubator-plc4x] 01/19: added execute() to PlcRequest

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 1ac09c968200a9b8c2fa2e4750dc408fbf9b470b
Author: Andrey Skorikov <an...@codecentric.de>
AuthorDate: Thu Oct 4 10:28:01 2018 +0200

    added execute() to PlcRequest
---
 .../org/apache/plc4x/java/api/connection/PlcProprietarySender.java | 2 +-
 .../main/java/org/apache/plc4x/java/api/connection/PlcReader.java  | 4 ++--
 .../main/java/org/apache/plc4x/java/api/connection/PlcWriter.java  | 4 ++--
 .../java/org/apache/plc4x/java/api/messages/PlcFieldRequest.java   | 4 ++++
 .../java/org/apache/plc4x/java/api/messages/PlcFieldResponse.java  | 6 ++++--
 .../org/apache/plc4x/java/api/messages/PlcProprietaryResponse.java | 2 +-
 .../java/org/apache/plc4x/java/api/messages/PlcReadRequest.java    | 5 +++++
 .../java/org/apache/plc4x/java/api/messages/PlcReadResponse.java   | 5 ++++-
 .../main/java/org/apache/plc4x/java/api/messages/PlcRequest.java   | 4 +++-
 .../main/java/org/apache/plc4x/java/api/messages/PlcResponse.java  | 7 ++-----
 .../org/apache/plc4x/java/api/messages/PlcSubscriptionRequest.java | 4 ++++
 .../apache/plc4x/java/api/messages/PlcSubscriptionResponse.java    | 5 ++++-
 .../apache/plc4x/java/api/messages/PlcUnsubscriptionRequest.java   | 4 ++++
 .../apache/plc4x/java/api/messages/PlcUnsubscriptionResponse.java  | 5 ++++-
 .../java/org/apache/plc4x/java/api/messages/PlcWriteRequest.java   | 4 ++++
 .../java/org/apache/plc4x/java/api/messages/PlcWriteResponse.java  | 5 ++++-
 16 files changed, 52 insertions(+), 18 deletions(-)

diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcProprietarySender.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcProprietarySender.java
index afadad0..926b1bf 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcProprietarySender.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcProprietarySender.java
@@ -25,5 +25,5 @@ import java.util.concurrent.CompletableFuture;
 
 public interface PlcProprietarySender {
 
-    <PROP_REQUEST, PROP_RESPONSE> CompletableFuture<PlcProprietaryResponse<PlcProprietaryRequest<PROP_REQUEST>, PROP_RESPONSE>> send(PlcProprietaryRequest<PROP_REQUEST> proprietaryRequest);
+    <PROP_RESPONSE> CompletableFuture<PlcProprietaryResponse<PROP_RESPONSE>> send(PlcProprietaryRequest proprietaryRequest);
 }
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcReader.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcReader.java
index d326409..bdded83 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcReader.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcReader.java
@@ -35,7 +35,7 @@ public interface PlcReader {
      * @param readRequest object describing the type and location of the value.
      * @return a {@link CompletableFuture} giving async access to the returned value.
      */
-    CompletableFuture<PlcReadResponse<?>> read(PlcReadRequest readRequest);
+    CompletableFuture<PlcReadResponse> read(PlcReadRequest readRequest);
 
     /**
      * Reads a requested value from a PLC.
@@ -43,7 +43,7 @@ public interface PlcReader {
      * @param readRequestBuilderConsumer consumer which can be used to build requests.
      * @return a {@link CompletableFuture} giving async access to the returned value.
      */
-    default CompletableFuture<PlcReadResponse<?>> read(Consumer<PlcReadRequest.Builder> readRequestBuilderConsumer) {
+    default CompletableFuture<PlcReadResponse> read(Consumer<PlcReadRequest.Builder> readRequestBuilderConsumer) {
         PlcReadRequest.Builder requestBuilder = readRequestBuilder();
         readRequestBuilderConsumer.accept(requestBuilder);
         return read(requestBuilder.build());
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcWriter.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcWriter.java
index e974939..ae94859 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcWriter.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/connection/PlcWriter.java
@@ -35,7 +35,7 @@ public interface PlcWriter {
      * @param writeRequest object describing the type, location and value that whould be written.
      * @return a {@link CompletableFuture} giving async access to the response of the write operation.
      */
-    CompletableFuture<PlcWriteResponse<?>> write(PlcWriteRequest writeRequest);
+    CompletableFuture<PlcWriteResponse> write(PlcWriteRequest writeRequest);
 
     /**
      * Writes a given value to a PLC.
@@ -43,7 +43,7 @@ public interface PlcWriter {
      * @param writeRequestBuilderConsumer consumer which can be used to build requests.
      * @return a {@link CompletableFuture} giving async access to the response of the write operation.
      */
-    default CompletableFuture<PlcWriteResponse<?>> write(Consumer<PlcWriteRequest.Builder> writeRequestBuilderConsumer) {
+    default CompletableFuture<PlcWriteResponse> write(Consumer<PlcWriteRequest.Builder> writeRequestBuilderConsumer) {
         PlcWriteRequest.Builder requestBuilder = writeRequestBuilder();
         writeRequestBuilderConsumer.accept(requestBuilder);
         return write(requestBuilder.build());
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcFieldRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcFieldRequest.java
index cff0cb8..85263b7 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcFieldRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcFieldRequest.java
@@ -22,9 +22,13 @@ import org.apache.plc4x.java.api.model.PlcField;
 
 import java.util.LinkedHashSet;
 import java.util.LinkedList;
+import java.util.concurrent.CompletableFuture;
 
 public interface PlcFieldRequest extends PlcRequest {
 
+    @Override
+    CompletableFuture<? extends PlcFieldResponse> execute();
+
     int getNumberOfFields();
 
     LinkedHashSet<String> getFieldNames();
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcFieldResponse.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcFieldResponse.java
index 768eb58..cf2be49 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcFieldResponse.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcFieldResponse.java
@@ -26,9 +26,11 @@ import java.util.Collection;
 /**
  * Base type for all response messages sent as response for a prior request
  * from a plc to the plc4x system.
- * @param <REQUEST_TYPE> the type of the matching request.
  */
-public interface PlcFieldResponse<REQUEST_TYPE extends PlcFieldRequest> extends PlcResponse<REQUEST_TYPE> {
+public interface PlcFieldResponse extends PlcResponse {
+
+    @Override
+    PlcFieldRequest getRequest();
 
     Collection<String> getFieldNames();
 
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcProprietaryResponse.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcProprietaryResponse.java
index 2e3bf58..9c03dba 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcProprietaryResponse.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcProprietaryResponse.java
@@ -18,6 +18,6 @@
  */
 package org.apache.plc4x.java.api.messages;
 
-public interface PlcProprietaryResponse<REQUEST extends PlcProprietaryRequest, RESPONSE> extends PlcResponse<REQUEST> {
+public interface PlcProprietaryResponse<RESPONSE> extends PlcResponse {
     RESPONSE getResponse();
 }
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcReadRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcReadRequest.java
index 2b9a7d5..62f97ba 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcReadRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcReadRequest.java
@@ -18,11 +18,16 @@ under the License.
 */
 package org.apache.plc4x.java.api.messages;
 
+import java.util.concurrent.CompletableFuture;
+
 /**
  * Request to read one or more values from a plc.
  */
 public interface PlcReadRequest extends PlcFieldRequest {
 
+    @Override
+    CompletableFuture<? extends PlcReadResponse> execute();
+
     interface Builder extends PlcMessageBuilder<PlcReadRequest> {
         Builder addItem(String name, String fieldQuery);
     }
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcReadResponse.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcReadResponse.java
index bf5900b..e160b16 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcReadResponse.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcReadResponse.java
@@ -28,7 +28,10 @@ import java.util.Collection;
 /**
  * Response to a {@link PlcReadRequest}.
  */
-public interface PlcReadResponse<T extends PlcReadRequest> extends PlcFieldResponse<T> {
+public interface PlcReadResponse extends PlcFieldResponse {
+
+    @Override
+    PlcReadRequest getRequest();
 
     int getNumberOfValues(String name);
 
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcRequest.java
index f2367f9..4b40bf1 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcRequest.java
@@ -18,9 +18,11 @@ under the License.
 */
 package org.apache.plc4x.java.api.messages;
 
+import java.util.concurrent.CompletableFuture;
+
 /**
  * Base type for all messages sent from the plc4x system to a connected plc.
  */
 public interface PlcRequest extends PlcMessage {
-
+    CompletableFuture<? extends PlcResponse> execute();
 }
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcResponse.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcResponse.java
index 0781762..7fdcffc 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcResponse.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcResponse.java
@@ -21,10 +21,7 @@ package org.apache.plc4x.java.api.messages;
 /**
  * Base type for all response messages sent as response for a prior request
  * from a plc to the plc4x system.
- * @param <REQUEST_TYPE> the type of the matching request.
  */
-public interface PlcResponse<REQUEST_TYPE extends PlcRequest> extends PlcMessage {
-
-    REQUEST_TYPE getRequest();
-
+public interface PlcResponse extends PlcMessage {
+    PlcRequest getRequest();
 }
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionRequest.java
index 19cd66e..917f3da 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionRequest.java
@@ -19,9 +19,13 @@ under the License.
 package org.apache.plc4x.java.api.messages;
 
 import java.time.Duration;
+import java.util.concurrent.CompletableFuture;
 
 public interface PlcSubscriptionRequest extends PlcFieldRequest {
 
+    @Override
+    CompletableFuture<? extends PlcSubscriptionResponse> execute();
+
     interface Builder extends PlcMessageBuilder<PlcSubscriptionRequest> {
         /**
          * Adds a new field to the to be constructed request which should be polled cyclically.
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionResponse.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionResponse.java
index 57d71c5..30b802a 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionResponse.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcSubscriptionResponse.java
@@ -22,7 +22,10 @@ import org.apache.plc4x.java.api.model.PlcSubscriptionHandle;
 
 import java.util.Collection;
 
-public interface PlcSubscriptionResponse extends PlcFieldResponse<PlcSubscriptionRequest> {
+public interface PlcSubscriptionResponse extends PlcFieldResponse {
+
+    @Override
+    PlcSubscriptionRequest getRequest();
 
     PlcSubscriptionHandle getSubscriptionHandle(String name);
 
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionRequest.java
index ac7b66a..995675f 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionRequest.java
@@ -21,9 +21,13 @@ package org.apache.plc4x.java.api.messages;
 import org.apache.plc4x.java.api.model.PlcSubscriptionHandle;
 
 import java.util.Collection;
+import java.util.concurrent.CompletableFuture;
 
 public interface PlcUnsubscriptionRequest extends PlcFieldRequest {
 
+    @Override
+    CompletableFuture<? extends PlcUnsubscriptionResponse> execute();
+
     interface Builder extends PlcMessageBuilder<PlcUnsubscriptionRequest> {
         /**
          * TODO document me:
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionResponse.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionResponse.java
index 9764f8d..94b9174 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionResponse.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcUnsubscriptionResponse.java
@@ -18,7 +18,10 @@ under the License.
 */
 package org.apache.plc4x.java.api.messages;
 
-public interface PlcUnsubscriptionResponse extends PlcFieldResponse<PlcUnsubscriptionRequest> {
+public interface PlcUnsubscriptionResponse extends PlcFieldResponse {
+
+    @Override
+    PlcUnsubscriptionRequest getRequest();
 
     interface Builder extends PlcMessageBuilder<PlcUnsubscriptionResponse> {
         /**
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 69ac6bf..36c430e 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
@@ -23,9 +23,13 @@ import java.math.BigInteger;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
+import java.util.concurrent.CompletableFuture;
 
 public interface PlcWriteRequest extends PlcFieldRequest {
 
+    @Override
+    CompletableFuture<? extends PlcWriteResponse> execute();
+
     int getNumberOfValues(String name);
 
     interface Builder extends PlcMessageBuilder<PlcWriteRequest> {
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcWriteResponse.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcWriteResponse.java
index 3bfa79c..035a3d7 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcWriteResponse.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/PlcWriteResponse.java
@@ -18,6 +18,9 @@ under the License.
 */
 package org.apache.plc4x.java.api.messages;
 
-public interface PlcWriteResponse<T extends PlcWriteRequest> extends PlcFieldResponse<T> {
+public interface PlcWriteResponse extends PlcFieldResponse {
+
+    @Override
+    PlcWriteRequest getRequest();
 
 }