aboutsummaryrefslogtreecommitdiffstats
path: root/models-pdp/src/main
diff options
context:
space:
mode:
authorJim Hahn <jrh3@att.com>2021-06-10 17:38:58 -0400
committerJim Hahn <jrh3@att.com>2021-06-14 08:21:04 -0400
commit8cbad257df2d5f5c585ce37e61cfd16e402be738 (patch)
tree18027d19e9c6c231e41e4321d5938c8b0a5d5632 /models-pdp/src/main
parent1b460194bc034443ba57fa690d294131836a3e9e (diff)
Fix sonars in policy-models
Fixed: - too many parameters in method call Fixed it by introducing PfFilterParameters. However, classes having the Builder annotation are not easily subclassed, so introduced an interface, too. Issue-ID: POLICY-3094 Change-Id: Ida99522a542b1296b367c55b7e8f8e83783c2e4f Signed-off-by: Jim Hahn <jrh3@att.com>
Diffstat (limited to 'models-pdp/src/main')
-rw-r--r--models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpFilterParameters.java64
-rw-r--r--models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpProvider.java7
-rw-r--r--models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpStatisticsProvider.java39
3 files changed, 98 insertions, 12 deletions
diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpFilterParameters.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpFilterParameters.java
new file mode 100644
index 000000000..6cede2c39
--- /dev/null
+++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpFilterParameters.java
@@ -0,0 +1,64 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP
+ * ================================================================================
+ * Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.policy.models.pdp.persistence.provider;
+
+import java.time.Instant;
+import java.util.Map;
+import lombok.Builder;
+import lombok.Getter;
+import org.onap.policy.models.dao.PfFilterParametersIntfc;
+
+@Getter
+@Builder
+public class PdpFilterParameters implements PfFilterParametersIntfc {
+ private String name;
+ private String version;
+ private Instant startTime;
+ private Instant endTime;
+
+ private int recordNum;
+ @Builder.Default
+ private String sortOrder = "DESC";
+
+ private String group;
+ private String subGroup;
+
+ // initialized lazily, if not set via the builder
+ private Map<String, Object> filterMap;
+
+ @Override
+ public Map<String, Object> getFilterMap() {
+ if (filterMap != null) {
+ return filterMap;
+
+ } else if (group == null) {
+ return null;
+
+ } else if (subGroup == null) {
+ filterMap = Map.of("pdpGroupName", group);
+ return filterMap;
+
+ } else {
+ filterMap = Map.of("pdpGroupName", group, "pdpSubGroupName", subGroup);
+ return filterMap;
+ }
+ }
+}
diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpProvider.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpProvider.java
index 4ffb1e40e..fec8ec572 100644
--- a/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpProvider.java
+++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpProvider.java
@@ -36,6 +36,7 @@ import org.onap.policy.models.base.PfModelException;
import org.onap.policy.models.base.PfModelRuntimeException;
import org.onap.policy.models.base.PfReferenceKey;
import org.onap.policy.models.dao.PfDao;
+import org.onap.policy.models.dao.PfFilterParameters;
import org.onap.policy.models.pdp.concepts.Pdp;
import org.onap.policy.models.pdp.concepts.PdpGroup;
import org.onap.policy.models.pdp.concepts.PdpGroupFilter;
@@ -300,10 +301,10 @@ public class PdpProvider {
public List<PdpPolicyStatus> getGroupPolicyStatus(@NonNull final PfDao dao, @NonNull final String groupName)
throws PfModelException {
- Map<String, Object> filter = Map.of("pdpGroup", groupName);
+ PfFilterParameters params = PfFilterParameters.builder().filterMap(Map.of("pdpGroup", groupName)).build();
- return dao.getFiltered(JpaPdpPolicyStatus.class, null, null, null, null, filter, null, 0).stream()
- .map(JpaPdpPolicyStatus::toAuthorative).collect(Collectors.toList());
+ return dao.getFiltered(JpaPdpPolicyStatus.class, params)
+ .stream().map(JpaPdpPolicyStatus::toAuthorative).collect(Collectors.toList());
}
/**
diff --git a/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpStatisticsProvider.java b/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpStatisticsProvider.java
index 205761bf5..ea118f362 100644
--- a/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpStatisticsProvider.java
+++ b/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpStatisticsProvider.java
@@ -37,6 +37,7 @@ import org.onap.policy.models.base.PfKey;
import org.onap.policy.models.base.PfModelException;
import org.onap.policy.models.base.PfModelRuntimeException;
import org.onap.policy.models.dao.PfDao;
+import org.onap.policy.models.dao.PfFilterParameters;
import org.onap.policy.models.pdp.concepts.PdpStatistics;
import org.onap.policy.models.pdp.persistence.concepts.JpaPdpStatistics;
@@ -47,8 +48,6 @@ import org.onap.policy.models.pdp.persistence.concepts.JpaPdpStatistics;
* @author Ning Xi (ning.xi@est.tech)
*/
public class PdpStatisticsProvider {
- // Recurring string constants
- private static final String DESC_ORDER = "DESC";
/**
* Get PDP statistics.
@@ -113,9 +112,32 @@ public class PdpStatisticsProvider {
filterMap.put("pdpSubGroupName", pdpSubGroup);
}
- return asPdpStatisticsList(dao.getFiltered(JpaPdpStatistics.class, name,
- PfKey.NULL_KEY_VERSION, startTimeStamp,
- endTimeStamp, filterMap, sortOrder, getRecordNum));
+ // @formatter:off
+ return asPdpStatisticsList(
+ dao.getFiltered(JpaPdpStatistics.class,
+ PdpFilterParameters.builder()
+ .name(name)
+ .startTime(startTimeStamp)
+ .endTime(endTimeStamp)
+ .group(pdpGroupName)
+ .subGroup(pdpSubGroup)
+ .sortOrder(sortOrder)
+ .recordNum(getRecordNum)
+ .build()));
+ // @formatter:on
+ }
+
+ /**
+ * Get filtered PDP statistics.
+ *
+ * @param dao the DAO to use to access the database
+ * @param filterParams filter parameters
+ * @return the PDP statistics found
+ * @throws PfModelException on errors getting policies
+ */
+ public List<PdpStatistics> getFilteredPdpStatistics(@NonNull final PfDao dao,
+ PdpFilterParameters filterParams) {
+ return asPdpStatisticsList(dao.getFiltered(JpaPdpStatistics.class, filterParams));
}
/**
@@ -198,10 +220,9 @@ public class PdpStatisticsProvider {
* @throws PfModelException on errors deleting PDP statistics
*/
public List<PdpStatistics> deletePdpStatistics(@NonNull final PfDao dao, @NonNull final String name,
- final Instant timestamp) {
- List<PdpStatistics> pdpStatisticsListToDel = asPdpStatisticsList(
- dao.getFiltered(JpaPdpStatistics.class, name,
- PfKey.NULL_KEY_VERSION, timestamp, timestamp, null, DESC_ORDER, 0));
+ final Instant timestamp) {
+ List<PdpStatistics> pdpStatisticsListToDel = asPdpStatisticsList(dao.getFiltered(JpaPdpStatistics.class,
+ PfFilterParameters.builder().name(name).startTime(timestamp).endTime(timestamp).build()));
pdpStatisticsListToDel.stream().forEach(s -> dao.delete(JpaPdpStatistics.class,
new PfGeneratedIdKey(s.getPdpInstanceId(), PfKey.NULL_KEY_VERSION, s.getGeneratedId())));