diff options
author | Steve Smokowski <ss835w@att.com> | 2019-08-26 13:58:20 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2019-08-26 13:58:20 +0000 |
commit | cfa506c2404e9529ffadd7b36fe40407fe279482 (patch) | |
tree | ab29107cc931bee1da32d6e255439af2dad94b37 /common/src/main/java/org/onap | |
parent | 98d046e9ecf047f9cbeaef91e0ffb5862760e9f3 (diff) | |
parent | d91fdcbe5ff3a09d6b8f444a563dd6135e14c9e6 (diff) |
Merge "fixed dsl builder to correctly add output"
Diffstat (limited to 'common/src/main/java/org/onap')
-rw-r--r-- | common/src/main/java/org/onap/so/client/graphinventory/entities/DSLQueryBuilder.java | 19 |
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; } |