summaryrefslogtreecommitdiffstats
path: root/common/src/main/java
diff options
context:
space:
mode:
authorBenjamin, Max <max.benjamin@att.com>2019-08-16 10:59:18 -0400
committerBenjamin, Max (mb388a) <mb388a@att.com>2019-08-16 10:59:19 -0400
commitd91fdcbe5ff3a09d6b8f444a563dd6135e14c9e6 (patch)
tree57f3b8157e6a64666505e6e813c9aab49868f55c /common/src/main/java
parent89973876dbbf8ad910420d60f8dcbb0c89bf6c62 (diff)
fixed dsl builder to correctly add output
fixed dsl builder to correctly add output look for lambda key rather than parent class null Issue-ID: SO-2233 Signed-off-by: Benjamin, Max (mb388a) <mb388a@att.com> Change-Id: I251b9b8b4c391354b9759ee16a2462df43c188f9
Diffstat (limited to 'common/src/main/java')
-rw-r--r--common/src/main/java/org/onap/so/client/graphinventory/entities/DSLQueryBuilder.java19
1 files changed, 18 insertions, 1 deletions
diff --git a/common/src/main/java/org/onap/so/client/graphinventory/entities/DSLQueryBuilder.java b/common/src/main/java/org/onap/so/client/graphinventory/entities/DSLQueryBuilder.java
index ffbb86f023..ad3bb6c311 100644
--- a/common/src/main/java/org/onap/so/client/graphinventory/entities/DSLQueryBuilder.java
+++ b/common/src/main/java/org/onap/so/client/graphinventory/entities/DSLQueryBuilder.java
@@ -20,6 +20,7 @@
package org.onap.so.client.graphinventory.entities;
+import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -49,8 +50,24 @@ public class DSLQueryBuilder<S, E> implements QueryStep {
}
public DSLQueryBuilder<S, E> output() {
- if (steps.get(steps.size() - 1) instanceof DSLNode) {
+ Object obj = steps.get(steps.size() - 1);
+ if (obj instanceof DSLNode) {
((DSLNode) steps.get(steps.size() - 1)).output();
+ } else if (obj.getClass().getName().contains("$$Lambda$")) {
+ // process lambda expressions
+ for (Field f : obj.getClass().getDeclaredFields()) {
+ f.setAccessible(true);
+ Object o;
+ try {
+ o = f.get(obj);
+ if (o instanceof DSLQueryBuilder && ((DSLQueryBuilder) o).steps.get(0) instanceof DSLNode) {
+ ((DSLNode) ((DSLQueryBuilder) o).steps.get(0)).output();
+ }
+ } catch (IllegalArgumentException | IllegalAccessException e) {
+ }
+ f.setAccessible(false);
+ break;
+ }
}
return this;
}