Enhance PreparedQueryObject 50/90750/1
authorTschaen, Brendan <ctschaen@att.com>
Mon, 1 Jul 2019 19:00:07 +0000 (15:00 -0400)
committerTschaen, Brendan <ctschaen@att.com>
Mon, 1 Jul 2019 19:00:07 +0000 (15:00 -0400)
Change-Id: I3da1ff5b5e8b63b6cf15a16cec5660e9ec9cf73d
Issue-ID: MUSIC-422
Signed-off-by: Tschaen, Brendan <ctschaen@att.com>
src/main/java/org/onap/music/datastore/PreparedQueryObject.java
src/test/java/org/onap/music/datastore/PreparedQueryObjectTest.java

index db317eb..d65096a 100644 (file)
@@ -2,7 +2,7 @@
  * ============LICENSE_START==========================================
  * org.onap.music
  * ===================================================================
- *  Copyright (c) 2017 AT&T Intellectual Property
+ *  Copyright (c) 2017-2019 AT&T Intellectual Property
  * ===================================================================
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -42,6 +42,35 @@ public class PreparedQueryObject {
     private String primaryKeyValue;
 
 
+    /**
+     * Create PreparedQueryObject
+     */
+    public PreparedQueryObject() {
+        this.values = new ArrayList<>();
+        this.query = new StringBuilder();
+    }
+    
+    /**
+     * Create PreparedQueryObject
+     * @param query query portion of the prepared query
+     */
+    public PreparedQueryObject(String query) {
+        this.values = new ArrayList<>();
+        this.query = new StringBuilder(query);
+    }
+    
+    /**
+     * Create PreparedQueryObject
+     * @param query query portion of the prepared query
+     * @param values to be added to the query string as prepared query
+     */
+    public PreparedQueryObject(String query, Object...values) {
+        this.query = new StringBuilder(query);
+        this.values = new ArrayList<>();
+        for (Object value: values) {
+            this.values.add(value);
+        }
+    }
 
     public String getKeyspaceName() {
         return keyspaceName;
@@ -83,28 +112,29 @@ public class PreparedQueryObject {
         this.consistency = consistency;
     }
 
-       /**
-     * 
-     */
-    public PreparedQueryObject() {
-
-        this.values = new ArrayList<>();
-        this.query = new StringBuilder();
-    }
-
     /**
-     * @return
+     * @return values to be set as part of the prepared query
      */
     public List<Object> getValues() {
         return values;
     }
 
     /**
-     * @param o
+     * @param o object to be added as a value to the prepared query, in order
      */
     public void addValue(Object o) {
         this.values.add(o);
     }
+    
+    /**
+     * Add values to the preparedQuery
+     * @param objs ordered list of objects to be added as values to the prepared query
+     */
+    public void addValues(Object... objs) {
+        for (Object obj: objs) {
+            this.values.add(obj);
+        }
+    }
 
     /**
      * @param s
@@ -117,7 +147,7 @@ public class PreparedQueryObject {
     }
 
     /**
-     * @return
+     * @return the query
      */
     public String getQuery() {
         return this.query.toString();
index 71e484a..7ab7d14 100644 (file)
@@ -72,4 +72,30 @@ public class PreparedQueryObjectTest {
         assertEquals("primaryKeyValue", preparedQueryObject.getPrimaryKeyValue());
     }
     
+    @Test
+    public void testAddValue() {
+        preparedQueryObject.addValue("one");
+        assertEquals("one", preparedQueryObject.getValues().get(0));
+    }
+    
+    @Test
+    public void testAddValues() {
+        preparedQueryObject.addValues("one", "two", "three");
+        assertEquals(3, preparedQueryObject.getValues().size());
+        assertEquals("two", preparedQueryObject.getValues().get(1));
+    }
+    
+    @Test
+    public void testConstructorQuery() {
+        preparedQueryObject = new PreparedQueryObject("some query string");
+        assertEquals("some query string", preparedQueryObject.getQuery());
+    }
+    
+    @Test
+    public void testConstructorQueryValues() {
+        preparedQueryObject = new PreparedQueryObject("another query string", "a", "b", "c");
+        assertEquals("another query string", preparedQueryObject.getQuery());
+        assertEquals(3, preparedQueryObject.getValues().size());
+        assertEquals("b", preparedQueryObject.getValues().get(1));
+    }
 }