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/09/26 16:18:09 UTC

[incubator-plc4x] branch master updated: [General] added some utility methods to requests and responses.

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


The following commit(s) were added to refs/heads/master by this push:
     new 523ada0  [General] added some utility methods to requests and responses.
523ada0 is described below

commit 523ada0cc52095b373a33ee998663c823b029a10
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Wed Sep 26 18:18:04 2018 +0200

    [General] added some utility methods to requests and responses.
---
 .../java/base/messages/DefaultPlcReadRequest.java  | 12 +++++++++-
 .../java/base/messages/DefaultPlcReadResponse.java |  5 ++++
 .../messages/DefaultPlcSubscriptionRequest.java    | 15 ++++++++----
 .../messages/DefaultPlcUnsubscriptionRequest.java  |  6 +++++
 .../java/base/messages/DefaultPlcWriteRequest.java | 28 +++++++++++++++++++++-
 .../base/messages/DefaultPlcWriteResponse.java     |  5 ++++
 .../base/messages/InternalPlcFieldRequest.java     |  6 +++++
 .../java/base/messages/InternalPlcReadRequest.java |  2 +-
 .../base/messages/InternalPlcReadResponse.java     |  6 +++++
 .../base/messages/InternalPlcWriteRequest.java     |  4 ++++
 .../base/messages/InternalPlcWriteResponse.java    |  5 +++-
 11 files changed, 85 insertions(+), 9 deletions(-)

diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequest.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequest.java
index ef9d7ba..9b60fe4 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequest.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadRequest.java
@@ -18,18 +18,20 @@ under the License.
 */
 package org.apache.plc4x.java.base.messages;
 
