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();
}