You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@plc4x.apache.org by jf...@apache.org on 2018/11/01 20:17:55 UTC
[incubator-plc4x] 25/35: [OPM] Several Sonar fixes and small
refactorings.
This is an automated email from the ASF dual-hosted git repository.
jfeinauer pushed a commit to branch add-simple-mock-driver
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git
commit 0249de02c114adde8086c810b136a8c8794db843
Author: julian <j....@pragmaticminds.de>
AuthorDate: Thu Nov 1 12:09:28 2018 +0100
[OPM] Several Sonar fixes and small refactorings.
---
.../org/apache/plc4x/java/examples/helloplc4x/HelloOpm.java | 8 +++-----
.../java/org/apache/plc4x/java/opm/PlcEntityInterceptor.java | 10 ++++++++--
2 files changed, 11 insertions(+), 7 deletions(-)
diff --git a/examples/hello-world-plc4x/src/main/java/org/apache/plc4x/java/examples/helloplc4x/HelloOpm.java b/examples/hello-world-plc4x/src/main/java/org/apache/plc4x/java/examples/helloplc4x/HelloOpm.java
index 6ad1421..2925fe1 100644
--- a/examples/hello-world-plc4x/src/main/java/org/apache/plc4x/java/examples/helloplc4x/HelloOpm.java
+++ b/examples/hello-world-plc4x/src/main/java/org/apache/plc4x/java/examples/helloplc4x/HelloOpm.java
@@ -46,7 +46,7 @@ public class HelloOpm {
private static final String PLC_FIELD_ADDRESS = "%DB225.DBW0:INT";
private final PlcEntityManager entityManager;
- public static void main(String[] args) throws OPMException, InterruptedException {
+ public static void main(String[] args) throws OPMException {
HelloOpm helloOpm = new HelloOpm();
// Do a fetch via connected entity
helloOpm.readValueFromPlcUsingConnectedEntity();
@@ -65,10 +65,9 @@ public class HelloOpm {
* If another method is called on the Entity all Fields are feched from the Plc first, and then the method is
* invoked.
*
- * @throws InterruptedException
* @throws OPMException
*/
- public void readValueFromPlcUsingConnectedEntity() throws InterruptedException, OPMException {
+ public void readValueFromPlcUsingConnectedEntity() throws OPMException {
// Fetch connected Entity
DistanceSensor distanceSensor = entityManager.connect(DistanceSensor.class, ADDRESS);
// Read shoot values a hundred times
@@ -83,10 +82,9 @@ public class HelloOpm {
* <b>once</b> and injects them in the new instance. After the constructing this is a regular POJO with no fancy
* functionality.
*
- * @throws InterruptedException
* @throws OPMException
*/
- public void readValueFromPlcUsingRead() throws InterruptedException, OPMException {
+ public void readValueFromPlcUsingRead() throws OPMException {
// Read Entity from PLC
DistanceSensor distanceSensor = entityManager.read(DistanceSensor.class, ADDRESS);
System.out.println("Current distance: " + distanceSensor.getDistance());
diff --git a/plc4j/utils/opm/src/main/java/org/apache/plc4x/java/opm/PlcEntityInterceptor.java b/plc4j/utils/opm/src/main/java/org/apache/plc4x/java/opm/PlcEntityInterceptor.java
index 35b074b..61a7c3b 100644
--- a/plc4j/utils/opm/src/main/java/org/apache/plc4x/java/opm/PlcEntityInterceptor.java
+++ b/plc4j/utils/opm/src/main/java/org/apache/plc4x/java/opm/PlcEntityInterceptor.java
@@ -24,7 +24,6 @@ import org.apache.commons.configuration2.Configuration;
import org.apache.commons.configuration2.SystemConfiguration;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.reflect.FieldUtils;
import org.apache.plc4x.java.PlcDriverManager;
import org.apache.plc4x.java.api.PlcConnection;
import org.apache.plc4x.java.api.exceptions.PlcConnectionException;
@@ -64,6 +63,11 @@ public class PlcEntityInterceptor {
private static final Configuration CONF = new SystemConfiguration();
private static final long READ_TIMEOUT = CONF.getLong("org.apache.plc4x.java.opm.entity_manager.read_timeout", 1_000);
+
+ private PlcEntityInterceptor() {
+ throw new UnsupportedOperationException("This class is not to be instantiated");
+ }
+
/**
* Basic Intersector for all methods on the proxy object.
* It checks if the invoked method is a getter and if so, only retrieves the requested field, forwarding to
@@ -134,6 +138,7 @@ public class PlcEntityInterceptor {
* @param driverManager
* @throws OPMException on various errors.
*/
+ @SuppressWarnings("squid:S1141") // Nested try blocks readability is okay, move to other method makes it imho worse
static void refetchAllFields(Object proxy, PlcDriverManager driverManager, String address) throws OPMException {
// Don't log o here as this would cause a second request against a plc so don't touch it, or if you log be aware of that
Class<?> entityClass = proxy.getClass().getSuperclass();
@@ -162,7 +167,7 @@ public class PlcEntityInterceptor {
// Fill all requested fields
for (String fieldName : response.getFieldNames()) {
- LOGGER.trace("Value for field " + fieldName + " is " + response.getObject(fieldName));
+ LOGGER.trace("Value for field {} is {}", fieldName, response.getObject(fieldName));
String clazzFieldName = StringUtils.substringAfterLast(fieldName, ".");
try {
setField(entityClass, proxy, response, clazzFieldName, fieldName);
@@ -242,6 +247,7 @@ public class PlcEntityInterceptor {
}
}
+ @SuppressWarnings("squid:S3776") // Cognitive Complexity not too high, as highly structured
private static Object getTyped(Class<?> clazz, PlcReadResponse response, String sourceFieldName) {
LOGGER.debug("getTyped clazz: {}, response: {}, fieldName: {}", clazz, response, sourceFieldName);
if (response.getResponseCode(sourceFieldName) != PlcResponseCode.OK) {