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 10:32:29 UTC
[incubator-plc4x] branch refactoring/java_generify updated: make
single requests/responses extend from checked BulkResponse
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 6fbc8de make single requests/responses extend from checked BulkResponse
6fbc8de is described below
commit 6fbc8de4b59cba24b3c0fee8054d699bb1f55b77
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Thu Jan 11 11:32:24 2018 +0100
make single requests/responses extend from checked BulkResponse
---
.../java/org/apache/plc4x/edgent/PlcConnectionAdapter.java | 2 +-
.../java/org/apache/plc4x/edgent/mock/MockConnection.java | 11 +++++++----
.../api/messages/specific/CheckedBulkPlcReadRequest.java | 5 +----
.../api/messages/specific/CheckedBulkPlcWriteRequest.java | 9 +++++----
.../java/api/messages/specific/SinglePlcReadRequest.java | 7 +++++--
.../java/api/messages/specific/SinglePlcReadResponse.java | 4 ++--
.../java/api/messages/specific/SinglePlcWriteRequest.java | 12 +++++-------
.../java/api/messages/specific/SinglePlcWriteResponse.java | 4 ++--
.../java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java | 6 +++---
9 files changed, 31 insertions(+), 29 deletions(-)
diff --git a/integrations/apache-edgent/src/main/java/org/apache/plc4x/edgent/PlcConnectionAdapter.java b/integrations/apache-edgent/src/main/java/org/apache/plc4x/edgent/PlcConnectionAdapter.java
index 7c104df..a689c92 100644
--- a/integrations/apache-edgent/src/main/java/org/apache/plc4x/edgent/PlcConnectionAdapter.java
+++ b/integrations/apache-edgent/src/main/java/org/apache/plc4x/edgent/PlcConnectionAdapter.java
@@ -181,8 +181,8 @@ public class PlcConnectionAdapter implements AutoCloseable {
throw new IllegalArgumentException("Not a legal plc data type: " + cls.getSimpleName());
}
+ @SuppressWarnings("unchecked")
static <T> SinglePlcWriteRequest<T> newPlcWriteRequest(Address address, T value) {
- @SuppressWarnings("unchecked")
Class<T> cls = (Class<T>) value.getClass();
return new SinglePlcWriteRequest<>(cls, address, value);
}
diff --git a/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockConnection.java b/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockConnection.java
index 1868046..c31eb2a 100644
--- a/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockConnection.java
+++ b/integrations/apache-edgent/src/test/java/org/apache/plc4x/edgent/mock/MockConnection.java
@@ -25,7 +25,10 @@ import org.apache.plc4x.java.api.connection.PlcWriter;
import org.apache.plc4x.java.api.exceptions.PlcConnectionException;
import org.apache.plc4x.java.api.exceptions.PlcException;
import org.apache.plc4x.java.api.exceptions.PlcIoException;
-import org.apache.plc4x.java.api.messages.*;
+import org.apache.plc4x.java.api.messages.PlcReadRequest;
+import org.apache.plc4x.java.api.messages.PlcReadResponse;
+import org.apache.plc4x.java.api.messages.PlcWriteRequest;
+import org.apache.plc4x.java.api.messages.PlcWriteResponse;
import org.apache.plc4x.java.api.messages.items.ReadRequestItem;
import org.apache.plc4x.java.api.messages.items.ReadResponseItem;
import org.apache.plc4x.java.api.messages.items.WriteRequestItem;
@@ -98,10 +101,10 @@ public class MockConnection extends AbstractPlcConnection implements PlcReader,
responseItems.add(responseItem);
}
PlcReadResponse response;
- if (readRequest instanceof BulkPlcReadRequest) {
- response = new BulkPlcReadResponse((BulkPlcReadRequest) readRequest, responseItems);
- } else if (readRequest instanceof SinglePlcReadRequest) {
+ if (readRequest instanceof SinglePlcReadRequest) {
response = new SinglePlcReadResponse((SinglePlcReadRequest) readRequest, responseItems.isEmpty() ? null : responseItems.get(0));
+ } else if (readRequest instanceof BulkPlcReadRequest) {
+ response = new BulkPlcReadResponse((BulkPlcReadRequest) readRequest, responseItems);
} else {
response = null;
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/CheckedBulkPlcReadRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/CheckedBulkPlcReadRequest.java
index 42fe6eb..9fd1d90 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/CheckedBulkPlcReadRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/CheckedBulkPlcReadRequest.java
@@ -60,11 +60,8 @@ public class CheckedBulkPlcReadRequest<T> extends BulkPlcReadRequest {
readRequestItems.add((ReadRequestItem<T>) readRequestItem);
}
- public List<? extends ReadRequestItem<?>> getReadRequestItems() {
+ public List<? extends ReadRequestItem<T>> getReadRequestItems() {
return readRequestItems;
}
- public int getNumberOfItems() {
- return readRequestItems.size();
- }
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/CheckedBulkPlcWriteRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/CheckedBulkPlcWriteRequest.java
index ff94d8b..32009de 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/CheckedBulkPlcWriteRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/CheckedBulkPlcWriteRequest.java
@@ -28,7 +28,7 @@ public class CheckedBulkPlcWriteRequest<T> extends BulkPlcWriteRequest {
private final List<WriteRequestItem<T>> requestItems;
- private Class<T> datatype;
+ private final Class<T> datatype;
public CheckedBulkPlcWriteRequest(Class<T> type) {
this.datatype = type;
@@ -40,8 +40,9 @@ public class CheckedBulkPlcWriteRequest<T> extends BulkPlcWriteRequest {
addItem(new WriteRequestItem<>(dataType, address, values));
}
- public CheckedBulkPlcWriteRequest(List<WriteRequestItem<T>> requestItems) {
- this.requestItems = requestItems;
+ public CheckedBulkPlcWriteRequest(Class<T> dataType, List<WriteRequestItem<T>> requestItems) {
+ this(dataType);
+ this.requestItems.addAll(requestItems);
}
@SuppressWarnings("unchecked")
@@ -52,7 +53,7 @@ public class CheckedBulkPlcWriteRequest<T> extends BulkPlcWriteRequest {
if (writeRequestItem.getDatatype() != datatype) {
throw new IllegalArgumentException("Incompatible datatype " + writeRequestItem.getDatatype());
}
- requestItems.add((WriteRequestItem<T>)writeRequestItem);
+ requestItems.add((WriteRequestItem<T>) writeRequestItem);
}
public List<? extends WriteRequestItem<?>> getRequestItems() {
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcReadRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcReadRequest.java
index ac5d05f..8c03128 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcReadRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcReadRequest.java
@@ -18,7 +18,6 @@ under the License.
*/
package org.apache.plc4x.java.api.messages.specific;
-import org.apache.plc4x.java.api.messages.PlcReadRequest;
import org.apache.plc4x.java.api.messages.items.ReadRequestItem;
import org.apache.plc4x.java.api.model.Address;
@@ -26,22 +25,26 @@ import java.util.Collections;
import java.util.List;
import java.util.Optional;
-public class SinglePlcReadRequest<T> implements PlcReadRequest {
+public class SinglePlcReadRequest<T> extends CheckedBulkPlcReadRequest<T> {
private ReadRequestItem<T> requestItem;
public SinglePlcReadRequest() {
+ super(null);
}
public SinglePlcReadRequest(ReadRequestItem<T> requestItem) {
+ super(null);
this.requestItem = requestItem;
}
public SinglePlcReadRequest(Class<T> dataType, Address address) {
+ super(null);
requestItem = new ReadRequestItem<>(dataType, address);
}
public SinglePlcReadRequest(Class<T> dataType, Address address, int size) {
+ super(null);
requestItem = new ReadRequestItem<>(dataType, address, size);
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcReadResponse.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcReadResponse.java
index 1161e47..24acb1c 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcReadResponse.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcReadResponse.java
@@ -18,19 +18,19 @@ under the License.
*/
package org.apache.plc4x.java.api.messages.specific;
-import org.apache.plc4x.java.api.messages.PlcReadResponse;
import org.apache.plc4x.java.api.messages.items.ReadResponseItem;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
-public class SinglePlcReadResponse<T> implements PlcReadResponse {
+public class SinglePlcReadResponse<T> extends CheckedBulkPlcReadResponse<T> {
private final SinglePlcReadRequest<T> request;
private final ReadResponseItem<T> responseItem;
public SinglePlcReadResponse(SinglePlcReadRequest<T> request, ReadResponseItem<T> responseItem) {
+ super(request, Collections.singletonList(responseItem));
this.request = request;
this.responseItem = responseItem;
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcWriteRequest.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcWriteRequest.java
index 3beca8b..4da59b7 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcWriteRequest.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcWriteRequest.java
@@ -18,7 +18,6 @@ under the License.
*/
package org.apache.plc4x.java.api.messages.specific;
-import org.apache.plc4x.java.api.messages.PlcWriteRequest;
import org.apache.plc4x.java.api.messages.items.WriteRequestItem;
import org.apache.plc4x.java.api.model.Address;
@@ -26,22 +25,21 @@ import java.util.Collections;
import java.util.List;
import java.util.Optional;
-public class SinglePlcWriteRequest<T> implements PlcWriteRequest {
+public class SinglePlcWriteRequest<T> extends CheckedBulkPlcWriteRequest<T> {
private WriteRequestItem<T> requestItem;
public SinglePlcWriteRequest() {
+ super(null);
}
public SinglePlcWriteRequest(WriteRequestItem<T> requestItem) {
+ super(null);
this.requestItem = requestItem;
}
- public SinglePlcWriteRequest(Class<T> dataType, Address address, T value) {
- addItem(new WriteRequestItem<>(dataType, address, value));
- }
-
- public SinglePlcWriteRequest(Class<T> dataType, Address address, T[] values) {
+ public SinglePlcWriteRequest(Class<T> dataType, Address address, T... values) {
+ super(null);
addItem(new WriteRequestItem<>(dataType, address, values));
}
diff --git a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcWriteResponse.java b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcWriteResponse.java
index 6c2c498..7b7abe1 100644
--- a/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcWriteResponse.java
+++ b/plc4j/api/src/main/java/org/apache/plc4x/java/api/messages/specific/SinglePlcWriteResponse.java
@@ -18,19 +18,19 @@ under the License.
*/
package org.apache.plc4x.java.api.messages.specific;
-import org.apache.plc4x.java.api.messages.PlcWriteResponse;
import org.apache.plc4x.java.api.messages.items.WriteResponseItem;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
-public class SinglePlcWriteResponse<T> implements PlcWriteResponse {
+public class SinglePlcWriteResponse<T> extends CheckedBulkPlcWriteResponse<T> {
private final SinglePlcWriteRequest<T> request;
private final WriteResponseItem<T> responseItem;
public SinglePlcWriteResponse(SinglePlcWriteRequest<T> request, WriteResponseItem<T> responseItem) {
+ super(request, Collections.singletonList(responseItem));
this.request = request;
this.responseItem = responseItem;
}
diff --git a/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java b/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java
index 6233801..f8ccf3d 100644
--- a/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java
+++ b/plc4j/protocols/s7/src/main/java/org/apache/plc4x/java/s7/netty/Plc4XS7Protocol.java
@@ -177,10 +177,10 @@ public class Plc4XS7Protocol extends MessageToMessageCodec<S7Message, PlcRequest
}
responseItems.add(responseItem);
}
- if (plcReadRequest instanceof BulkPlcReadRequest) {
- response = new BulkPlcReadResponse((BulkPlcReadRequest) plcReadRequest, responseItems);
- } else if (plcReadRequest instanceof SinglePlcReadRequest) {
+ if (plcReadRequest instanceof SinglePlcReadRequest) {
response = new SinglePlcReadResponse((SinglePlcReadRequest) plcReadRequest, responseItems.isEmpty() ? null : responseItems.get(0));
+ } else if (plcReadRequest instanceof BulkPlcReadRequest) {
+ response = new BulkPlcReadResponse((BulkPlcReadRequest) plcReadRequest, responseItems);
} else {
response = null;
}
--
To stop receiving notification emails like this one, please contact
['"commits@plc4x.apache.org" <co...@plc4x.apache.org>'].