diff options
Diffstat (limited to 'main/src/main/java/org/onap/policy/pap/main/rest/StatisticsRestProvider.java')
-rw-r--r-- | main/src/main/java/org/onap/policy/pap/main/rest/StatisticsRestProvider.java | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/main/src/main/java/org/onap/policy/pap/main/rest/StatisticsRestProvider.java b/main/src/main/java/org/onap/policy/pap/main/rest/StatisticsRestProvider.java index 512dbe76..0c89ae7f 100644 --- a/main/src/main/java/org/onap/policy/pap/main/rest/StatisticsRestProvider.java +++ b/main/src/main/java/org/onap/policy/pap/main/rest/StatisticsRestProvider.java @@ -1,7 +1,7 @@ /*- * ============LICENSE_START======================================================= * Copyright (C) 2020-2021 Nordix Foundation. - * Modifications Copyright (C) 2019 AT&T Intellectual Property. + * Modifications Copyright (C) 2019, 2021 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. @@ -47,6 +47,9 @@ public class StatisticsRestProvider { private static final Logger LOGGER = LoggerFactory.getLogger(StatisticsRestProvider.class); private static final String GET_STATISTICS_ERR_MSG = "fetch database failed"; private static final String DESC_ORDER = "DESC"; + private static final String DEFAULT_GROUP = "defaultGroup"; + private static final int MIN_RECORD_COUNT = 1; + private static final int MAX_RECORD_COUNT = 100; /** * Returns the current statistics of pap component. @@ -84,24 +87,27 @@ public class StatisticsRestProvider { String pdpName, int recordCount) throws PfModelException { final PolicyModelsProviderFactoryWrapper modelProviderWrapper = Registry.get(PapConstants.REG_PAP_DAO_FACTORY, PolicyModelsProviderFactoryWrapper.class); - Map<String, Map<String, List<PdpStatistics>>> pdpStatisticsMap; try (PolicyModelsProvider databaseProvider = modelProviderWrapper.create()) { Instant startTime = null; Instant endTime = null; - if (groupName == null) { - pdpStatisticsMap = generatePdpStatistics(databaseProvider.getPdpStatistics(pdpName, startTime)); - } else { - pdpStatisticsMap = generatePdpStatistics(databaseProvider.getFilteredPdpStatistics(pdpName, groupName, - subType, startTime, endTime, DESC_ORDER, recordCount)); - } + /* + * getFilteredPdpStatistics() will throw an NPE if a group name is not specified, so we + * provide a default value + */ + String grpnm = (groupName != null ? groupName : DEFAULT_GROUP); + + int nrecords = Math.min(MAX_RECORD_COUNT, Math.max(MIN_RECORD_COUNT, recordCount)); + + return generatePdpStatistics(databaseProvider.getFilteredPdpStatistics(pdpName, grpnm, + subType, startTime, endTime, DESC_ORDER, nrecords)); + } catch (final PfModelException exp) { String errorMessage = GET_STATISTICS_ERR_MSG + "groupName:" + groupName + "subType:" + subType + "pdpName:" + pdpName + exp.getMessage(); LOGGER.debug(errorMessage, exp); throw new PfModelRuntimeException(Response.Status.BAD_REQUEST, errorMessage); } - return pdpStatisticsMap; } /** |