Add support for localName based filtering in PfReferenceTimestamp key. 59/119059/1
authorrameshiyer27 <ramesh.murugan.iyer@est.tech>
Tue, 9 Mar 2021 12:49:39 +0000 (12:49 +0000)
committerrameshiyer27 <ramesh.murugan.iyer@est.tech>
Tue, 9 Mar 2021 12:49:39 +0000 (12:49 +0000)
Issue : Currently we have a requirement to filter control loop
statistics based on the UUID of the element which is "localName" of the
PfREferenceTimestamp key. Adding UUID as part of filterMap in
getFiltered() method which also requires this minor change in buildFilter.

Issue-ID: POLICY-3051
Signed-off-by: zrrmmua <ramesh.murugan.iyer@est.tech>
Change-Id: Idb9f4fc47c439f84bf8fc784bd9e228a2e05d8e9

models-dao/src/main/java/org/onap/policy/models/dao/impl/DefaultPfDao.java

index ef86c17..bdbc04e 100644 (file)
@@ -367,7 +367,7 @@ public class DefaultPfDao implements PfDao {
 
         try {
             if (filterMap != null) {
-                filterQueryString = buildFilter(filterMap, filterQueryString);
+                filterQueryString = buildFilter(filterMap, filterQueryString, isRefTimestampKey(someClass));
             }
             filterQueryString = addKeyFilterString(filterQueryString, name, startTime, endTime,
                 isRefTimestampKey(someClass));
@@ -425,10 +425,15 @@ public class DefaultPfDao implements PfDao {
         }
     }
 
-    private String buildFilter(final Map<String, Object> filterMap, String filterQueryString) {
+    private String buildFilter(final Map<String, Object> filterMap, String filterQueryString,
+                               boolean isRefTimestampKey) {
         StringBuilder bld = new StringBuilder(filterQueryString);
         for (String key : filterMap.keySet()) {
-            bld.append("c." + key + "= :" + key + AND);
+            if (isRefTimestampKey) {
+                bld.append("c.key.referenceKey." + key + "= :" + key + AND);
+            } else {
+                bld.append("c." + key + "= :" + key + AND);
+            }
         }
         return bld.toString();
     }