query builder now handles more than just strings 14/93214/1
authorBenjamin, Max <max.benjamin@att.com>
Fri, 9 Aug 2019 12:53:50 +0000 (08:53 -0400)
committerBenjamin, Max (mb388a) <mb388a@att.com>
Fri, 9 Aug 2019 12:53:52 +0000 (08:53 -0400)
query builder now handles more than just strings

Issue-ID: SO-2215
Signed-off-by: Benjamin, Max (mb388a) <mb388a@att.com>
Change-Id: Ib138d96cf8578a0e3055120f9c3e036c690e7eae

common/src/main/java/org/onap/so/client/graphinventory/entities/DSLNodeKey.java
common/src/main/java/org/onap/so/client/graphinventory/entities/__.java
common/src/test/java/org/onap/so/client/aai/DSLQueryBuilderTest.java

index f7f5d78..e301edb 100644 (file)
@@ -32,9 +32,9 @@ public class DSLNodeKey implements QueryStep {
     private boolean not = false;
     private final StringBuilder query = new StringBuilder();
     private final String keyName;
-    private final List<String> values;
+    private final List<Object> values;
 
-    public DSLNodeKey(String keyName, String... value) {
+    public DSLNodeKey(String keyName, Object... value) {
 
         this.keyName = keyName;
         this.values = Arrays.asList(value);
@@ -54,14 +54,18 @@ public class DSLNodeKey implements QueryStep {
             result.append(" !");
         }
         result.append("('").append(keyName).append("', ");
-        List<String> temp = new ArrayList<>();
-        for (String item : values) {
+        List<Object> temp = new ArrayList<>();
+        for (Object item : values) {
             if ("null".equals(item)) {
                 temp.add(String.format("' %s '", item));
             } else if ("".equals(item)) {
                 temp.add("' '");
             } else {
-                temp.add(String.format("'%s'", item));
+                if (item instanceof String) {
+                    temp.add(String.format("'%s'", item));
+                } else {
+                    temp.add(item);
+                }
             }
         }
         result.append(Joiner.on(", ").join(temp)).append(")");
index 2fdd657..87d4d84 100644 (file)
@@ -45,7 +45,7 @@ public class __ {
         return __.<DSLNode>start(new DSLNode(name, key));
     }
 
-    public static DSLNodeKey key(String keyName, String... value) {
+    public static DSLNodeKey key(String keyName, Object... value) {
         return new DSLNodeKey(keyName, value);
     }
 
index 6e55fe1..590e838 100644 (file)
@@ -108,4 +108,14 @@ public class DSLQueryBuilderTest {
                 builder.equals("pserver*('hostname', 'my-hostname') > p-interface > sriov-pf('pf-pci-id', 'my-id')"));
         assertTrue(builder.equals(builder));
     }
+
+
+    @Test
+    public void mixedTypeTest() {
+        DSLQueryBuilder<DSLNode, DSLNode> builder = new DSLQueryBuilder<>(new DSLNode(AAIObjectType.CLOUD_REGION,
+                __.key("cloud-owner", "owner"), __.key("cloud-region-id", "id")));
+        builder.to(__.node(AAIObjectType.VLAN_TAG, __.key("vlan-id-outer", 167), __.key("my-boolean", true)).output());
+        assertTrue(builder.equals(
+                "cloud-region('cloud-owner', 'owner')('cloud-region-id', 'id') > vlan-tag*('vlan-id-outer', 167)('my-boolean', true)"));
+    }
 }