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/10/26 20:35:19 UTC
[incubator-plc4x] 03/06: [plc4j-opm] fixed is-getter calls.
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
commit 3a187b3c6e3c4f2b55b816afa72bb78250eca013
Author: Sebastian Rühl <sr...@apache.org>
AuthorDate: Fri Oct 26 22:09:14 2018 +0200
[plc4j-opm] fixed is-getter calls.
---
.../java/org/apache/plc4x/java/opm/PlcEntityManager.java | 15 ++++++++++++---
.../org/apache/plc4x/java/opm/PlcEntityManagerTest.java | 5 +++++
2 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/plc4j/utils/opm/src/main/java/org/apache/plc4x/java/opm/PlcEntityManager.java b/plc4j/utils/opm/src/main/java/org/apache/plc4x/java/opm/PlcEntityManager.java
index aa51f7b..206a25e 100644
--- a/plc4j/utils/opm/src/main/java/org/apache/plc4x/java/opm/PlcEntityManager.java
+++ b/plc4j/utils/opm/src/main/java/org/apache/plc4x/java/opm/PlcEntityManager.java
@@ -234,7 +234,7 @@ public class PlcEntityManager {
// Fetch single value
LOGGER.trace("Invoked method {} is boolean flag method, trying to find annotated field and return requested value",
m.getName());
- return fetchValueForGetter(that, m);
+ return fetchValueForIsGetter(that, m);
}
// Fetch all values, than invoke method
@@ -294,9 +294,18 @@ public class PlcEntityManager {
}
}
- // TODO: why isn't o used?
+
+ private Object fetchValueForIsGetter(Object o, Method m) throws OPMException {
+ return fetchValueForGetter(o, m, 2);
+ }
+
private Object fetchValueForGetter(Object o, Method m) throws OPMException {
- String s = m.getName().substring(3);
+ return fetchValueForGetter(o, m, 3);
+ }
+
+ // TODO: why isn't o used?
+ private Object fetchValueForGetter(Object o, Method m, int prefixLength) throws OPMException {
+ String s = m.getName().substring(prefixLength);
// First char to lower
String variable = s.substring(0, 1).toLowerCase().concat(s.substring(1));
LOGGER.trace("Looking for field with name {} after invokation of getter {}", variable, m.getName());
diff --git a/plc4j/utils/opm/src/test/java/org/apache/plc4x/java/opm/PlcEntityManagerTest.java b/plc4j/utils/opm/src/test/java/org/apache/plc4x/java/opm/PlcEntityManagerTest.java
index d161e62..ec0dc6c 100644
--- a/plc4j/utils/opm/src/test/java/org/apache/plc4x/java/opm/PlcEntityManagerTest.java
+++ b/plc4j/utils/opm/src/test/java/org/apache/plc4x/java/opm/PlcEntityManagerTest.java
@@ -131,6 +131,7 @@ public class PlcEntityManagerTest {
Map<String, BaseDefaultFieldItem> map = new HashMap<>();
map.put("getIntVar", new DefaultIntegerFieldItem(1));
map.put("getStringVar", new DefaultStringFieldItem("Hello"));
+ map.put("isBoolVar", new DefaultBooleanFieldItem(true));
PlcEntityManager manager = getPlcEntityManager(map);
ConnectedEntity connect = manager.connect(ConnectedEntity.class);
@@ -140,6 +141,7 @@ public class PlcEntityManagerTest {
// Call getter
assertEquals(1, connect.getIntVar());
assertEquals("Hello", connect.getStringVar());
+ assertEquals(true, connect.isBoolVar());
}
private PlcEntityManager getPlcEntityManager(final Map<String, BaseDefaultFieldItem> responses) throws PlcConnectionException {
@@ -320,6 +322,9 @@ public class PlcEntityManagerTest {
// Default
}
+ public boolean isBoolVar() {
+ return boolVar;
+ }
public byte getByteVar() {
return byteVar;