+import org.apache.commons.lang3.tuple.Pair;
 import org.apache.plc4x.java.api.exceptions.PlcRuntimeException;
 import org.apache.plc4x.java.api.messages.PlcReadRequest;
 import org.apache.plc4x.java.api.model.PlcField;
 import org.apache.plc4x.java.base.connection.PlcFieldHandler;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 public class DefaultPlcReadRequest implements InternalPlcReadRequest, InternalPlcFieldRequest {
 
     private LinkedHashMap<String, PlcField> fields;
 
-    private DefaultPlcReadRequest(LinkedHashMap<String, PlcField> fields) {
+    protected DefaultPlcReadRequest(LinkedHashMap<String, PlcField> fields) {
         this.fields = fields;
     }
 
@@ -54,6 +56,14 @@ public class DefaultPlcReadRequest implements InternalPlcReadRequest, InternalPl
         return new LinkedList<>(fields.values());
     }
 
+    @Override
+    public LinkedList<Pair<String, PlcField>> getNamedFields() {
+        return fields.entrySet()
+            .stream()
+            .map(stringPlcFieldEntry -> Pair.of(stringPlcFieldEntry.getKey(), stringPlcFieldEntry.getValue()))
+            .collect(Collectors.toCollection(LinkedList::new));
+    }
+
     public static class Builder implements PlcReadRequest.Builder {
 
         private final PlcFieldHandler fieldHandler;
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadResponse.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadResponse.java
index cd2dc47..73cad97 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadResponse.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcReadResponse.java
@@ -76,6 +76,11 @@ public class DefaultPlcReadResponse implements InternalPlcReadResponse {
     }
 
     @Override
+    public Map<String, Pair<PlcResponseCode, FieldItem>> getValues() {
+        return values;
+    }
+
+    @Override
     public Object getObject(String name) {
         return getObject(name, 0);
     }
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequest.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequest.java
index f50f0ad..9f59cb3 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequest.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcSubscriptionRequest.java
@@ -34,27 +34,32 @@ public class DefaultPlcSubscriptionRequest implements InternalPlcSubscriptionReq
 
     @Override
     public int getNumberOfFields() {
-        return 0;
+        throw new IllegalStateException("not available");
     }
 
     @Override
     public LinkedHashSet<String> getFieldNames() {
-        return null;
+        throw new IllegalStateException("not available");
     }
 
     @Override
     public PlcField getField(String name) {
-        return null;
+        throw new IllegalStateException("not available");
     }
 
     @Override
     public LinkedList<PlcField> getFields() {
-        return null;
+        throw new IllegalStateException("not available");
     }
 
     @Override
     public PlcSubscriptionType getPlcSubscriptionType() {
-        return null;
+        throw new IllegalStateException("not available");
+    }
+
+    @Override
+    public LinkedList<Pair<String, PlcField>> getNamedFields() {
+        throw new IllegalStateException("not available");
     }
 
     public static class Builder implements PlcSubscriptionRequest.Builder {
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcUnsubscriptionRequest.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcUnsubscriptionRequest.java
index 38a52f0..5dbccea 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcUnsubscriptionRequest.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcUnsubscriptionRequest.java
@@ -18,6 +18,7 @@
  */
 package org.apache.plc4x.java.base.messages;
 
+import org.apache.commons.lang3.tuple.Pair;
 import org.apache.plc4x.java.api.messages.PlcUnsubscriptionRequest;
 import org.apache.plc4x.java.api.model.PlcField;
 import org.apache.plc4x.java.api.model.PlcSubscriptionHandle;
@@ -59,6 +60,11 @@ public class DefaultPlcUnsubscriptionRequest implements InternalPlcUnsubscriptio
         return internalPlcSubscriptionHandles;
     }
 
+    @Override
+    public LinkedList<Pair<String, PlcField>> getNamedFields() {
+        throw new IllegalStateException("not available");
+    }
+
     public static class Builder implements PlcUnsubscriptionRequest.Builder {
 
         private List<InternalPlcSubscriptionHandle> plcSubscriptionHandles;
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteRequest.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteRequest.java
index 1eb3458..d7e4086 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteRequest.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteRequest.java
@@ -20,6 +20,7 @@ package org.apache.plc4x.java.base.messages;
 
 import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.apache.commons.lang3.tuple.Pair;
+import org.apache.commons.lang3.tuple.Triple;
 import org.apache.plc4x.java.api.exceptions.PlcRuntimeException;
 import org.apache.plc4x.java.api.messages.PlcWriteRequest;
 import org.apache.plc4x.java.api.model.PlcField;
@@ -39,7 +40,7 @@ public class DefaultPlcWriteRequest implements InternalPlcWriteRequest, Internal
 
     private final LinkedHashMap<String, Pair<PlcField, FieldItem>> fields;
 
-    private DefaultPlcWriteRequest(LinkedHashMap<String, Pair<PlcField, FieldItem>> fields) {
+    protected DefaultPlcWriteRequest(LinkedHashMap<String, Pair<PlcField, FieldItem>> fields) {
         this.fields = fields;
     }
 
@@ -74,6 +75,31 @@ public class DefaultPlcWriteRequest implements InternalPlcWriteRequest, Internal
     }
 
     @Override
+    public LinkedList<Pair<String, PlcField>> getNamedFields() {
+        return fields.entrySet()
+            .stream()
+            .map(stringPairEntry ->
+                Pair.of(
+                    stringPairEntry.getKey(),
+                    stringPairEntry.getValue().getKey()
+                )
+            ).collect(Collectors.toCollection(LinkedList::new));
+    }
+
+    @Override
+    public LinkedList<Triple<String, PlcField, FieldItem>> getNamedFieldTriples() {
+        return fields.entrySet()
+            .stream()
+            .map(stringPairEntry ->
+                Triple.of(
+                    stringPairEntry.getKey(),
+                    stringPairEntry.getValue().getKey(),
+                    stringPairEntry.getValue().getValue()
+                )
+            ).collect(Collectors.toCollection(LinkedList::new));
+    }
+
+    @Override
     public int getNumberOfValues(String name) {
         return fields.get(name).getValue().getNumberOfValues();
     }
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteResponse.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteResponse.java
index e7c5e83..a004f0f 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteResponse.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/DefaultPlcWriteResponse.java
@@ -35,6 +35,11 @@ public class DefaultPlcWriteResponse implements InternalPlcWriteResponse {
     }
 
     @Override
+    public Map<String, PlcResponseCode> getValues() {
+        return values;
+    }
+
+    @Override
     public InternalPlcWriteRequest getRequest() {
         return request;
     }
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcFieldRequest.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcFieldRequest.java
index 55d508f..a7ee30c 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcFieldRequest.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcFieldRequest.java
@@ -18,8 +18,14 @@
  */
 package org.apache.plc4x.java.base.messages;
 
+import org.apache.commons.lang3.tuple.Pair;
 import org.apache.plc4x.java.api.messages.PlcFieldRequest;
+import org.apache.plc4x.java.api.model.PlcField;
+
+import java.util.LinkedList;
 
 public interface InternalPlcFieldRequest extends PlcFieldRequest {
 
+    LinkedList<Pair<String, PlcField>> getNamedFields();
+
 }
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcReadRequest.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcReadRequest.java
index b1cd4b0..c787f00 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcReadRequest.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcReadRequest.java
@@ -20,7 +20,7 @@ package org.apache.plc4x.java.base.messages;
 
 import org.apache.plc4x.java.api.messages.PlcReadRequest;
 
-public interface InternalPlcReadRequest extends PlcReadRequest, InternalPlcRequest {
+public interface InternalPlcReadRequest extends PlcReadRequest, InternalPlcFieldRequest, InternalPlcRequest {
 
 }
 
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcReadResponse.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcReadResponse.java
index 27ae68e..775a4c7 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcReadResponse.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcReadResponse.java
@@ -18,8 +18,14 @@
  */
 package org.apache.plc4x.java.base.messages;
 
+import org.apache.commons.lang3.tuple.Pair;
 import org.apache.plc4x.java.api.messages.PlcReadResponse;
+import org.apache.plc4x.java.api.types.PlcResponseCode;
+import org.apache.plc4x.java.base.messages.items.FieldItem;
+
+import java.util.Map;
 
 public interface InternalPlcReadResponse extends PlcReadResponse<InternalPlcReadRequest>, InternalPlcResponse<InternalPlcReadRequest> {
 
+    Map<String, Pair<PlcResponseCode, FieldItem>> getValues();
 }
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteRequest.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteRequest.java
index a4bad51..f10cd89 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteRequest.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteRequest.java
@@ -18,7 +18,9 @@
  */
 package org.apache.plc4x.java.base.messages;
 
+import org.apache.commons.lang3.tuple.Triple;
 import org.apache.plc4x.java.api.messages.PlcWriteRequest;
+import org.apache.plc4x.java.api.model.PlcField;
 import org.apache.plc4x.java.base.messages.items.FieldItem;
 
 import java.util.LinkedList;
@@ -28,4 +30,6 @@ public interface InternalPlcWriteRequest extends PlcWriteRequest, InternalPlcReq
     FieldItem getFieldItem(String name);
 
     LinkedList<FieldItem> getFieldItems();
+
+    LinkedList<Triple<String, PlcField, FieldItem>> getNamedFieldTriples();
 }
diff --git a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteResponse.java b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteResponse.java
index 9d127a5..dbcdc5c 100644
--- a/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteResponse.java
+++ b/plc4j/protocols/driver-bases/base/src/main/java/org/apache/plc4x/java/base/messages/InternalPlcWriteResponse.java
@@ -19,7 +19,10 @@
 package org.apache.plc4x.java.base.messages;
 
 import org.apache.plc4x.java.api.messages.PlcWriteResponse;
+import org.apache.plc4x.java.api.types.PlcResponseCode;
 
-public interface InternalPlcWriteResponse extends PlcWriteResponse<InternalPlcWriteRequest>, InternalPlcResponse<InternalPlcWriteRequest> {
+import java.util.Map;
 
+public interface InternalPlcWriteResponse extends PlcWriteResponse<InternalPlcWriteRequest>, InternalPlcResponse<InternalPlcWriteRequest> {
+    Map<String, PlcResponseCode> getValues();
 }