diff options
Diffstat (limited to 'models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpStatisticsProvider.java')
-rw-r--r-- | models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpStatisticsProvider.java | 172 |
1 files changed, 0 insertions, 172 deletions
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 deleted file mode 100644 index 0b3f32cf5..000000000 --- a/models-pdp/src/main/java/org/onap/policy/models/pdp/persistence/provider/PdpStatisticsProvider.java +++ /dev/null @@ -1,172 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ONAP Policy Model - * ================================================================================ - * Copyright (C) 2019-2021 Nordix Foundation. - * 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. - * 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. - * - * SPDX-License-Identifier: Apache-2.0 - * ============LICENSE_END========================================================= - */ - -package org.onap.policy.models.pdp.persistence.provider; - -import java.time.Instant; -import java.util.ArrayList; -import java.util.List; -import java.util.stream.Collectors; -import javax.ws.rs.core.Response; -import lombok.NonNull; -import org.onap.policy.common.parameters.BeanValidationResult; -import org.onap.policy.models.base.PfGeneratedIdKey; -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; - - -/** - * This class provides the provision of information on PAP concepts in the database to callers. - * - * @author Ning Xi (ning.xi@est.tech) - */ -public class PdpStatisticsProvider { - private static final int DEFAULT_RECORD_COUNT = 10; - private static final int MAX_RECORD_COUNT = 100; - - /** - * 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) { - - if (filterParams.getRecordNum() <= 0) { - filterParams.setRecordNum(DEFAULT_RECORD_COUNT); - - } else if (filterParams.getRecordNum() > MAX_RECORD_COUNT) { - filterParams.setRecordNum(MAX_RECORD_COUNT); - } - - return asPdpStatisticsList(dao.getFiltered(JpaPdpStatistics.class, filterParams)); - } - - /** - * Creates PDP statistics. - * - * @param dao the DAO to use to access the database - * @param pdpStatisticsList a specification of the PDP statistics to create - * @return the PDP statistics created - * @throws PfModelException on errors creating PDP statistics - */ - public List<PdpStatistics> createPdpStatistics(@NonNull final PfDao dao, - @NonNull final List<PdpStatistics> pdpStatisticsList) throws PfModelException { - for (PdpStatistics pdpStatistics : pdpStatisticsList) { - var jpaPdpStatistics = new JpaPdpStatistics(); - jpaPdpStatistics.fromAuthorative(pdpStatistics); - BeanValidationResult validationResult = jpaPdpStatistics.validate("pdp statistics"); - if (!validationResult.isValid()) { - throw new PfModelRuntimeException(Response.Status.BAD_REQUEST, validationResult.getResult()); - } - - dao.create(jpaPdpStatistics); - pdpStatistics.setGeneratedId(jpaPdpStatistics.getKey().getGeneratedId()); - } - - // Return the created PDP statistics - List<PdpStatistics> pdpStatistics = new ArrayList<>(pdpStatisticsList.size()); - - for (PdpStatistics pdpStatisticsItem : pdpStatisticsList) { - var jpaPdpStatistics = - dao.get(JpaPdpStatistics.class, new PfGeneratedIdKey(pdpStatisticsItem.getPdpInstanceId(), - PfKey.NULL_KEY_VERSION, pdpStatisticsItem.getGeneratedId())); - pdpStatistics.add(jpaPdpStatistics.toAuthorative()); - } - return pdpStatistics; - } - - /** - * Updates PDP statistics. - * - * @param dao the DAO to use to access the database - * @param pdpStatisticsList a specification of the PDP statistics to update - * @return the PDP statistics updated - * @throws PfModelException on errors updating PDP statistics - */ - public List<PdpStatistics> updatePdpStatistics(@NonNull final PfDao dao, - @NonNull final List<PdpStatistics> pdpStatisticsList) throws PfModelException { - - for (PdpStatistics pdpStatistics : pdpStatisticsList) { - var jpaPdpStatistics = new JpaPdpStatistics(); - jpaPdpStatistics.fromAuthorative(pdpStatistics); - - BeanValidationResult validationResult = jpaPdpStatistics.validate("pdp statistics"); - if (!validationResult.isValid()) { - throw new PfModelRuntimeException(Response.Status.BAD_REQUEST, validationResult.getResult()); - } - - dao.update(jpaPdpStatistics); - } - - // Return the created PDP statistics - List<PdpStatistics> pdpStatistics = new ArrayList<>(pdpStatisticsList.size()); - - for (PdpStatistics pdpStatisticsItem : pdpStatisticsList) { - var jpaPdpStatistics = - dao.get(JpaPdpStatistics.class, new PfGeneratedIdKey(pdpStatisticsItem.getPdpInstanceId(), - PfKey.NULL_KEY_VERSION, pdpStatisticsItem.getGeneratedId())); - pdpStatistics.add(jpaPdpStatistics.toAuthorative()); - } - - return pdpStatistics; - } - - /** - * Delete a PDP statistics. - * - * @param dao the DAO to use to access the database - * @param name the name of the policy to get, null to get all PDP statistics - * @param timestamp the timeStamp of statistics to delete, null to delete all statistics record of given PDP - * @return the PDP statistics list deleted - * @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, - 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()))); - - return pdpStatisticsListToDel; - } - - /** - * Convert JPA PDP statistics list to an PDP statistics list. - * - * @param jpaPdpStatisticsList the list to convert - * @return the PDP statistics list - */ - private List<PdpStatistics> asPdpStatisticsList(List<JpaPdpStatistics> jpaPdpStatisticsList) { - return jpaPdpStatisticsList.stream().map(JpaPdpStatistics::toAuthorative).collect(Collectors.toList()); - } -} |