diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/GadgetDataService.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/GadgetDataService.java index ea61e05b83e..3e15a424e32 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/GadgetDataService.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/GadgetDataService.java @@ -18,11 +18,11 @@ package org.wso2.carbon.device.mgt.analytics.dashboard; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DetailedDeviceEntry; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceCountByGroupEntry; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.FilterSet; -import org.wso2.carbon.device.mgt.analytics.dashboard.exception.DataAccessLayerException; -import org.wso2.carbon.device.mgt.analytics.dashboard.exception.InvalidParameterValueException; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.BasicFilterSet; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.ExtendedFilterSet; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceCountByGroup; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceWithDetails; +import org.wso2.carbon.device.mgt.analytics.dashboard.exception.*; import org.wso2.carbon.device.mgt.common.PaginationResult; import java.util.List; @@ -35,222 +35,225 @@ public interface GadgetDataService { /** * This method is used to get a count of devices based on a defined filter set. - * @param filterSet An abstract representation of possible filtering options. - * if this value is simply "null" or no values are set for the defined filtering options, - * this method would return total device count in the system - * wrapped with in the defined return format. - * @return An object of type DeviceCountByGroupEntry. - * @throws InvalidParameterValueException This can occur if and only if potentialVulnerability value of filterSet - * is set with some value other than "NON_COMPLIANT" or "UNMONITORED". + * @param extendedFilterSet An abstract representation of possible filtering options. + * if this value is simply "null" or no values are set for the defined filtering + * options, this method would return total device count in the system + * wrapped by the defined return format. + * @return An object of type DeviceCountByGroup. + * @throws InvalidPotentialVulnerabilityValueException This can occur if potentialVulnerability + * value of extendedFilterSet is set with some + * value other than "NON_COMPLIANT" or "UNMONITORED". * @throws DataAccessLayerException This can occur due to errors connecting to database, * executing SQL query and retrieving data. */ @SuppressWarnings("unused") - DeviceCountByGroupEntry getDeviceCount(FilterSet filterSet) - throws InvalidParameterValueException, DataAccessLayerException; + DeviceCountByGroup getDeviceCount(ExtendedFilterSet extendedFilterSet) + throws InvalidPotentialVulnerabilityValueException, DataAccessLayerException; /** * This method is used to get a count of devices non-compliant upon on a particular feature * and a defined filter set. - * @param nonCompliantFeatureCode Code name of the non-compliant feature. - * @param filterSet An abstract representation of possible filtering options. - * if this value is simply "null" or no values are set for the defined filtering options, - * this method would return total device count in the system - * wrapped with in the defined return format. - * @return An object of type DeviceCountByGroupEntry. - * @throws InvalidParameterValueException This can occur if nonCompliantFeatureCode is set to null or empty. - * This can also occur if potentialVulnerability value of filterSet - * is set with some value other than "NON_COMPLIANT" or "UNMONITORED". + * @param featureCode Code name of the non-compliant feature. + * @param basicFilterSet An abstract representation of possible filtering options. + * if this value is simply "null" or no values are set for the defined filtering + * options, this method would return total non-compliant device count in the system + * for the given feature-code, wrapped by the defined return format. + * @return An object of type DeviceCountByGroup. + * @throws InvalidFeatureCodeValueException This can occur if featureCode is set to null or empty. * @throws DataAccessLayerException This can occur due to errors connecting to database, * executing SQL query and retrieving data. */ @SuppressWarnings("unused") - DeviceCountByGroupEntry getFeatureNonCompliantDeviceCount(String nonCompliantFeatureCode, - FilterSet filterSet) throws InvalidParameterValueException, DataAccessLayerException; + DeviceCountByGroup getFeatureNonCompliantDeviceCount(String featureCode, BasicFilterSet basicFilterSet) + throws InvalidFeatureCodeValueException, DataAccessLayerException; /** * This method is used to get total count of devices currently enrolled under a particular tenant. - * @return An object of type DeviceCountByGroupEntry. + * @return An object of type DeviceCountByGroup. * @throws DataAccessLayerException This can occur due to errors connecting to database, * executing SQL query and retrieving data. */ @SuppressWarnings("unused") - DeviceCountByGroupEntry getTotalDeviceCount() throws DataAccessLayerException; + DeviceCountByGroup getTotalDeviceCount() throws DataAccessLayerException; /** * This method is used to get device counts classified by connectivity statuses. - * @return A list of objects of type DeviceCountByGroupEntry. + * @return A list of objects of type DeviceCountByGroup. * @throws DataAccessLayerException This can occur due to errors connecting to database, * executing SQL query and retrieving data. */ @SuppressWarnings("unused") - List getDeviceCountsByConnectivityStatuses() throws DataAccessLayerException; + List getDeviceCountsByConnectivityStatuses() throws DataAccessLayerException; /** * This method is used to get device counts classified by potential vulnerabilities. - * @return A list of objects of type DeviceCountByGroupEntry. + * @return A list of objects of type DeviceCountByGroup. * @throws DataAccessLayerException This can occur due to errors connecting to database, * executing SQL query and retrieving data. */ @SuppressWarnings("unused") - List getDeviceCountsByPotentialVulnerabilities() throws DataAccessLayerException; + List getDeviceCountsByPotentialVulnerabilities() throws DataAccessLayerException; /** * This method is used to get non-compliant device counts classified by individual features. * @param startIndex Starting index of the data set to be retrieved. * @param resultCount Total count of the result set retrieved. * @return An object of type PaginationResult. - * @throws InvalidParameterValueException This can occur if startIndex or resultCount is set to values - * lesser than their minimums. + * @throws InvalidStartIndexValueException This can occur if startIndex value is lesser than its minimum. + * @throws InvalidResultCountValueException This can occur if resultCount value is lesser than its minimum. * @throws DataAccessLayerException This can occur due to errors connecting to database, * executing SQL query and retrieving data. */ @SuppressWarnings("unused") - PaginationResult getNonCompliantDeviceCountsByFeatures(int startIndex, int resultCount) - throws InvalidParameterValueException, DataAccessLayerException; + PaginationResult getNonCompliantDeviceCountsByFeatures(int startIndex, int resultCount) throws + InvalidStartIndexValueException, InvalidResultCountValueException, DataAccessLayerException; /** * This method is used to get device counts classified by platforms. - * @param filterSet An abstract representation of possible filtering options. - * if this value is simply "null" or no values are set for the defined filtering options, - * this method would return total device count in the system - * wrapped with in the defined return format. - * @return An object of type DeviceCountByGroupEntry. - * @throws InvalidParameterValueException This can occur if startIndex or resultCount is set to values - * lesser than their minimums. + * @param extendedFilterSet An abstract representation of possible filtering options. + * if this value is simply "null" or no values are set for the defined filtering + * options, this method would return total device counts per each platform in + * the system, wrapped by the defined return format. + * @return An object of type DeviceCountByGroup. + * @throws InvalidPotentialVulnerabilityValueException This can occur if potentialVulnerability + * value of extendedFilterSet is set with some + * value other than "NON_COMPLIANT" or "UNMONITORED". * @throws DataAccessLayerException This can occur due to errors connecting to database, * executing SQL query and retrieving data. */ @SuppressWarnings("unused") - List getDeviceCountsByPlatforms(FilterSet filterSet) - throws InvalidParameterValueException, DataAccessLayerException; + List getDeviceCountsByPlatforms(ExtendedFilterSet extendedFilterSet) + throws InvalidPotentialVulnerabilityValueException, DataAccessLayerException; /** * This method is used to get device counts non-compliant upon a particular feature classified by platforms. - * @param nonCompliantFeatureCode Code name of the non-compliant feature. - * @param filterSet An abstract representation of possible filtering options. - * if this value is simply "null" or no values are set for the defined filtering options, - * this method would return total device count in the system - * wrapped with in the defined return format. - * @return A list of objects of type DeviceCountByGroupEntry. - * @throws InvalidParameterValueException This can occur if and only if potentialVulnerability value of filterSet - * is set with some value other than "NON_COMPLIANT" or "UNMONITORED". + * @param featureCode Code name of the non-compliant feature. + * @param basicFilterSet An abstract representation of possible filtering options. + * if this value is simply "null" or no values are set for the defined filtering + * options, this method would return total non-compliant device counts per each platform + * in the system, wrapped by the defined return format. + * @return A list of objects of type DeviceCountByGroup. + * @throws InvalidFeatureCodeValueException This can occur if featureCode is set to null or empty. * @throws DataAccessLayerException This can occur due to errors connecting to database, * executing SQL query and retrieving data. */ @SuppressWarnings("unused") - List getFeatureNonCompliantDeviceCountsByPlatforms(String nonCompliantFeatureCode, - FilterSet filterSet) throws InvalidParameterValueException, DataAccessLayerException; + List getFeatureNonCompliantDeviceCountsByPlatforms(String featureCode, + BasicFilterSet basicFilterSet) throws InvalidFeatureCodeValueException, + DataAccessLayerException; /** * This method is used to get device counts classified by ownership types. - * @param filterSet An abstract representation of possible filtering options. - * if this value is simply "null" or no values are set for the defined filtering options, - * this method would return total device count in the system - * wrapped with in the defined return format. - * @return A list of objects of type DeviceCountByGroupEntry. - * @throws InvalidParameterValueException This can occur if nonCompliantFeatureCode is set to null or empty. - * This can also occur if potentialVulnerability value of filterSet - * is set with some value other than "NON_COMPLIANT" or "UNMONITORED". + * @param extendedFilterSet An abstract representation of possible filtering options. + * if this value is simply "null" or no values are set for the defined filtering + * options, this method would return total device counts per each ownership type in + * the system, wrapped by the defined return format. + * @return A list of objects of type DeviceCountByGroup. + * @throws InvalidPotentialVulnerabilityValueException This can occur if potentialVulnerability + * value of extendedFilterSet is set with some + * value other than "NON_COMPLIANT" or "UNMONITORED". * @throws DataAccessLayerException This can occur due to errors connecting to database, * executing SQL query and retrieving data. */ @SuppressWarnings("unused") - List getDeviceCountsByOwnershipTypes(FilterSet filterSet) - throws InvalidParameterValueException, DataAccessLayerException; + List getDeviceCountsByOwnershipTypes(ExtendedFilterSet extendedFilterSet) + throws InvalidPotentialVulnerabilityValueException, DataAccessLayerException; /** * This method is used to get device counts non-compliant upon a particular feature classified by ownership types. - * @param nonCompliantFeatureCode Code name of the non-compliant feature. - * @param filterSet An abstract representation of possible filtering options. - * if this value is simply "null" or no values are set for the defined filtering options, - * this method would return total device count in the system - * wrapped with in the defined return format. - * @return A list of objects of type DeviceCountByGroupEntry. - * @throws InvalidParameterValueException This can occur if and only if potentialVulnerability value of filterSet - * is set with some value other than "NON_COMPLIANT" or "UNMONITORED". + * @param featureCode Code name of the non-compliant feature. + * @param basicFilterSet An abstract representation of possible filtering options. + * if this value is simply "null" or no values are set for the defined filtering + * options, this method would return total non-compliant device counts per each + * ownership type in the system, wrapped by the defined return format. + * @return A list of objects of type DeviceCountByGroup. + * @throws InvalidFeatureCodeValueException This can occur if featureCode is set to null or empty. * @throws DataAccessLayerException This can occur due to errors connecting to database, * executing SQL query and retrieving data. */ @SuppressWarnings("unused") - List getFeatureNonCompliantDeviceCountsByOwnershipTypes(String nonCompliantFeatureCode, - FilterSet filterSet) throws InvalidParameterValueException, DataAccessLayerException; + List getFeatureNonCompliantDeviceCountsByOwnershipTypes(String featureCode, + BasicFilterSet basicFilterSet) throws InvalidFeatureCodeValueException, + DataAccessLayerException; /** * This method is used to get a paginated list of devices with details, based on a defined filter set. - * @param filterSet An abstract representation of possible filtering options. - * if this value is simply "null" or no values are set for the defined filtering options, - * this method would return total device count in the system - * wrapped with in the defined return format. + * @param extendedFilterSet An abstract representation of possible filtering options. + * if this value is simply "null" or no values are set for the defined + * filtering options, this method would return a paginated device list in the + * system specified by result count, starting from specified start index, and + * wrapped by the defined return format. * @param startIndex Starting index of the data set to be retrieved. * @param resultCount Total count of the result set retrieved. * @return An object of type PaginationResult. - * @throws InvalidParameterValueException This can occur if nonCompliantFeatureCode is set to null or empty. - * This can also occur if potentialVulnerability value of filterSet - * is set with some value other than "NON_COMPLIANT" or "UNMONITORED". + * @throws InvalidPotentialVulnerabilityValueException This can occur if potentialVulnerability + * value of extendedFilterSet is set with some + * value other than "NON_COMPLIANT" or "UNMONITORED". * @throws DataAccessLayerException This can occur due to errors connecting to database, * executing SQL query and retrieving data. + * @throws InvalidStartIndexValueException This can occur if startIndex value is lesser than its minimum. + * @throws InvalidResultCountValueException This can occur if resultCount value is lesser than its minimum. */ @SuppressWarnings("unused") - PaginationResult getDevicesWithDetails(FilterSet filterSet, int startIndex, int resultCount) - throws InvalidParameterValueException, DataAccessLayerException; + PaginationResult getDevicesWithDetails(ExtendedFilterSet extendedFilterSet, int startIndex, int resultCount) + throws InvalidPotentialVulnerabilityValueException, DataAccessLayerException, + InvalidStartIndexValueException, InvalidResultCountValueException; /** * This method is used to get a paginated list of non-compliant devices with details, upon a particular feature. - * @param nonCompliantFeatureCode Code name of the non-compliant feature. - * @param filterSet An abstract representation of possible filtering options. - * if this value is simply "null" or no values are set for the defined filtering options, - * this method would return total device count in the system - * wrapped with in the defined return format. + * @param featureCode Code name of the non-compliant feature. + * @param basicFilterSet An abstract representation of possible filtering options. + * if this value is simply "null" or no values are set for the defined filtering + * options, this method would return a paginated device list in the system, + * non-compliant by specified feature-code, result count, starting from specified + * start index, and wrapped by the defined return format. * @param startIndex Starting index of the data set to be retrieved. * @param resultCount Total count of the result set retrieved. * @return An object of type PaginationResult. - * @throws InvalidParameterValueException This can occur if potentialVulnerability value of filterSet - * is set with some value other than "NON_COMPLIANT" or "UNMONITORED". - * This can also occur if startIndex or resultCount is set to values - * lesser than their minimums. + * @throws InvalidFeatureCodeValueException This can occur if featureCode is set to null or empty. * @throws DataAccessLayerException This can occur due to errors connecting to database, * executing SQL query and retrieving data. + * @throws InvalidStartIndexValueException This can occur if startIndex value is lesser than its minimum. + * @throws InvalidResultCountValueException This can occur if resultCount value is lesser than its minimum. */ @SuppressWarnings("unused") - PaginationResult getFeatureNonCompliantDevicesWithDetails(String nonCompliantFeatureCode, - FilterSet filterSet, int startIndex, int resultCount) - throws InvalidParameterValueException, DataAccessLayerException; + PaginationResult getFeatureNonCompliantDevicesWithDetails(String featureCode, BasicFilterSet basicFilterSet, + int startIndex, int resultCount) throws InvalidFeatureCodeValueException, + DataAccessLayerException, InvalidStartIndexValueException, + InvalidResultCountValueException; /** * This method is used to get a list of devices with details, based on a defined filter set. - * @param filterSet An abstract representation of possible filtering options. - * if this value is simply "null" or no values are set for the defined filtering options, - * this method would return total device count in the system - * wrapped with in the defined return format. - * @return A list of objects of type DetailedDeviceEntry. - * @throws InvalidParameterValueException This can occur if nonCompliantFeatureCode is set to null or empty. - * This can occur if potentialVulnerability value of filterSet - * is set with some value other than "NON_COMPLIANT" or "UNMONITORED". - * This can also occur if startIndex or resultCount is set to values - * lesser than their minimums. + * @param extendedFilterSet An abstract representation of possible filtering options. + * if this value is simply "null" or no values are set for the defined filtering + * options, this method would return total device list in the system + * wrapped by the defined return format. + * @return A list of objects of type DeviceWithDetails. + * @throws InvalidPotentialVulnerabilityValueException This can occur if potentialVulnerability + * value of extendedFilterSet is set with some + * value other than "NON_COMPLIANT" or "UNMONITORED". * @throws DataAccessLayerException This can occur due to errors connecting to database, * executing SQL query and retrieving data. */ @SuppressWarnings("unused") - List getDevicesWithDetails(FilterSet filterSet) - throws InvalidParameterValueException, DataAccessLayerException; + List getDevicesWithDetails(ExtendedFilterSet extendedFilterSet) + throws InvalidPotentialVulnerabilityValueException, DataAccessLayerException; /** * This method is used to get a list of non-compliant devices with details, upon a particular feature. - * @param nonCompliantFeatureCode Code name of the non-compliant feature. - * @param filterSet An abstract representation of possible filtering options. - * if this value is simply "null" or no values are set for the defined filtering options, - * this method would return total device count in the system - * wrapped with in the defined return format. - * @return A list of objects of type DetailedDeviceEntry. - * @throws InvalidParameterValueException This can occur if and only if potentialVulnerability value of filterSet - * is set with some value other than "NON_COMPLIANT" or "UNMONITORED". + * @param featureCode Code name of the non-compliant feature. + * @param basicFilterSet An abstract representation of possible filtering options. + * if this value is simply "null" or no values are set for the defined filtering + * options, this method would return total set of non-compliant devices in the + * system upon given feature-code, wrapped by the defined return format. + * @return A list of objects of type DeviceWithDetails. + * @throws InvalidFeatureCodeValueException This can occur if featureCode is set to null or empty. * @throws DataAccessLayerException This can occur due to errors connecting to database, * executing SQL query and retrieving data. */ @SuppressWarnings("unused") - List getFeatureNonCompliantDevicesWithDetails(String nonCompliantFeatureCode, - FilterSet filterSet) throws InvalidParameterValueException, DataAccessLayerException; + List getFeatureNonCompliantDevicesWithDetails(String featureCode, + BasicFilterSet basicFilterSet) throws InvalidFeatureCodeValueException, + DataAccessLayerException; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/bean/FilterSet.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/bean/BasicFilterSet.java similarity index 82% rename from components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/bean/FilterSet.java rename to components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/bean/BasicFilterSet.java index 701b5718775..901949ea845 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/bean/FilterSet.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/bean/BasicFilterSet.java @@ -18,10 +18,9 @@ package org.wso2.carbon.device.mgt.analytics.dashboard.bean; -public class FilterSet { +public class BasicFilterSet { private String connectivityStatus; - private String potentialVulnerability; private String platform; private String ownership; @@ -33,14 +32,6 @@ public class FilterSet { this.connectivityStatus = connectivityStatus; } - public String getPotentialVulnerability() { - return potentialVulnerability; - } - - public void setPotentialVulnerability(String potentialVulnerability) { - this.potentialVulnerability = potentialVulnerability; - } - public String getPlatform() { return platform; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/bean/DeviceCountByGroupEntry.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/bean/DeviceCountByGroup.java similarity index 97% rename from components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/bean/DeviceCountByGroupEntry.java rename to components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/bean/DeviceCountByGroup.java index 85ecfe349c8..43076fb0de4 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/bean/DeviceCountByGroupEntry.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/bean/DeviceCountByGroup.java @@ -18,7 +18,7 @@ package org.wso2.carbon.device.mgt.analytics.dashboard.bean; -public class DeviceCountByGroupEntry { +public class DeviceCountByGroup { private String group; private String displayNameForGroup; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/bean/DetailedDeviceEntry.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/bean/DeviceWithDetails.java similarity index 98% rename from components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/bean/DetailedDeviceEntry.java rename to components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/bean/DeviceWithDetails.java index b12c242a11d..becadff9c9b 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/bean/DetailedDeviceEntry.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/bean/DeviceWithDetails.java @@ -18,7 +18,7 @@ package org.wso2.carbon.device.mgt.analytics.dashboard.bean; -public class DetailedDeviceEntry { +public class DeviceWithDetails { private int deviceId; private String deviceIdentification; diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/bean/ExtendedFilterSet.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/bean/ExtendedFilterSet.java new file mode 100644 index 00000000000..b68a441a909 --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/bean/ExtendedFilterSet.java @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * WSO2 Inc. licenses this file to you 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. + */ + +package org.wso2.carbon.device.mgt.analytics.dashboard.bean; + +public class ExtendedFilterSet extends BasicFilterSet { + + /* + * Following property is an abstract filter, introduced @ service layer, + * wrapping few (actual) low level database properties. + */ + private String potentialVulnerability; + + public String getPotentialVulnerability() { + return potentialVulnerability; + } + + public void setPotentialVulnerability(String potentialVulnerability) { + this.potentialVulnerability = potentialVulnerability; + } + +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/AbstractGadgetDataServiceDAO.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/AbstractGadgetDataServiceDAO.java index 177b7868e3d..97815120645 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/AbstractGadgetDataServiceDAO.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/AbstractGadgetDataServiceDAO.java @@ -19,10 +19,12 @@ package org.wso2.carbon.device.mgt.analytics.dashboard.dao; import org.wso2.carbon.context.PrivilegedCarbonContext; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DetailedDeviceEntry; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceCountByGroupEntry; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.FilterSet; -import org.wso2.carbon.device.mgt.analytics.dashboard.exception.InvalidParameterValueException; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.BasicFilterSet; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceWithDetails; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceCountByGroup; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.ExtendedFilterSet; +import org.wso2.carbon.device.mgt.analytics.dashboard.exception.InvalidFeatureCodeValueException; +import org.wso2.carbon.device.mgt.analytics.dashboard.exception.InvalidPotentialVulnerabilityValueException; import org.wso2.carbon.device.mgt.core.dao.util.DeviceManagementDAOUtil; import java.sql.Connection; @@ -37,40 +39,40 @@ import java.util.Map; public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceDAO { @Override - public DeviceCountByGroupEntry getTotalDeviceCount() throws SQLException { + public DeviceCountByGroup getTotalDeviceCount() throws SQLException { int totalDeviceCount; try { totalDeviceCount = this.getFilteredDeviceCount(null); - } catch (InvalidParameterValueException e) { + } catch (InvalidPotentialVulnerabilityValueException e) { throw new AssertionError(e); } - DeviceCountByGroupEntry deviceCountByGroupEntry = new DeviceCountByGroupEntry(); - deviceCountByGroupEntry.setGroup("total"); - deviceCountByGroupEntry.setDisplayNameForGroup("Total"); - deviceCountByGroupEntry.setDeviceCount(totalDeviceCount); + DeviceCountByGroup deviceCountByGroup = new DeviceCountByGroup(); + deviceCountByGroup.setGroup("total"); + deviceCountByGroup.setDisplayNameForGroup("Total"); + deviceCountByGroup.setDeviceCount(totalDeviceCount); - return deviceCountByGroupEntry; + return deviceCountByGroup; } @Override - public DeviceCountByGroupEntry getDeviceCount(FilterSet filterSet) - throws InvalidParameterValueException, SQLException { + public DeviceCountByGroup getDeviceCount(ExtendedFilterSet extendedFilterSet) + throws InvalidPotentialVulnerabilityValueException, SQLException { - int filteredDeviceCount = this.getFilteredDeviceCount(filterSet); + int filteredDeviceCount = this.getFilteredDeviceCount(extendedFilterSet); - DeviceCountByGroupEntry deviceCountByGroupEntry = new DeviceCountByGroupEntry(); - deviceCountByGroupEntry.setGroup("filtered"); - deviceCountByGroupEntry.setDisplayNameForGroup("Filtered"); - deviceCountByGroupEntry.setDeviceCount(filteredDeviceCount); + DeviceCountByGroup deviceCountByGroup = new DeviceCountByGroup(); + deviceCountByGroup.setGroup("filtered"); + deviceCountByGroup.setDisplayNameForGroup("Filtered"); + deviceCountByGroup.setDeviceCount(filteredDeviceCount); - return deviceCountByGroupEntry; + return deviceCountByGroup; } - private int getFilteredDeviceCount(FilterSet filterSet) - throws InvalidParameterValueException, SQLException { + private int getFilteredDeviceCount(ExtendedFilterSet extendedFilterSet) + throws InvalidPotentialVulnerabilityValueException, SQLException { - Map filters = this.extractDatabaseFiltersFromBean(filterSet); + Map filters = this.extractDatabaseFiltersFromBean(extendedFilterSet); Connection con; PreparedStatement stmt = null; @@ -115,14 +117,14 @@ public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceD } @Override - public DeviceCountByGroupEntry getFeatureNonCompliantDeviceCount(String nonCompliantFeatureCode, - FilterSet filterSet) throws InvalidParameterValueException, SQLException { + public DeviceCountByGroup getFeatureNonCompliantDeviceCount(String featureCode, + BasicFilterSet basicFilterSet) throws InvalidFeatureCodeValueException, SQLException { - if (nonCompliantFeatureCode == null || nonCompliantFeatureCode.isEmpty()) { - throw new InvalidParameterValueException("Non-compliant feature code should not be either null or empty."); + if (featureCode == null || featureCode.isEmpty()) { + throw new InvalidFeatureCodeValueException("Feature code should not be either null or empty."); } - Map filters = this.extractDatabaseFiltersFromBean(filterSet); + Map filters = this.extractDatabaseFiltersFromBean(basicFilterSet); Connection con; PreparedStatement stmt = null; @@ -143,7 +145,7 @@ public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceD stmt = con.prepareStatement(sql); // [2] appending filter column values, if exist stmt.setInt(1, tenantId); - stmt.setString(2, nonCompliantFeatureCode); + stmt.setString(2, featureCode); if (filters != null && filters.values().size() > 0) { int i = 3; for (Object value : filters.values()) { @@ -165,21 +167,21 @@ public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceD DeviceManagementDAOUtil.cleanupResources(stmt, rs); } - DeviceCountByGroupEntry deviceCountByGroupEntry = new DeviceCountByGroupEntry(); - deviceCountByGroupEntry.setGroup("feature-non-compliant-and-filtered"); - deviceCountByGroupEntry.setDisplayNameForGroup("Feature-non-compliant-and-filtered"); - deviceCountByGroupEntry.setDeviceCount(filteredDeviceCount); + DeviceCountByGroup deviceCountByGroup = new DeviceCountByGroup(); + deviceCountByGroup.setGroup("feature-non-compliant-and-filtered"); + deviceCountByGroup.setDisplayNameForGroup("Feature-non-compliant-and-filtered"); + deviceCountByGroup.setDeviceCount(filteredDeviceCount); - return deviceCountByGroupEntry; + return deviceCountByGroup; } @Override - public List getDeviceCountsByConnectivityStatuses() throws SQLException { + public List getDeviceCountsByConnectivityStatuses() throws SQLException { Connection con; PreparedStatement stmt = null; ResultSet rs = null; int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); - List deviceCountsByConnectivityStatuses = new ArrayList<>(); + List deviceCountsByConnectivityStatuses = new ArrayList<>(); try { con = this.getConnection(); String sql = "SELECT CONNECTIVITY_STATUS, COUNT(DEVICE_ID) AS DEVICE_COUNT FROM " + @@ -191,9 +193,9 @@ public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceD // executing query rs = stmt.executeQuery(); // fetching query results - DeviceCountByGroupEntry deviceCountByConnectivityStatus; + DeviceCountByGroup deviceCountByConnectivityStatus; while (rs.next()) { - deviceCountByConnectivityStatus = new DeviceCountByGroupEntry(); + deviceCountByConnectivityStatus = new DeviceCountByGroup(); deviceCountByConnectivityStatus.setGroup(rs.getString("CONNECTIVITY_STATUS")); deviceCountByConnectivityStatus.setDisplayNameForGroup(rs.getString("CONNECTIVITY_STATUS")); deviceCountByConnectivityStatus.setDeviceCount(rs.getInt("DEVICE_COUNT")); @@ -206,20 +208,20 @@ public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceD } @Override - public List getDeviceCountsByPotentialVulnerabilities() throws SQLException { + public List getDeviceCountsByPotentialVulnerabilities() throws SQLException { // getting non-compliant device count - DeviceCountByGroupEntry nonCompliantDeviceCount = new DeviceCountByGroupEntry(); + DeviceCountByGroup nonCompliantDeviceCount = new DeviceCountByGroup(); nonCompliantDeviceCount.setGroup(GadgetDataServiceDAOConstants.PotentialVulnerability.NON_COMPLIANT); nonCompliantDeviceCount.setDisplayNameForGroup("Non-compliant"); nonCompliantDeviceCount.setDeviceCount(getNonCompliantDeviceCount()); // getting unmonitored device count - DeviceCountByGroupEntry unmonitoredDeviceCount = new DeviceCountByGroupEntry(); + DeviceCountByGroup unmonitoredDeviceCount = new DeviceCountByGroup(); unmonitoredDeviceCount.setGroup(GadgetDataServiceDAOConstants.PotentialVulnerability.UNMONITORED); unmonitoredDeviceCount.setDisplayNameForGroup("Unmonitored"); unmonitoredDeviceCount.setDeviceCount(getUnmonitoredDeviceCount()); - List deviceCountsByPotentialVulnerabilities = new ArrayList<>(); + List deviceCountsByPotentialVulnerabilities = new ArrayList<>(); deviceCountsByPotentialVulnerabilities.add(nonCompliantDeviceCount); deviceCountsByPotentialVulnerabilities.add(unmonitoredDeviceCount); @@ -227,36 +229,38 @@ public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceD } private int getNonCompliantDeviceCount() throws SQLException { - FilterSet filterSet = new FilterSet(); - filterSet.setPotentialVulnerability(GadgetDataServiceDAOConstants.PotentialVulnerability.NON_COMPLIANT); + ExtendedFilterSet extendedFilterSet = new ExtendedFilterSet(); + extendedFilterSet.setPotentialVulnerability(GadgetDataServiceDAOConstants. + PotentialVulnerability.NON_COMPLIANT); try { - return this.getFilteredDeviceCount(filterSet); - } catch (InvalidParameterValueException e) { + return this.getFilteredDeviceCount(extendedFilterSet); + } catch (InvalidPotentialVulnerabilityValueException e) { throw new AssertionError(e); } } private int getUnmonitoredDeviceCount() throws SQLException { - FilterSet filterSet = new FilterSet(); - filterSet.setPotentialVulnerability(GadgetDataServiceDAOConstants.PotentialVulnerability.UNMONITORED); + ExtendedFilterSet extendedFilterSet = new ExtendedFilterSet(); + extendedFilterSet.setPotentialVulnerability(GadgetDataServiceDAOConstants. + PotentialVulnerability.UNMONITORED); try { - return this.getFilteredDeviceCount(filterSet); - } catch (InvalidParameterValueException e) { + return this.getFilteredDeviceCount(extendedFilterSet); + } catch (InvalidPotentialVulnerabilityValueException e) { throw new AssertionError(e); } } @Override - public List getDeviceCountsByPlatforms(FilterSet filterSet) - throws InvalidParameterValueException, SQLException { + public List getDeviceCountsByPlatforms(ExtendedFilterSet extendedFilterSet) + throws InvalidPotentialVulnerabilityValueException, SQLException { - Map filters = this.extractDatabaseFiltersFromBean(filterSet); + Map filters = this.extractDatabaseFiltersFromBean(extendedFilterSet); Connection con; PreparedStatement stmt = null; ResultSet rs = null; int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); - List filteredDeviceCountsByPlatforms = new ArrayList<>(); + List filteredDeviceCountsByPlatforms = new ArrayList<>(); try { con = this.getConnection(); String sql, advancedSqlFiltering = ""; @@ -286,9 +290,9 @@ public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceD // executing query rs = stmt.executeQuery(); // fetching query results - DeviceCountByGroupEntry filteredDeviceCountByPlatform; + DeviceCountByGroup filteredDeviceCountByPlatform; while (rs.next()) { - filteredDeviceCountByPlatform = new DeviceCountByGroupEntry(); + filteredDeviceCountByPlatform = new DeviceCountByGroup(); filteredDeviceCountByPlatform.setGroup(rs.getString("PLATFORM")); filteredDeviceCountByPlatform.setDisplayNameForGroup(rs.getString("PLATFORM").toUpperCase()); filteredDeviceCountByPlatform.setDeviceCount(rs.getInt("DEVICE_COUNT")); @@ -301,21 +305,21 @@ public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceD } @Override - public List - getFeatureNonCompliantDeviceCountsByPlatforms(String nonCompliantFeatureCode, - FilterSet filterSet) throws InvalidParameterValueException, SQLException { + public List + getFeatureNonCompliantDeviceCountsByPlatforms(String featureCode, + BasicFilterSet basicFilterSet) throws InvalidFeatureCodeValueException, SQLException { - if (nonCompliantFeatureCode == null || nonCompliantFeatureCode.isEmpty()) { - throw new InvalidParameterValueException("Non-compliant feature code should not be either null or empty."); + if (featureCode == null || featureCode.isEmpty()) { + throw new InvalidFeatureCodeValueException("Feature code should not be either null or empty."); } - Map filters = this.extractDatabaseFiltersFromBean(filterSet); + Map filters = this.extractDatabaseFiltersFromBean(basicFilterSet); Connection con; PreparedStatement stmt = null; ResultSet rs = null; int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); - List filteredDeviceCountsByPlatforms = new ArrayList<>(); + List filteredDeviceCountsByPlatforms = new ArrayList<>(); try { con = this.getConnection(); String sql, advancedSqlFiltering = ""; @@ -332,7 +336,7 @@ public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceD stmt = con.prepareStatement(sql); // [2] appending filter column values, if exist stmt.setInt(1, tenantId); - stmt.setString(2, nonCompliantFeatureCode); + stmt.setString(2, featureCode); if (filters != null && filters.values().size() > 0) { int i = 3; for (Object value : filters.values()) { @@ -347,9 +351,9 @@ public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceD // executing query rs = stmt.executeQuery(); // fetching query results - DeviceCountByGroupEntry filteredDeviceCountByPlatform; + DeviceCountByGroup filteredDeviceCountByPlatform; while (rs.next()) { - filteredDeviceCountByPlatform = new DeviceCountByGroupEntry(); + filteredDeviceCountByPlatform = new DeviceCountByGroup(); filteredDeviceCountByPlatform.setGroup(rs.getString("PLATFORM")); filteredDeviceCountByPlatform.setDisplayNameForGroup(rs.getString("PLATFORM").toUpperCase()); filteredDeviceCountByPlatform.setDeviceCount(rs.getInt("DEVICE_COUNT")); @@ -362,16 +366,16 @@ public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceD } @Override - public List getDeviceCountsByOwnershipTypes(FilterSet filterSet) - throws InvalidParameterValueException, SQLException { + public List getDeviceCountsByOwnershipTypes(ExtendedFilterSet extendedFilterSet) + throws InvalidPotentialVulnerabilityValueException, SQLException { - Map filters = this.extractDatabaseFiltersFromBean(filterSet); + Map filters = this.extractDatabaseFiltersFromBean(extendedFilterSet); Connection con; PreparedStatement stmt = null; ResultSet rs = null; int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); - List filteredDeviceCountsByOwnershipTypes = new ArrayList<>(); + List filteredDeviceCountsByOwnershipTypes = new ArrayList<>(); try { con = this.getConnection(); String sql, advancedSqlFiltering = ""; @@ -402,9 +406,9 @@ public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceD // executing query rs = stmt.executeQuery(); // fetching query results - DeviceCountByGroupEntry filteredDeviceCountByOwnershipType; + DeviceCountByGroup filteredDeviceCountByOwnershipType; while (rs.next()) { - filteredDeviceCountByOwnershipType = new DeviceCountByGroupEntry(); + filteredDeviceCountByOwnershipType = new DeviceCountByGroup(); filteredDeviceCountByOwnershipType.setGroup(rs.getString("OWNERSHIP")); filteredDeviceCountByOwnershipType.setDisplayNameForGroup(rs.getString("OWNERSHIP")); filteredDeviceCountByOwnershipType.setDeviceCount(rs.getInt("DEVICE_COUNT")); @@ -417,21 +421,21 @@ public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceD } @Override - public List - getFeatureNonCompliantDeviceCountsByOwnershipTypes(String nonCompliantFeatureCode, - FilterSet filterSet) throws InvalidParameterValueException, SQLException { + public List + getFeatureNonCompliantDeviceCountsByOwnershipTypes(String featureCode, + BasicFilterSet basicFilterSet) throws InvalidFeatureCodeValueException, SQLException { - if (nonCompliantFeatureCode == null || nonCompliantFeatureCode.isEmpty()) { - throw new InvalidParameterValueException("Non-compliant feature code should not be either null or empty."); + if (featureCode == null || featureCode.isEmpty()) { + throw new InvalidFeatureCodeValueException("Feature code should not be either null or empty."); } - Map filters = this.extractDatabaseFiltersFromBean(filterSet); + Map filters = this.extractDatabaseFiltersFromBean(basicFilterSet); Connection con; PreparedStatement stmt = null; ResultSet rs = null; int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); - List filteredDeviceCountsByOwnershipTypes = new ArrayList<>(); + List filteredDeviceCountsByOwnershipTypes = new ArrayList<>(); try { con = this.getConnection(); String sql, advancedSqlFiltering = ""; @@ -448,7 +452,7 @@ public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceD stmt = con.prepareStatement(sql); // [2] appending filter column values, if exist stmt.setInt(1, tenantId); - stmt.setString(2, nonCompliantFeatureCode); + stmt.setString(2, featureCode); if (filters != null && filters.values().size() > 0) { int i = 3; for (Object value : filters.values()) { @@ -463,9 +467,9 @@ public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceD // executing query rs = stmt.executeQuery(); // fetching query results - DeviceCountByGroupEntry filteredDeviceCountByOwnershipType; + DeviceCountByGroup filteredDeviceCountByOwnershipType; while (rs.next()) { - filteredDeviceCountByOwnershipType = new DeviceCountByGroupEntry(); + filteredDeviceCountByOwnershipType = new DeviceCountByGroup(); filteredDeviceCountByOwnershipType.setGroup(rs.getString("OWNERSHIP")); filteredDeviceCountByOwnershipType.setDisplayNameForGroup(rs.getString("OWNERSHIP")); filteredDeviceCountByOwnershipType.setDeviceCount(rs.getInt("DEVICE_COUNT")); @@ -478,16 +482,16 @@ public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceD } @Override - public List getDevicesWithDetails(FilterSet filterSet) - throws InvalidParameterValueException, SQLException { + public List getDevicesWithDetails(ExtendedFilterSet extendedFilterSet) + throws InvalidPotentialVulnerabilityValueException, SQLException { - Map filters = this.extractDatabaseFiltersFromBean(filterSet); + Map filters = this.extractDatabaseFiltersFromBean(extendedFilterSet); Connection con; PreparedStatement stmt = null; ResultSet rs = null; int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); - List filteredDevicesWithDetails = new ArrayList<>(); + List filteredDevicesWithDetails = new ArrayList<>(); try { con = this.getConnection(); String sql; @@ -517,9 +521,9 @@ public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceD // executing query rs = stmt.executeQuery(); // fetching query results - DetailedDeviceEntry filteredDeviceWithDetails; + DeviceWithDetails filteredDeviceWithDetails; while (rs.next()) { - filteredDeviceWithDetails = new DetailedDeviceEntry(); + filteredDeviceWithDetails = new DeviceWithDetails(); filteredDeviceWithDetails.setDeviceId(rs.getInt("DEVICE_ID")); filteredDeviceWithDetails.setDeviceIdentification(rs.getString("DEVICE_IDENTIFICATION")); filteredDeviceWithDetails.setPlatform(rs.getString("PLATFORM")); @@ -534,20 +538,20 @@ public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceD } @Override - public List getFeatureNonCompliantDevicesWithDetails(String nonCompliantFeatureCode, - FilterSet filterSet) throws InvalidParameterValueException, SQLException { + public List getFeatureNonCompliantDevicesWithDetails(String featureCode, + BasicFilterSet basicFilterSet) throws InvalidFeatureCodeValueException, SQLException { - if (nonCompliantFeatureCode == null || nonCompliantFeatureCode.isEmpty()) { - throw new InvalidParameterValueException("Non-compliant feature code should not be either null or empty."); + if (featureCode == null || featureCode.isEmpty()) { + throw new InvalidFeatureCodeValueException("Feature code should not be either null or empty."); } - Map filters = this.extractDatabaseFiltersFromBean(filterSet); + Map filters = this.extractDatabaseFiltersFromBean(basicFilterSet); Connection con; PreparedStatement stmt = null; ResultSet rs = null; int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); - List filteredDevicesWithDetails = new ArrayList<>(); + List filteredDevicesWithDetails = new ArrayList<>(); try { con = this.getConnection(); String sql; @@ -564,7 +568,7 @@ public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceD stmt = con.prepareStatement(sql); // [2] appending filter column values, if exist stmt.setInt(1, tenantId); - stmt.setString(2, nonCompliantFeatureCode); + stmt.setString(2, featureCode); if (filters != null && filters.values().size() > 0) { int i = 3; for (Object value : filters.values()) { @@ -579,9 +583,9 @@ public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceD // executing query rs = stmt.executeQuery(); // fetching query results - DetailedDeviceEntry filteredDeviceWithDetails; + DeviceWithDetails filteredDeviceWithDetails; while (rs.next()) { - filteredDeviceWithDetails = new DetailedDeviceEntry(); + filteredDeviceWithDetails = new DeviceWithDetails(); filteredDeviceWithDetails.setDeviceId(rs.getInt("DEVICE_ID")); filteredDeviceWithDetails.setDeviceIdentification(rs.getString("DEVICE_IDENTIFICATION")); filteredDeviceWithDetails.setPlatform(rs.getString("PLATFORM")); @@ -595,46 +599,56 @@ public abstract class AbstractGadgetDataServiceDAO implements GadgetDataServiceD return filteredDevicesWithDetails; } - protected Map extractDatabaseFiltersFromBean(FilterSet filterSet) - throws InvalidParameterValueException { - if (filterSet == null) { + protected Map extractDatabaseFiltersFromBean(BasicFilterSet basicFilterSet) { + if (basicFilterSet == null) { return null; } Map filters = new LinkedHashMap<>(); - String connectivityStatus = filterSet.getConnectivityStatus(); - if (connectivityStatus != null) { + String connectivityStatus = basicFilterSet.getConnectivityStatus(); + if (connectivityStatus != null && !connectivityStatus.isEmpty()) { filters.put("CONNECTIVITY_STATUS", connectivityStatus); } - String potentialVulnerability = filterSet.getPotentialVulnerability(); - if (potentialVulnerability != null) { + String platform = basicFilterSet.getPlatform(); + if (platform != null && !platform.isEmpty()) { + filters.put("PLATFORM", platform); + } + + String ownership = basicFilterSet.getOwnership(); + if (ownership != null && !ownership.isEmpty()) { + filters.put("OWNERSHIP", ownership); + } + + return filters; + } + + protected Map extractDatabaseFiltersFromBean(ExtendedFilterSet extendedFilterSet) + throws InvalidPotentialVulnerabilityValueException { + if (extendedFilterSet == null) { + return null; + } + + Map filters = this.extractDatabaseFiltersFromBean((BasicFilterSet) extendedFilterSet); + + String potentialVulnerability = extendedFilterSet.getPotentialVulnerability(); + if (potentialVulnerability != null && !potentialVulnerability.isEmpty()) { if (GadgetDataServiceDAOConstants.PotentialVulnerability.NON_COMPLIANT.equals(potentialVulnerability) || - GadgetDataServiceDAOConstants.PotentialVulnerability.UNMONITORED.equals(potentialVulnerability)) { + GadgetDataServiceDAOConstants.PotentialVulnerability.UNMONITORED.equals(potentialVulnerability)) { if (GadgetDataServiceDAOConstants.PotentialVulnerability.NON_COMPLIANT.equals(potentialVulnerability)) { filters.put("IS_COMPLIANT", 0); } else { filters.put("POLICY_ID", -1); } } else { - throw new InvalidParameterValueException("Invalid use of value for potential vulnerability. " + - "Value of potential vulnerability could only be either " + + throw new InvalidPotentialVulnerabilityValueException("Invalid use of value for potential " + + "vulnerability. Value of potential vulnerability could only be either " + GadgetDataServiceDAOConstants.PotentialVulnerability.NON_COMPLIANT + " or " + GadgetDataServiceDAOConstants.PotentialVulnerability.UNMONITORED + "."); } } - String platform = filterSet.getPlatform(); - if (platform != null) { - filters.put("PLATFORM", platform); - } - - String ownership = filterSet.getOwnership(); - if (ownership != null) { - filters.put("OWNERSHIP", ownership); - } - return filters; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/GadgetDataServiceDAO.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/GadgetDataServiceDAO.java index 9a727df1e26..c5c1638fbab 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/GadgetDataServiceDAO.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/GadgetDataServiceDAO.java @@ -18,10 +18,11 @@ package org.wso2.carbon.device.mgt.analytics.dashboard.dao; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DetailedDeviceEntry; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceCountByGroupEntry; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.FilterSet; -import org.wso2.carbon.device.mgt.analytics.dashboard.exception.InvalidParameterValueException; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceWithDetails; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceCountByGroup; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.BasicFilterSet; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.ExtendedFilterSet; +import org.wso2.carbon.device.mgt.analytics.dashboard.exception.*; import org.wso2.carbon.device.mgt.common.PaginationResult; import java.sql.SQLException; @@ -29,44 +30,45 @@ import java.util.List; public interface GadgetDataServiceDAO { - DeviceCountByGroupEntry getDeviceCount(FilterSet filterSet) - throws InvalidParameterValueException, SQLException; + DeviceCountByGroup getDeviceCount(ExtendedFilterSet extendedFilterSet) + throws InvalidPotentialVulnerabilityValueException, SQLException; - DeviceCountByGroupEntry getFeatureNonCompliantDeviceCount(String nonCompliantFeatureCode, FilterSet filterSet) - throws InvalidParameterValueException, SQLException; + DeviceCountByGroup getFeatureNonCompliantDeviceCount(String featureCode, BasicFilterSet basicFilterSet) + throws InvalidFeatureCodeValueException, SQLException; - DeviceCountByGroupEntry getTotalDeviceCount() throws SQLException; + DeviceCountByGroup getTotalDeviceCount() throws SQLException; - List getDeviceCountsByConnectivityStatuses() throws SQLException; + List getDeviceCountsByConnectivityStatuses() throws SQLException; - List getDeviceCountsByPotentialVulnerabilities() throws SQLException; + List getDeviceCountsByPotentialVulnerabilities() throws SQLException; - PaginationResult getNonCompliantDeviceCountsByFeatures(int startIndex, int resultCount) - throws InvalidParameterValueException, SQLException; + PaginationResult getNonCompliantDeviceCountsByFeatures(int startIndex, int resultCount) throws + InvalidStartIndexValueException, InvalidResultCountValueException, SQLException; - List getDeviceCountsByPlatforms(FilterSet filterSet) - throws InvalidParameterValueException, SQLException; + List getDeviceCountsByPlatforms(ExtendedFilterSet extendedFilterSet) + throws InvalidPotentialVulnerabilityValueException, SQLException; - List getFeatureNonCompliantDeviceCountsByPlatforms(String nonCompliantFeatureCode, - FilterSet filterSet) throws InvalidParameterValueException, SQLException; + List getFeatureNonCompliantDeviceCountsByPlatforms(String featureCode, + BasicFilterSet basicFilterSet) throws InvalidFeatureCodeValueException, SQLException; - List getDeviceCountsByOwnershipTypes(FilterSet filterSet) - throws InvalidParameterValueException, SQLException; + List getDeviceCountsByOwnershipTypes(ExtendedFilterSet extendedFilterSet) + throws InvalidPotentialVulnerabilityValueException, SQLException; - List getFeatureNonCompliantDeviceCountsByOwnershipTypes(String nonCompliantFeatureCode, - FilterSet filterSet) throws InvalidParameterValueException, SQLException; + List getFeatureNonCompliantDeviceCountsByOwnershipTypes(String featureCode, + BasicFilterSet basicFilterSet) throws InvalidFeatureCodeValueException, SQLException; - PaginationResult getDevicesWithDetails(FilterSet filterSet, int startIndex, int resultCount) - throws InvalidParameterValueException, SQLException; + PaginationResult getDevicesWithDetails(ExtendedFilterSet extendedFilterSet, int startIndex, int resultCount) + throws InvalidPotentialVulnerabilityValueException, + InvalidStartIndexValueException, InvalidResultCountValueException, SQLException; - PaginationResult getFeatureNonCompliantDevicesWithDetails(String nonCompliantFeatureCode, - FilterSet filterSet, int startIndex, int resultCount) - throws InvalidParameterValueException, SQLException; + PaginationResult getFeatureNonCompliantDevicesWithDetails(String featureCode, BasicFilterSet basicFilterSet, + int startIndex, int resultCount) throws InvalidFeatureCodeValueException, + InvalidStartIndexValueException, InvalidResultCountValueException, SQLException; - List getDevicesWithDetails(FilterSet filterSet) - throws InvalidParameterValueException, SQLException; + List getDevicesWithDetails(ExtendedFilterSet extendedFilterSet) + throws InvalidPotentialVulnerabilityValueException, SQLException; - List getFeatureNonCompliantDevicesWithDetails(String nonCompliantFeatureCode, - FilterSet filterSet) throws InvalidParameterValueException, SQLException; + List getFeatureNonCompliantDevicesWithDetails(String featureCode, + BasicFilterSet basicFilterSet) throws InvalidFeatureCodeValueException, SQLException; } diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/impl/GenericGadgetDataServiceDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/impl/GenericGadgetDataServiceDAOImpl.java index 87e48e363fa..4a0deb7d247 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/impl/GenericGadgetDataServiceDAOImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/impl/GenericGadgetDataServiceDAOImpl.java @@ -19,12 +19,13 @@ package org.wso2.carbon.device.mgt.analytics.dashboard.dao.impl; import org.wso2.carbon.context.PrivilegedCarbonContext; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DetailedDeviceEntry; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceCountByGroupEntry; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.FilterSet; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceWithDetails; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceCountByGroup; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.BasicFilterSet; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.ExtendedFilterSet; import org.wso2.carbon.device.mgt.analytics.dashboard.dao.AbstractGadgetDataServiceDAO; import org.wso2.carbon.device.mgt.analytics.dashboard.dao.GadgetDataServiceDAOConstants; -import org.wso2.carbon.device.mgt.analytics.dashboard.exception.InvalidParameterValueException; +import org.wso2.carbon.device.mgt.analytics.dashboard.exception.*; import org.wso2.carbon.device.mgt.common.PaginationResult; import org.wso2.carbon.device.mgt.core.dao.util.DeviceManagementDAOUtil; @@ -40,15 +41,15 @@ public class GenericGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDA @Override public PaginationResult getNonCompliantDeviceCountsByFeatures(int startIndex, int resultCount) - throws InvalidParameterValueException, SQLException { + throws InvalidStartIndexValueException, InvalidResultCountValueException, SQLException { if (startIndex < GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX) { - throw new InvalidParameterValueException("Start index should be equal to " + + throw new InvalidStartIndexValueException("Start index should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX + " or greater than that."); } if (resultCount < GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT) { - throw new InvalidParameterValueException("Result count should be equal to " + + throw new InvalidResultCountValueException("Result count should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT + " or greater than that."); } @@ -56,7 +57,7 @@ public class GenericGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDA PreparedStatement stmt = null; ResultSet rs = null; int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); - List filteredNonCompliantDeviceCountsByFeatures = new ArrayList<>(); + List filteredNonCompliantDeviceCountsByFeatures = new ArrayList<>(); int totalRecordsCount = 0; try { con = this.getConnection(); @@ -71,9 +72,9 @@ public class GenericGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDA // executing query rs = stmt.executeQuery(); // fetching query results - DeviceCountByGroupEntry filteredNonCompliantDeviceCountByFeature; + DeviceCountByGroup filteredNonCompliantDeviceCountByFeature; while (rs.next()) { - filteredNonCompliantDeviceCountByFeature = new DeviceCountByGroupEntry(); + filteredNonCompliantDeviceCountByFeature = new DeviceCountByGroup(); filteredNonCompliantDeviceCountByFeature.setGroup(rs.getString("FEATURE_CODE")); filteredNonCompliantDeviceCountByFeature.setDisplayNameForGroup(rs.getString("FEATURE_CODE")); filteredNonCompliantDeviceCountByFeature.setDeviceCount(rs.getInt("DEVICE_COUNT")); @@ -103,26 +104,27 @@ public class GenericGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDA } @Override - public PaginationResult getDevicesWithDetails(FilterSet filterSet, int startIndex, int resultCount) - throws InvalidParameterValueException, SQLException { + public PaginationResult getDevicesWithDetails(ExtendedFilterSet extendedFilterSet, int startIndex, + int resultCount) throws InvalidPotentialVulnerabilityValueException, + InvalidStartIndexValueException, InvalidResultCountValueException, SQLException { if (startIndex < GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX) { - throw new InvalidParameterValueException("Start index should be equal to " + + throw new InvalidStartIndexValueException("Start index should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX + " or greater than that."); } if (resultCount < GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT) { - throw new InvalidParameterValueException("Result count should be equal to " + + throw new InvalidResultCountValueException("Result count should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT + " or greater than that."); } - Map filters = this.extractDatabaseFiltersFromBean(filterSet); + Map filters = this.extractDatabaseFiltersFromBean(extendedFilterSet); Connection con; PreparedStatement stmt = null; ResultSet rs = null; int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); - List filteredDevicesWithDetails = new ArrayList<>(); + List filteredDevicesWithDetails = new ArrayList<>(); int totalRecordsCount = 0; try { con = this.getConnection(); @@ -159,9 +161,9 @@ public class GenericGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDA // executing query rs = stmt.executeQuery(); // fetching query results - DetailedDeviceEntry filteredDeviceWithDetails; + DeviceWithDetails filteredDeviceWithDetails; while (rs.next()) { - filteredDeviceWithDetails = new DetailedDeviceEntry(); + filteredDeviceWithDetails = new DeviceWithDetails(); filteredDeviceWithDetails.setDeviceId(rs.getInt("DEVICE_ID")); filteredDeviceWithDetails.setDeviceIdentification(rs.getString("DEVICE_IDENTIFICATION")); filteredDeviceWithDetails.setPlatform(rs.getString("PLATFORM")); @@ -193,31 +195,32 @@ public class GenericGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDA } @Override - public PaginationResult getFeatureNonCompliantDevicesWithDetails(String nonCompliantFeatureCode, - FilterSet filterSet, int startIndex, int resultCount) - throws InvalidParameterValueException, SQLException { + public PaginationResult getFeatureNonCompliantDevicesWithDetails(String featureCode, + BasicFilterSet basicFilterSet, int startIndex, int resultCount) + throws InvalidFeatureCodeValueException, InvalidStartIndexValueException, + InvalidResultCountValueException, SQLException { - if (nonCompliantFeatureCode == null || nonCompliantFeatureCode.isEmpty()) { - throw new InvalidParameterValueException("Non-compliant feature code should not be either null or empty."); + if (featureCode == null || featureCode.isEmpty()) { + throw new InvalidFeatureCodeValueException("Feature code should not be either null or empty."); } if (startIndex < GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX) { - throw new InvalidParameterValueException("Start index should be equal to " + + throw new InvalidStartIndexValueException("Start index should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX + " or greater than that."); } if (resultCount < GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT) { - throw new InvalidParameterValueException("Result count should be equal to " + + throw new InvalidResultCountValueException("Result count should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT + " or greater than that."); } - Map filters = this.extractDatabaseFiltersFromBean(filterSet); + Map filters = this.extractDatabaseFiltersFromBean(basicFilterSet); Connection con; PreparedStatement stmt = null; ResultSet rs = null; int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); - List filteredDevicesWithDetails = new ArrayList<>(); + List filteredDevicesWithDetails = new ArrayList<>(); int totalRecordsCount = 0; try { con = this.getConnection(); @@ -236,7 +239,7 @@ public class GenericGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDA stmt = con.prepareStatement(sql); // [2] appending filter column values, if exist stmt.setInt(1, tenantId); - stmt.setString(2, nonCompliantFeatureCode); + stmt.setString(2, featureCode); if (filters != null && filters.values().size() > 0) { int i = 3; for (Object value : filters.values()) { @@ -256,9 +259,9 @@ public class GenericGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDA // executing query rs = stmt.executeQuery(); // fetching query results - DetailedDeviceEntry filteredDeviceWithDetails; + DeviceWithDetails filteredDeviceWithDetails; while (rs.next()) { - filteredDeviceWithDetails = new DetailedDeviceEntry(); + filteredDeviceWithDetails = new DeviceWithDetails(); filteredDeviceWithDetails.setDeviceId(rs.getInt("DEVICE_ID")); filteredDeviceWithDetails.setDeviceIdentification(rs.getString("DEVICE_IDENTIFICATION")); filteredDeviceWithDetails.setPlatform(rs.getString("PLATFORM")); @@ -273,7 +276,7 @@ public class GenericGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDA stmt = con.prepareStatement(sql); stmt.setInt(1, tenantId); - stmt.setString(2, nonCompliantFeatureCode); + stmt.setString(2, featureCode); // executing query rs = stmt.executeQuery(); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/impl/MSSQLGadgetDataServiceDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/impl/MSSQLGadgetDataServiceDAOImpl.java index 528cef64df9..396a596c9b2 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/impl/MSSQLGadgetDataServiceDAOImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/impl/MSSQLGadgetDataServiceDAOImpl.java @@ -19,12 +19,13 @@ package org.wso2.carbon.device.mgt.analytics.dashboard.dao.impl; import org.wso2.carbon.context.PrivilegedCarbonContext; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DetailedDeviceEntry; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceCountByGroupEntry; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.FilterSet; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceWithDetails; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceCountByGroup; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.BasicFilterSet; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.ExtendedFilterSet; import org.wso2.carbon.device.mgt.analytics.dashboard.dao.AbstractGadgetDataServiceDAO; import org.wso2.carbon.device.mgt.analytics.dashboard.dao.GadgetDataServiceDAOConstants; -import org.wso2.carbon.device.mgt.analytics.dashboard.exception.InvalidParameterValueException; +import org.wso2.carbon.device.mgt.analytics.dashboard.exception.*; import org.wso2.carbon.device.mgt.common.PaginationResult; import org.wso2.carbon.device.mgt.core.dao.util.DeviceManagementDAOUtil; @@ -40,15 +41,15 @@ public class MSSQLGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDAO @Override public PaginationResult getNonCompliantDeviceCountsByFeatures(int startIndex, int resultCount) - throws InvalidParameterValueException, SQLException { + throws InvalidStartIndexValueException, InvalidResultCountValueException, SQLException { if (startIndex < GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX) { - throw new InvalidParameterValueException("Start index should be equal to " + + throw new InvalidStartIndexValueException("Start index should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX + " or greater than that."); } if (resultCount < GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT) { - throw new InvalidParameterValueException("Result count should be equal to " + + throw new InvalidResultCountValueException("Result count should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT + " or greater than that."); } @@ -56,7 +57,7 @@ public class MSSQLGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDAO PreparedStatement stmt = null; ResultSet rs = null; int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); - List filteredNonCompliantDeviceCountsByFeatures = new ArrayList<>(); + List filteredNonCompliantDeviceCountsByFeatures = new ArrayList<>(); int totalRecordsCount = 0; try { con = this.getConnection(); @@ -71,9 +72,9 @@ public class MSSQLGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDAO // executing query rs = stmt.executeQuery(); // fetching query results - DeviceCountByGroupEntry filteredNonCompliantDeviceCountByFeature; + DeviceCountByGroup filteredNonCompliantDeviceCountByFeature; while (rs.next()) { - filteredNonCompliantDeviceCountByFeature = new DeviceCountByGroupEntry(); + filteredNonCompliantDeviceCountByFeature = new DeviceCountByGroup(); filteredNonCompliantDeviceCountByFeature.setGroup(rs.getString("FEATURE_CODE")); filteredNonCompliantDeviceCountByFeature.setDisplayNameForGroup(rs.getString("FEATURE_CODE")); filteredNonCompliantDeviceCountByFeature.setDeviceCount(rs.getInt("DEVICE_COUNT")); @@ -103,26 +104,29 @@ public class MSSQLGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDAO } @Override - public PaginationResult getDevicesWithDetails(FilterSet filterSet, int startIndex, int resultCount) - throws InvalidParameterValueException, SQLException { + public PaginationResult getDevicesWithDetails(ExtendedFilterSet extendedFilterSet, int startIndex, int resultCount) + throws InvalidPotentialVulnerabilityValueException, + InvalidStartIndexValueException, + InvalidResultCountValueException, + SQLException { if (startIndex < GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX) { - throw new InvalidParameterValueException("Start index should be equal to " + + throw new InvalidStartIndexValueException("Start index should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX + " or greater than that."); } if (resultCount < GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT) { - throw new InvalidParameterValueException("Result count should be equal to " + + throw new InvalidResultCountValueException("Result count should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT + " or greater than that."); } - Map filters = this.extractDatabaseFiltersFromBean(filterSet); + Map filters = this.extractDatabaseFiltersFromBean(extendedFilterSet); Connection con; PreparedStatement stmt = null; ResultSet rs = null; int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); - List filteredDevicesWithDetails = new ArrayList<>(); + List filteredDevicesWithDetails = new ArrayList<>(); int totalRecordsCount = 0; try { con = this.getConnection(); @@ -159,9 +163,9 @@ public class MSSQLGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDAO // executing query rs = stmt.executeQuery(); // fetching query results - DetailedDeviceEntry filteredDeviceWithDetails; + DeviceWithDetails filteredDeviceWithDetails; while (rs.next()) { - filteredDeviceWithDetails = new DetailedDeviceEntry(); + filteredDeviceWithDetails = new DeviceWithDetails(); filteredDeviceWithDetails.setDeviceId(rs.getInt("DEVICE_ID")); filteredDeviceWithDetails.setDeviceIdentification(rs.getString("DEVICE_IDENTIFICATION")); filteredDeviceWithDetails.setPlatform(rs.getString("PLATFORM")); @@ -193,31 +197,32 @@ public class MSSQLGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDAO } @Override - public PaginationResult getFeatureNonCompliantDevicesWithDetails(String nonCompliantFeatureCode, - FilterSet filterSet, int startIndex, int resultCount) - throws InvalidParameterValueException, SQLException { + public PaginationResult getFeatureNonCompliantDevicesWithDetails(String featureCode, + BasicFilterSet basicFilterSet, int startIndex, int resultCount) + throws InvalidFeatureCodeValueException, InvalidStartIndexValueException, + InvalidResultCountValueException, SQLException { - if (nonCompliantFeatureCode == null || nonCompliantFeatureCode.isEmpty()) { - throw new InvalidParameterValueException("Non-compliant feature code should not be either null or empty."); + if (featureCode == null || featureCode.isEmpty()) { + throw new InvalidFeatureCodeValueException("Feature code should not be either null or empty."); } if (startIndex < GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX) { - throw new InvalidParameterValueException("Start index should be equal to " + + throw new InvalidStartIndexValueException("Start index should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX + " or greater than that."); } if (resultCount < GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT) { - throw new InvalidParameterValueException("Result count should be equal to " + + throw new InvalidResultCountValueException("Result count should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT + " or greater than that."); } - Map filters = this.extractDatabaseFiltersFromBean(filterSet); + Map filters = this.extractDatabaseFiltersFromBean(basicFilterSet); Connection con; PreparedStatement stmt = null; ResultSet rs = null; int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); - List filteredDevicesWithDetails = new ArrayList<>(); + List filteredDevicesWithDetails = new ArrayList<>(); int totalRecordsCount = 0; try { con = this.getConnection(); @@ -236,7 +241,7 @@ public class MSSQLGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDAO stmt = con.prepareStatement(sql); // [2] appending filter column values, if exist stmt.setInt(1, tenantId); - stmt.setString(2, nonCompliantFeatureCode); + stmt.setString(2, featureCode); if (filters != null && filters.values().size() > 0) { int i = 3; for (Object value : filters.values()) { @@ -256,9 +261,9 @@ public class MSSQLGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDAO // executing query rs = stmt.executeQuery(); // fetching query results - DetailedDeviceEntry filteredDeviceWithDetails; + DeviceWithDetails filteredDeviceWithDetails; while (rs.next()) { - filteredDeviceWithDetails = new DetailedDeviceEntry(); + filteredDeviceWithDetails = new DeviceWithDetails(); filteredDeviceWithDetails.setDeviceId(rs.getInt("DEVICE_ID")); filteredDeviceWithDetails.setDeviceIdentification(rs.getString("DEVICE_IDENTIFICATION")); filteredDeviceWithDetails.setPlatform(rs.getString("PLATFORM")); @@ -273,7 +278,7 @@ public class MSSQLGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDAO stmt = con.prepareStatement(sql); stmt.setInt(1, tenantId); - stmt.setString(2, nonCompliantFeatureCode); + stmt.setString(2, featureCode); // executing query rs = stmt.executeQuery(); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/impl/OracleGadgetDataServiceDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/impl/OracleGadgetDataServiceDAOImpl.java index a6000591964..7fdc731b472 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/impl/OracleGadgetDataServiceDAOImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/impl/OracleGadgetDataServiceDAOImpl.java @@ -19,12 +19,13 @@ package org.wso2.carbon.device.mgt.analytics.dashboard.dao.impl; import org.wso2.carbon.context.PrivilegedCarbonContext; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DetailedDeviceEntry; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceCountByGroupEntry; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.FilterSet; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceWithDetails; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceCountByGroup; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.BasicFilterSet; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.ExtendedFilterSet; import org.wso2.carbon.device.mgt.analytics.dashboard.dao.AbstractGadgetDataServiceDAO; import org.wso2.carbon.device.mgt.analytics.dashboard.dao.GadgetDataServiceDAOConstants; -import org.wso2.carbon.device.mgt.analytics.dashboard.exception.InvalidParameterValueException; +import org.wso2.carbon.device.mgt.analytics.dashboard.exception.*; import org.wso2.carbon.device.mgt.common.PaginationResult; import org.wso2.carbon.device.mgt.core.dao.util.DeviceManagementDAOUtil; @@ -40,15 +41,15 @@ public class OracleGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDAO @Override public PaginationResult getNonCompliantDeviceCountsByFeatures(int startIndex, int resultCount) - throws InvalidParameterValueException, SQLException { + throws InvalidStartIndexValueException, InvalidResultCountValueException, SQLException { if (startIndex < GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX) { - throw new InvalidParameterValueException("Start index should be equal to " + + throw new InvalidStartIndexValueException("Start index should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX + " or greater than that."); } if (resultCount < GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT) { - throw new InvalidParameterValueException("Result count should be equal to " + + throw new InvalidResultCountValueException("Result count should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT + " or greater than that."); } @@ -56,7 +57,7 @@ public class OracleGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDAO PreparedStatement stmt = null; ResultSet rs = null; int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); - List filteredNonCompliantDeviceCountsByFeatures = new ArrayList<>(); + List filteredNonCompliantDeviceCountsByFeatures = new ArrayList<>(); int totalRecordsCount = 0; try { con = this.getConnection(); @@ -73,9 +74,9 @@ public class OracleGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDAO // executing query rs = stmt.executeQuery(); // fetching query results - DeviceCountByGroupEntry filteredNonCompliantDeviceCountByFeature; + DeviceCountByGroup filteredNonCompliantDeviceCountByFeature; while (rs.next()) { - filteredNonCompliantDeviceCountByFeature = new DeviceCountByGroupEntry(); + filteredNonCompliantDeviceCountByFeature = new DeviceCountByGroup(); filteredNonCompliantDeviceCountByFeature.setGroup(rs.getString("FEATURE_CODE")); filteredNonCompliantDeviceCountByFeature.setDisplayNameForGroup(rs.getString("FEATURE_CODE")); filteredNonCompliantDeviceCountByFeature.setDeviceCount(rs.getInt("DEVICE_COUNT")); @@ -105,26 +106,27 @@ public class OracleGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDAO } @Override - public PaginationResult getDevicesWithDetails(FilterSet filterSet, int startIndex, int resultCount) - throws InvalidParameterValueException, SQLException { + public PaginationResult getDevicesWithDetails(ExtendedFilterSet extendedFilterSet, int startIndex, int resultCount) + throws InvalidPotentialVulnerabilityValueException, InvalidStartIndexValueException, + InvalidResultCountValueException, SQLException { if (startIndex < GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX) { - throw new InvalidParameterValueException("Start index should be equal to " + + throw new InvalidStartIndexValueException("Start index should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX + " or greater than that."); } if (resultCount < GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT) { - throw new InvalidParameterValueException("Result count should be equal to " + + throw new InvalidResultCountValueException("Result count should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT + " or greater than that."); } - Map filters = this.extractDatabaseFiltersFromBean(filterSet); + Map filters = this.extractDatabaseFiltersFromBean(extendedFilterSet); Connection con; PreparedStatement stmt = null; ResultSet rs = null; int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); - List filteredDevicesWithDetails = new ArrayList<>(); + List filteredDevicesWithDetails = new ArrayList<>(); int totalRecordsCount = 0; try { con = this.getConnection(); @@ -163,9 +165,9 @@ public class OracleGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDAO // executing query rs = stmt.executeQuery(); // fetching query results - DetailedDeviceEntry filteredDeviceWithDetails; + DeviceWithDetails filteredDeviceWithDetails; while (rs.next()) { - filteredDeviceWithDetails = new DetailedDeviceEntry(); + filteredDeviceWithDetails = new DeviceWithDetails(); filteredDeviceWithDetails.setDeviceId(rs.getInt("DEVICE_ID")); filteredDeviceWithDetails.setDeviceIdentification(rs.getString("DEVICE_IDENTIFICATION")); filteredDeviceWithDetails.setPlatform(rs.getString("PLATFORM")); @@ -197,31 +199,31 @@ public class OracleGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDAO } @Override - public PaginationResult getFeatureNonCompliantDevicesWithDetails(String nonCompliantFeatureCode, - FilterSet filterSet, int startIndex, int resultCount) - throws InvalidParameterValueException, SQLException { + public PaginationResult getFeatureNonCompliantDevicesWithDetails(String featureCode, BasicFilterSet basicFilterSet, + int startIndex, int resultCount) throws InvalidFeatureCodeValueException, + InvalidStartIndexValueException, InvalidResultCountValueException, SQLException { - if (nonCompliantFeatureCode == null || nonCompliantFeatureCode.isEmpty()) { - throw new InvalidParameterValueException("Non-compliant feature code should not be either null or empty."); + if (featureCode == null || featureCode.isEmpty()) { + throw new InvalidFeatureCodeValueException("Feature code should not be either null or empty."); } if (startIndex < GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX) { - throw new InvalidParameterValueException("Start index should be equal to " + + throw new InvalidStartIndexValueException("Start index should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX + " or greater than that."); } if (resultCount < GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT) { - throw new InvalidParameterValueException("Result count should be equal to " + + throw new InvalidResultCountValueException("Result count should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT + " or greater than that."); } - Map filters = this.extractDatabaseFiltersFromBean(filterSet); + Map filters = this.extractDatabaseFiltersFromBean(basicFilterSet); Connection con; PreparedStatement stmt = null; ResultSet rs = null; int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); - List filteredDevicesWithDetails = new ArrayList<>(); + List filteredDevicesWithDetails = new ArrayList<>(); int totalRecordsCount = 0; try { con = this.getConnection(); @@ -240,7 +242,7 @@ public class OracleGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDAO stmt = con.prepareStatement(sql); // [2] appending filter column values, if exist stmt.setInt(1, tenantId); - stmt.setString(2, nonCompliantFeatureCode); + stmt.setString(2, featureCode); if (filters != null && filters.values().size() > 0) { int i = 3; for (Object value : filters.values()) { @@ -260,9 +262,9 @@ public class OracleGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDAO // executing query rs = stmt.executeQuery(); // fetching query results - DetailedDeviceEntry filteredDeviceWithDetails; + DeviceWithDetails filteredDeviceWithDetails; while (rs.next()) { - filteredDeviceWithDetails = new DetailedDeviceEntry(); + filteredDeviceWithDetails = new DeviceWithDetails(); filteredDeviceWithDetails.setDeviceId(rs.getInt("DEVICE_ID")); filteredDeviceWithDetails.setDeviceIdentification(rs.getString("DEVICE_IDENTIFICATION")); filteredDeviceWithDetails.setPlatform(rs.getString("PLATFORM")); @@ -277,7 +279,7 @@ public class OracleGadgetDataServiceDAOImpl extends AbstractGadgetDataServiceDAO stmt = con.prepareStatement(sql); stmt.setInt(1, tenantId); - stmt.setString(2, nonCompliantFeatureCode); + stmt.setString(2, featureCode); // executing query rs = stmt.executeQuery(); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/impl/PostgreSQLGadgetDataServiceDAOImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/impl/PostgreSQLGadgetDataServiceDAOImpl.java index 34b90bafa71..d44ad929eeb 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/impl/PostgreSQLGadgetDataServiceDAOImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/dao/impl/PostgreSQLGadgetDataServiceDAOImpl.java @@ -19,12 +19,13 @@ package org.wso2.carbon.device.mgt.analytics.dashboard.dao.impl; import org.wso2.carbon.context.PrivilegedCarbonContext; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DetailedDeviceEntry; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceCountByGroupEntry; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.FilterSet; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceWithDetails; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceCountByGroup; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.BasicFilterSet; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.ExtendedFilterSet; import org.wso2.carbon.device.mgt.analytics.dashboard.dao.AbstractGadgetDataServiceDAO; import org.wso2.carbon.device.mgt.analytics.dashboard.dao.GadgetDataServiceDAOConstants; -import org.wso2.carbon.device.mgt.analytics.dashboard.exception.InvalidParameterValueException; +import org.wso2.carbon.device.mgt.analytics.dashboard.exception.*; import org.wso2.carbon.device.mgt.common.PaginationResult; import org.wso2.carbon.device.mgt.core.dao.util.DeviceManagementDAOUtil; @@ -40,15 +41,15 @@ public class PostgreSQLGadgetDataServiceDAOImpl extends AbstractGadgetDataServic @Override public PaginationResult getNonCompliantDeviceCountsByFeatures(int startIndex, int resultCount) - throws InvalidParameterValueException, SQLException { + throws InvalidStartIndexValueException, InvalidResultCountValueException, SQLException { if (startIndex < GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX) { - throw new InvalidParameterValueException("Start index should be equal to " + + throw new InvalidStartIndexValueException("Start index should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX + " or greater than that."); } if (resultCount < GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT) { - throw new InvalidParameterValueException("Result count should be equal to " + + throw new InvalidResultCountValueException("Result count should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT + " or greater than that."); } @@ -56,7 +57,7 @@ public class PostgreSQLGadgetDataServiceDAOImpl extends AbstractGadgetDataServic PreparedStatement stmt = null; ResultSet rs = null; int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); - List filteredNonCompliantDeviceCountsByFeatures = new ArrayList<>(); + List filteredNonCompliantDeviceCountsByFeatures = new ArrayList<>(); int totalRecordsCount = 0; try { con = this.getConnection(); @@ -72,9 +73,9 @@ public class PostgreSQLGadgetDataServiceDAOImpl extends AbstractGadgetDataServic // executing query rs = stmt.executeQuery(); // fetching query results - DeviceCountByGroupEntry filteredNonCompliantDeviceCountByFeature; + DeviceCountByGroup filteredNonCompliantDeviceCountByFeature; while (rs.next()) { - filteredNonCompliantDeviceCountByFeature = new DeviceCountByGroupEntry(); + filteredNonCompliantDeviceCountByFeature = new DeviceCountByGroup(); filteredNonCompliantDeviceCountByFeature.setGroup(rs.getString("FEATURE_CODE")); filteredNonCompliantDeviceCountByFeature.setDisplayNameForGroup(rs.getString("FEATURE_CODE")); filteredNonCompliantDeviceCountByFeature.setDeviceCount(rs.getInt("DEVICE_COUNT")); @@ -104,26 +105,27 @@ public class PostgreSQLGadgetDataServiceDAOImpl extends AbstractGadgetDataServic } @Override - public PaginationResult getDevicesWithDetails(FilterSet filterSet, int startIndex, int resultCount) - throws InvalidParameterValueException, SQLException { + public PaginationResult getDevicesWithDetails(ExtendedFilterSet extendedFilterSet, int startIndex, int resultCount) + throws InvalidPotentialVulnerabilityValueException, InvalidStartIndexValueException, + InvalidResultCountValueException, SQLException { if (startIndex < GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX) { - throw new InvalidParameterValueException("Start index should be equal to " + + throw new InvalidStartIndexValueException("Start index should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX + " or greater than that."); } if (resultCount < GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT) { - throw new InvalidParameterValueException("Result count should be equal to " + + throw new InvalidResultCountValueException("Result count should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT + " or greater than that."); } - Map filters = this.extractDatabaseFiltersFromBean(filterSet); + Map filters = this.extractDatabaseFiltersFromBean(extendedFilterSet); Connection con; PreparedStatement stmt = null; ResultSet rs = null; int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); - List filteredDevicesWithDetails = new ArrayList<>(); + List filteredDevicesWithDetails = new ArrayList<>(); int totalRecordsCount = 0; try { con = this.getConnection(); @@ -161,9 +163,9 @@ public class PostgreSQLGadgetDataServiceDAOImpl extends AbstractGadgetDataServic // executing query rs = stmt.executeQuery(); // fetching query results - DetailedDeviceEntry filteredDeviceWithDetails; + DeviceWithDetails filteredDeviceWithDetails; while (rs.next()) { - filteredDeviceWithDetails = new DetailedDeviceEntry(); + filteredDeviceWithDetails = new DeviceWithDetails(); filteredDeviceWithDetails.setDeviceId(rs.getInt("DEVICE_ID")); filteredDeviceWithDetails.setDeviceIdentification(rs.getString("DEVICE_IDENTIFICATION")); filteredDeviceWithDetails.setPlatform(rs.getString("PLATFORM")); @@ -195,31 +197,31 @@ public class PostgreSQLGadgetDataServiceDAOImpl extends AbstractGadgetDataServic } @Override - public PaginationResult getFeatureNonCompliantDevicesWithDetails(String nonCompliantFeatureCode, - FilterSet filterSet, int startIndex, int resultCount) - throws InvalidParameterValueException, SQLException { + public PaginationResult getFeatureNonCompliantDevicesWithDetails(String featureCode, BasicFilterSet basicFilterSet, + int startIndex, int resultCount) throws InvalidFeatureCodeValueException, + InvalidStartIndexValueException, InvalidResultCountValueException, SQLException { - if (nonCompliantFeatureCode == null || nonCompliantFeatureCode.isEmpty()) { - throw new InvalidParameterValueException("Non-compliant feature code should not be either null or empty."); + if (featureCode == null || featureCode.isEmpty()) { + throw new InvalidFeatureCodeValueException("Feature code should not be either null or empty."); } if (startIndex < GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX) { - throw new InvalidParameterValueException("Start index should be equal to " + + throw new InvalidStartIndexValueException("Start index should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_START_INDEX + " or greater than that."); } if (resultCount < GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT) { - throw new InvalidParameterValueException("Result count should be equal to " + + throw new InvalidResultCountValueException("Result count should be equal to " + GadgetDataServiceDAOConstants.Pagination.MIN_RESULT_COUNT + " or greater than that."); } - Map filters = this.extractDatabaseFiltersFromBean(filterSet); + Map filters = this.extractDatabaseFiltersFromBean(basicFilterSet); Connection con; PreparedStatement stmt = null; ResultSet rs = null; int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); - List filteredDevicesWithDetails = new ArrayList<>(); + List filteredDevicesWithDetails = new ArrayList<>(); int totalRecordsCount = 0; try { con = this.getConnection(); @@ -238,7 +240,7 @@ public class PostgreSQLGadgetDataServiceDAOImpl extends AbstractGadgetDataServic stmt = con.prepareStatement(sql); // [2] appending filter column values, if exist stmt.setInt(1, tenantId); - stmt.setString(2, nonCompliantFeatureCode); + stmt.setString(2, featureCode); if (filters != null && filters.values().size() > 0) { int i = 3; for (Object value : filters.values()) { @@ -258,9 +260,9 @@ public class PostgreSQLGadgetDataServiceDAOImpl extends AbstractGadgetDataServic // executing query rs = stmt.executeQuery(); // fetching query results - DetailedDeviceEntry filteredDeviceWithDetails; + DeviceWithDetails filteredDeviceWithDetails; while (rs.next()) { - filteredDeviceWithDetails = new DetailedDeviceEntry(); + filteredDeviceWithDetails = new DeviceWithDetails(); filteredDeviceWithDetails.setDeviceId(rs.getInt("DEVICE_ID")); filteredDeviceWithDetails.setDeviceIdentification(rs.getString("DEVICE_IDENTIFICATION")); filteredDeviceWithDetails.setPlatform(rs.getString("PLATFORM")); @@ -275,7 +277,7 @@ public class PostgreSQLGadgetDataServiceDAOImpl extends AbstractGadgetDataServic stmt = con.prepareStatement(sql); stmt.setInt(1, tenantId); - stmt.setString(2, nonCompliantFeatureCode); + stmt.setString(2, featureCode); // executing query rs = stmt.executeQuery(); diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/exception/InvalidFeatureCodeValueException.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/exception/InvalidFeatureCodeValueException.java new file mode 100644 index 00000000000..0ba644a6111 --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/exception/InvalidFeatureCodeValueException.java @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * WSO2 Inc. licenses this file to you 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. + */ + +package org.wso2.carbon.device.mgt.analytics.dashboard.exception; + +/** + * Custom exception class for catching invalid parameter values, + * relevant to Gadget Data Service DAO layer. + */ +public class InvalidFeatureCodeValueException extends Exception { + + private String errorMessage; + private static final long serialVersionUID = 2021891706072918864L; + + /** + * Constructs a new exception with the specific error message and nested exception. + * @param errorMessage specific error message. + * @param nestedException Nested exception. + */ + @SuppressWarnings("unused") + public InvalidFeatureCodeValueException(String errorMessage, Exception nestedException) { + super(errorMessage, nestedException); + setErrorMessage(errorMessage); + } + + /** + * Constructs a new exception with the specific error message and cause. + * @param errorMessage Specific error message. + * @param cause Cause of this exception. + */ + @SuppressWarnings("unused") + public InvalidFeatureCodeValueException(String errorMessage, Throwable cause) { + super(errorMessage, cause); + setErrorMessage(errorMessage); + } + + /** + * Constructs a new exception with the specific error message. + * @param errorMessage Specific error message. + */ + public InvalidFeatureCodeValueException(String errorMessage) { + super(errorMessage); + setErrorMessage(errorMessage); + } + + /** + * Constructs a new exception with the specific error message and cause. + * @param cause Cause of this exception. + */ + @SuppressWarnings("unused") + public InvalidFeatureCodeValueException(Throwable cause) { + super(cause); + } + + @SuppressWarnings("unused") + public String getErrorMessage() { + return errorMessage; + } + + public void setErrorMessage(String errorMessage) { + this.errorMessage = errorMessage; + } + +} + diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/exception/InvalidPotentialVulnerabilityValueException.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/exception/InvalidPotentialVulnerabilityValueException.java new file mode 100644 index 00000000000..a31b68f8fad --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/exception/InvalidPotentialVulnerabilityValueException.java @@ -0,0 +1,79 @@ +/* + * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * WSO2 Inc. licenses this file to you 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. + */ + +package org.wso2.carbon.device.mgt.analytics.dashboard.exception; + +/** + * Custom exception class for catching invalid parameter values, + * relevant to Gadget Data Service DAO layer. + */ +public class InvalidPotentialVulnerabilityValueException extends Exception { + + private String errorMessage; + private static final long serialVersionUID = 2021891706072918864L; + + /** + * Constructs a new exception with the specific error message and nested exception. + * @param errorMessage specific error message. + * @param nestedException Nested exception. + */ + @SuppressWarnings("unused") + public InvalidPotentialVulnerabilityValueException(String errorMessage, Exception nestedException) { + super(errorMessage, nestedException); + setErrorMessage(errorMessage); + } + + /** + * Constructs a new exception with the specific error message and cause. + * @param errorMessage Specific error message. + * @param cause Cause of this exception. + */ + @SuppressWarnings("unused") + public InvalidPotentialVulnerabilityValueException(String errorMessage, Throwable cause) { + super(errorMessage, cause); + setErrorMessage(errorMessage); + } + + /** + * Constructs a new exception with the specific error message. + * @param errorMessage Specific error message. + */ + public InvalidPotentialVulnerabilityValueException(String errorMessage) { + super(errorMessage); + setErrorMessage(errorMessage); + } + + /** + * Constructs a new exception with the specific error message and cause. + * @param cause Cause of this exception. + */ + @SuppressWarnings("unused") + public InvalidPotentialVulnerabilityValueException(Throwable cause) { + super(cause); + } + + @SuppressWarnings("unused") + public String getErrorMessage() { + return errorMessage; + } + + public void setErrorMessage(String errorMessage) { + this.errorMessage = errorMessage; + } + +} diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/exception/InvalidResultCountValueException.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/exception/InvalidResultCountValueException.java new file mode 100644 index 00000000000..9d20a6971dd --- /dev/null +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/exception/InvalidResultCountValueException.java @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. + * + * WSO2 Inc. licenses this file to you 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. + */ + +package org.wso2.carbon.device.mgt.analytics.dashboard.exception; + +/** + * Custom exception class for catching invalid parameter values, + * relevant to Gadget Data Service DAO layer. + */ +public class InvalidResultCountValueException extends Exception { + + private String errorMessage; + private static final long serialVersionUID = 2021891706072918864L; + + /** + * Constructs a new exception with the specific error message and nested exception. + * @param errorMessage specific error message. + * @param nestedException Nested exception. + */ + @SuppressWarnings("unused") + public InvalidResultCountValueException(String errorMessage, Exception nestedException) { + super(errorMessage, nestedException); + setErrorMessage(errorMessage); + } + + /** + * Constructs a new exception with the specific error message and cause. + * @param errorMessage Specific error message. + * @param cause Cause of this exception. + */ + @SuppressWarnings("unused") + public InvalidResultCountValueException(String errorMessage, Throwable cause) { + super(errorMessage, cause); + setErrorMessage(errorMessage); + } + + /** + * Constructs a new exception with the specific error message. + * @param errorMessage Specific error message. + */ + public InvalidResultCountValueException(String errorMessage) { + super(errorMessage); + setErrorMessage(errorMessage); + } + + /** + * Constructs a new exception with the specific error message and cause. + * @param cause Cause of this exception. + */ + @SuppressWarnings("unused") + public InvalidResultCountValueException(Throwable cause) { + super(cause); + } + + @SuppressWarnings("unused") + public String getErrorMessage() { + return errorMessage; + } + + public void setErrorMessage(String errorMessage) { + this.errorMessage = errorMessage; + } + +} + diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/exception/InvalidParameterValueException.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/exception/InvalidStartIndexValueException.java similarity index 83% rename from components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/exception/InvalidParameterValueException.java rename to components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/exception/InvalidStartIndexValueException.java index 1cf485b4d58..39370c0ab11 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/exception/InvalidParameterValueException.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/exception/InvalidStartIndexValueException.java @@ -19,10 +19,10 @@ package org.wso2.carbon.device.mgt.analytics.dashboard.exception; /** - * Custom exception class for catching invalid parameter issues, + * Custom exception class for catching invalid parameter values, * relevant to Gadget Data Service DAO layer. */ -public class InvalidParameterValueException extends Exception { +public class InvalidStartIndexValueException extends Exception { private String errorMessage; private static final long serialVersionUID = 2021891706072918864L; @@ -33,7 +33,7 @@ public class InvalidParameterValueException extends Exception { * @param nestedException Nested exception. */ @SuppressWarnings("unused") - public InvalidParameterValueException(String errorMessage, Exception nestedException) { + public InvalidStartIndexValueException(String errorMessage, Exception nestedException) { super(errorMessage, nestedException); setErrorMessage(errorMessage); } @@ -44,7 +44,7 @@ public class InvalidParameterValueException extends Exception { * @param cause Cause of this exception. */ @SuppressWarnings("unused") - public InvalidParameterValueException(String errorMessage, Throwable cause) { + public InvalidStartIndexValueException(String errorMessage, Throwable cause) { super(errorMessage, cause); setErrorMessage(errorMessage); } @@ -53,7 +53,7 @@ public class InvalidParameterValueException extends Exception { * Constructs a new exception with the specific error message. * @param errorMessage Specific error message. */ - public InvalidParameterValueException(String errorMessage) { + public InvalidStartIndexValueException(String errorMessage) { super(errorMessage); setErrorMessage(errorMessage); } @@ -63,7 +63,7 @@ public class InvalidParameterValueException extends Exception { * @param cause Cause of this exception. */ @SuppressWarnings("unused") - public InvalidParameterValueException(Throwable cause) { + public InvalidStartIndexValueException(Throwable cause) { super(cause); } @@ -77,3 +77,4 @@ public class InvalidParameterValueException extends Exception { } } + diff --git a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/impl/GadgetDataServiceImpl.java b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/impl/GadgetDataServiceImpl.java index e92dee1d318..495172e3e02 100644 --- a/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/impl/GadgetDataServiceImpl.java +++ b/components/device-mgt/org.wso2.carbon.device.mgt.analytics.dashboard/src/main/java/org/wso2/carbon/device/mgt/analytics/dashboard/impl/GadgetDataServiceImpl.java @@ -19,12 +19,12 @@ package org.wso2.carbon.device.mgt.analytics.dashboard.impl; import org.wso2.carbon.device.mgt.analytics.dashboard.GadgetDataService; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceCountByGroup; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceWithDetails; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.ExtendedFilterSet; import org.wso2.carbon.device.mgt.analytics.dashboard.dao.GadgetDataServiceDAOFactory; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DetailedDeviceEntry; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.DeviceCountByGroupEntry; -import org.wso2.carbon.device.mgt.analytics.dashboard.bean.FilterSet; -import org.wso2.carbon.device.mgt.analytics.dashboard.exception.DataAccessLayerException; -import org.wso2.carbon.device.mgt.analytics.dashboard.exception.InvalidParameterValueException; +import org.wso2.carbon.device.mgt.analytics.dashboard.bean.BasicFilterSet; +import org.wso2.carbon.device.mgt.analytics.dashboard.exception.*; import org.wso2.carbon.device.mgt.common.PaginationResult; import java.sql.SQLException; @@ -36,12 +36,13 @@ import java.util.List; public class GadgetDataServiceImpl implements GadgetDataService { @Override - public DeviceCountByGroupEntry getDeviceCount(FilterSet filterSet) - throws InvalidParameterValueException, DataAccessLayerException { - DeviceCountByGroupEntry filteredDeviceCount; + public DeviceCountByGroup getDeviceCount(ExtendedFilterSet extendedFilterSet) + throws InvalidPotentialVulnerabilityValueException, DataAccessLayerException { + DeviceCountByGroup filteredDeviceCount; try { GadgetDataServiceDAOFactory.openConnection(); - filteredDeviceCount = GadgetDataServiceDAOFactory.getGadgetDataServiceDAO().getDeviceCount(filterSet); + filteredDeviceCount = GadgetDataServiceDAOFactory.getGadgetDataServiceDAO(). + getDeviceCount(extendedFilterSet); } catch (SQLException e) { throw new DataAccessLayerException("Error in either opening a database connection or " + "accessing the database to fetch corresponding results.", e); @@ -52,13 +53,13 @@ public class GadgetDataServiceImpl implements GadgetDataService { } @Override - public DeviceCountByGroupEntry getFeatureNonCompliantDeviceCount(String nonCompliantFeatureCode, - FilterSet filterSet) throws InvalidParameterValueException, DataAccessLayerException { - DeviceCountByGroupEntry featureNonCompliantDeviceCount; + public DeviceCountByGroup getFeatureNonCompliantDeviceCount(String featureCode, BasicFilterSet basicFilterSet) + throws InvalidFeatureCodeValueException, DataAccessLayerException { + DeviceCountByGroup featureNonCompliantDeviceCount; try { GadgetDataServiceDAOFactory.openConnection(); featureNonCompliantDeviceCount = GadgetDataServiceDAOFactory. - getGadgetDataServiceDAO().getFeatureNonCompliantDeviceCount(nonCompliantFeatureCode, filterSet); + getGadgetDataServiceDAO().getFeatureNonCompliantDeviceCount(featureCode, basicFilterSet); } catch (SQLException e) { throw new DataAccessLayerException("Error in either opening a database connection or " + "accessing the database to fetch corresponding results.", e); @@ -69,8 +70,8 @@ public class GadgetDataServiceImpl implements GadgetDataService { } @Override - public DeviceCountByGroupEntry getTotalDeviceCount() throws DataAccessLayerException { - DeviceCountByGroupEntry totalDeviceCount; + public DeviceCountByGroup getTotalDeviceCount() throws DataAccessLayerException { + DeviceCountByGroup totalDeviceCount; try { GadgetDataServiceDAOFactory.openConnection(); totalDeviceCount = GadgetDataServiceDAOFactory.getGadgetDataServiceDAO().getTotalDeviceCount(); @@ -84,8 +85,8 @@ public class GadgetDataServiceImpl implements GadgetDataService { } @Override - public List getDeviceCountsByConnectivityStatuses() throws DataAccessLayerException { - List deviceCountsByConnectivityStatuses; + public List getDeviceCountsByConnectivityStatuses() throws DataAccessLayerException { + List deviceCountsByConnectivityStatuses; try { GadgetDataServiceDAOFactory.openConnection(); deviceCountsByConnectivityStatuses = GadgetDataServiceDAOFactory. @@ -100,8 +101,8 @@ public class GadgetDataServiceImpl implements GadgetDataService { } @Override - public List getDeviceCountsByPotentialVulnerabilities() throws DataAccessLayerException { - List deviceCountsByPotentialVulnerabilities; + public List getDeviceCountsByPotentialVulnerabilities() throws DataAccessLayerException { + List deviceCountsByPotentialVulnerabilities; try { GadgetDataServiceDAOFactory.openConnection(); deviceCountsByPotentialVulnerabilities = GadgetDataServiceDAOFactory.getGadgetDataServiceDAO(). @@ -117,7 +118,8 @@ public class GadgetDataServiceImpl implements GadgetDataService { @Override public PaginationResult getNonCompliantDeviceCountsByFeatures(int startIndex, int resultCount) - throws InvalidParameterValueException, DataAccessLayerException { + throws InvalidStartIndexValueException, InvalidResultCountValueException, + DataAccessLayerException { PaginationResult paginationResult; try { GadgetDataServiceDAOFactory.openConnection(); @@ -133,13 +135,13 @@ public class GadgetDataServiceImpl implements GadgetDataService { } @Override - public List getDeviceCountsByPlatforms(FilterSet filterSet) - throws InvalidParameterValueException, DataAccessLayerException { - List deviceCountsByPlatforms; + public List getDeviceCountsByPlatforms(ExtendedFilterSet extendedFilterSet) + throws InvalidPotentialVulnerabilityValueException, DataAccessLayerException { + List deviceCountsByPlatforms; try { GadgetDataServiceDAOFactory.openConnection(); deviceCountsByPlatforms = GadgetDataServiceDAOFactory.getGadgetDataServiceDAO(). - getDeviceCountsByPlatforms(filterSet); + getDeviceCountsByPlatforms(extendedFilterSet); } catch (SQLException e) { throw new DataAccessLayerException("Error in either opening a database connection or " + "accessing the database to fetch corresponding results.", e); @@ -150,13 +152,14 @@ public class GadgetDataServiceImpl implements GadgetDataService { } @Override - public List getFeatureNonCompliantDeviceCountsByPlatforms(String nonCompliantFeatureCode, - FilterSet filterSet) throws InvalidParameterValueException, DataAccessLayerException { - List featureNonCompliantDeviceCountsByPlatforms; + public List getFeatureNonCompliantDeviceCountsByPlatforms(String featureCode, + BasicFilterSet basicFilterSet) throws InvalidFeatureCodeValueException, + DataAccessLayerException { + List featureNonCompliantDeviceCountsByPlatforms; try { GadgetDataServiceDAOFactory.openConnection(); featureNonCompliantDeviceCountsByPlatforms = GadgetDataServiceDAOFactory.getGadgetDataServiceDAO(). - getFeatureNonCompliantDeviceCountsByPlatforms(nonCompliantFeatureCode, filterSet); + getFeatureNonCompliantDeviceCountsByPlatforms(featureCode, basicFilterSet); } catch (SQLException e) { throw new DataAccessLayerException("Error in either opening a database connection or " + "accessing the database to fetch corresponding results.", e); @@ -167,13 +170,14 @@ public class GadgetDataServiceImpl implements GadgetDataService { } @Override - public List getDeviceCountsByOwnershipTypes(FilterSet filterSet) - throws InvalidParameterValueException, DataAccessLayerException { - List deviceCountsByOwnershipTypes; + public List getDeviceCountsByOwnershipTypes(ExtendedFilterSet extendedFilterSet) + throws InvalidPotentialVulnerabilityValueException, + DataAccessLayerException { + List deviceCountsByOwnershipTypes; try { GadgetDataServiceDAOFactory.openConnection(); deviceCountsByOwnershipTypes = GadgetDataServiceDAOFactory.getGadgetDataServiceDAO(). - getDeviceCountsByOwnershipTypes(filterSet); + getDeviceCountsByOwnershipTypes(extendedFilterSet); } catch (SQLException e) { throw new DataAccessLayerException("Error in either opening a database connection or " + "accessing the database to fetch corresponding results.", e); @@ -184,14 +188,14 @@ public class GadgetDataServiceImpl implements GadgetDataService { } @Override - public List - getFeatureNonCompliantDeviceCountsByOwnershipTypes(String nonCompliantFeatureCode, - FilterSet filterSet) throws InvalidParameterValueException, DataAccessLayerException { - List featureNonCompliantDeviceCountsByOwnershipTypes; + public List + getFeatureNonCompliantDeviceCountsByOwnershipTypes(String featureCode, BasicFilterSet basicFilterSet) + throws InvalidFeatureCodeValueException, DataAccessLayerException { + List featureNonCompliantDeviceCountsByOwnershipTypes; try { GadgetDataServiceDAOFactory.openConnection(); featureNonCompliantDeviceCountsByOwnershipTypes = GadgetDataServiceDAOFactory.getGadgetDataServiceDAO(). - getFeatureNonCompliantDeviceCountsByOwnershipTypes(nonCompliantFeatureCode, filterSet); + getFeatureNonCompliantDeviceCountsByOwnershipTypes(featureCode, basicFilterSet); } catch (SQLException e) { throw new DataAccessLayerException("Error in either opening a database connection or " + "accessing the database to fetch corresponding results.", e); @@ -202,13 +206,14 @@ public class GadgetDataServiceImpl implements GadgetDataService { } @Override - public PaginationResult getDevicesWithDetails(FilterSet filterSet, - int startIndex, int resultCount) throws InvalidParameterValueException, DataAccessLayerException { + public PaginationResult getDevicesWithDetails(ExtendedFilterSet extendedFilterSet, int startIndex, int resultCount) + throws InvalidPotentialVulnerabilityValueException, DataAccessLayerException, + InvalidStartIndexValueException, InvalidResultCountValueException { PaginationResult paginationResult; try { GadgetDataServiceDAOFactory.openConnection(); paginationResult = GadgetDataServiceDAOFactory.getGadgetDataServiceDAO(). - getDevicesWithDetails(filterSet, startIndex, resultCount); + getDevicesWithDetails(extendedFilterSet, startIndex, resultCount); } catch (SQLException e) { throw new DataAccessLayerException("Error in either opening a database connection or " + "accessing the database to fetch corresponding results.", e); @@ -219,14 +224,15 @@ public class GadgetDataServiceImpl implements GadgetDataService { } @Override - public PaginationResult getFeatureNonCompliantDevicesWithDetails(String nonCompliantFeatureCode, - FilterSet filterSet, int startIndex, int resultCount) - throws InvalidParameterValueException, DataAccessLayerException { + public PaginationResult getFeatureNonCompliantDevicesWithDetails(String featureCode, BasicFilterSet basicFilterSet, + int startIndex, int resultCount) throws InvalidFeatureCodeValueException, + DataAccessLayerException, InvalidStartIndexValueException, + InvalidResultCountValueException { PaginationResult paginationResult; try { GadgetDataServiceDAOFactory.openConnection(); paginationResult = GadgetDataServiceDAOFactory.getGadgetDataServiceDAO(). - getFeatureNonCompliantDevicesWithDetails(nonCompliantFeatureCode, filterSet, startIndex, resultCount); + getFeatureNonCompliantDevicesWithDetails(featureCode, basicFilterSet, startIndex, resultCount); } catch (SQLException e) { throw new DataAccessLayerException("Error in either opening a database connection or " + "accessing the database to fetch corresponding results.", e); @@ -237,13 +243,13 @@ public class GadgetDataServiceImpl implements GadgetDataService { } @Override - public List getDevicesWithDetails(FilterSet filterSet) - throws InvalidParameterValueException, DataAccessLayerException { - List devicesWithDetails; + public List getDevicesWithDetails(ExtendedFilterSet extendedFilterSet) + throws InvalidPotentialVulnerabilityValueException, DataAccessLayerException { + List devicesWithDetails; try { GadgetDataServiceDAOFactory.openConnection(); devicesWithDetails = GadgetDataServiceDAOFactory. - getGadgetDataServiceDAO().getDevicesWithDetails(filterSet); + getGadgetDataServiceDAO().getDevicesWithDetails(extendedFilterSet); } catch (SQLException e) { throw new DataAccessLayerException("Error in either opening a database connection or " + "accessing the database to fetch corresponding results.", e); @@ -254,13 +260,14 @@ public class GadgetDataServiceImpl implements GadgetDataService { } @Override - public List getFeatureNonCompliantDevicesWithDetails(String nonCompliantFeatureCode, - FilterSet filterSet) throws InvalidParameterValueException, DataAccessLayerException { - List featureNonCompliantDevicesWithDetails; + public List getFeatureNonCompliantDevicesWithDetails(String featureCode, + BasicFilterSet basicFilterSet) throws InvalidFeatureCodeValueException, + DataAccessLayerException { + List featureNonCompliantDevicesWithDetails; try { GadgetDataServiceDAOFactory.openConnection(); featureNonCompliantDevicesWithDetails = GadgetDataServiceDAOFactory.getGadgetDataServiceDAO(). - getFeatureNonCompliantDevicesWithDetails(nonCompliantFeatureCode, filterSet); + getFeatureNonCompliantDevicesWithDetails(featureCode, basicFilterSet); } catch (SQLException e) { throw new DataAccessLayerException("Error in either opening a database connection or " + "accessing the database to fetch corresponding results.", e);