* ONAP Policy Model
* ================================================================================
* Copyright (C) 2019-2021 Nordix Foundation.
- * Modifications Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2020-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.
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;
* @author Ning Xi (ning.xi@est.tech)
*/
public class PdpStatisticsProvider {
- // Recurring string constants
- private static final String DESC_ORDER = "DESC";
/**
* Get PDP statistics.
*/
public List<PdpStatistics> getPdpStatistics(@NonNull final PfDao dao, final String name, final Instant timeStamp)
throws PfModelException {
- List<PdpStatistics> pdpStatistics = new ArrayList<>();
if (name != null && timeStamp != null) {
return asPdpStatisticsList(dao.getByTimestamp(JpaPdpStatistics.class,
new PfGeneratedIdKey(name, PfKey.NULL_KEY_VERSION), timeStamp));
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));
}
/**
public List<PdpStatistics> createPdpStatistics(@NonNull final PfDao dao,
@NonNull final List<PdpStatistics> pdpStatisticsList) throws PfModelException {
for (PdpStatistics pdpStatistics : pdpStatisticsList) {
- JpaPdpStatistics jpaPdpStatistics = new JpaPdpStatistics();
+ var jpaPdpStatistics = new JpaPdpStatistics();
jpaPdpStatistics.fromAuthorative(pdpStatistics);
BeanValidationResult validationResult = jpaPdpStatistics.validate("pdp statistics");
if (!validationResult.isValid()) {
List<PdpStatistics> pdpStatistics = new ArrayList<>(pdpStatisticsList.size());
for (PdpStatistics pdpStatisticsItem : pdpStatisticsList) {
- JpaPdpStatistics jpaPdpStatistics =
+ var jpaPdpStatistics =
dao.get(JpaPdpStatistics.class, new PfGeneratedIdKey(pdpStatisticsItem.getPdpInstanceId(),
PfKey.NULL_KEY_VERSION, pdpStatisticsItem.getGeneratedId()));
pdpStatistics.add(jpaPdpStatistics.toAuthorative());
@NonNull final List<PdpStatistics> pdpStatisticsList) throws PfModelException {
for (PdpStatistics pdpStatistics : pdpStatisticsList) {
- JpaPdpStatistics jpaPdpStatistics = new JpaPdpStatistics();
+ var jpaPdpStatistics = new JpaPdpStatistics();
jpaPdpStatistics.fromAuthorative(pdpStatistics);
BeanValidationResult validationResult = jpaPdpStatistics.validate("pdp statistics");
List<PdpStatistics> pdpStatistics = new ArrayList<>(pdpStatisticsList.size());
for (PdpStatistics pdpStatisticsItem : pdpStatisticsList) {
- JpaPdpStatistics jpaPdpStatistics =
+ var jpaPdpStatistics =
dao.get(JpaPdpStatistics.class, new PfGeneratedIdKey(pdpStatisticsItem.getPdpInstanceId(),
PfKey.NULL_KEY_VERSION, pdpStatisticsItem.getGeneratedId()));
pdpStatistics.add(jpaPdpStatistics.toAuthorative());
* @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())));