From 3911c26a7fda32b8f3332ceb7fa3adc34b4ece62 Mon Sep 17 00:00:00 2001 From: Arindam Mondal Date: Mon, 25 Feb 2019 18:08:57 +0900 Subject: Reduce method parameter by implementing builder Issue-ID: PORTAL-529 Change-Id: I1f5adc677d43c2fdc4e18f893e11b708608b0b36 Signed-off-by: arindamm --- .../core/dao/hibernate/ModelOperationsCommon.java | 24 ++--- .../portalsdk/core/service/ElementMapService.java | 10 +- .../portalsdk/core/util/NamedQueryBuilder.java | 106 +++++++++++++++++++++ 3 files changed, 120 insertions(+), 20 deletions(-) create mode 100644 ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/util/NamedQueryBuilder.java (limited to 'ecomp-sdk/epsdk-core/src/main/java/org') diff --git a/ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/dao/hibernate/ModelOperationsCommon.java b/ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/dao/hibernate/ModelOperationsCommon.java index 139128b4..596646f9 100644 --- a/ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/dao/hibernate/ModelOperationsCommon.java +++ b/ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/dao/hibernate/ModelOperationsCommon.java @@ -59,6 +59,7 @@ import org.onap.portalsdk.core.dao.support.FusionDao; import org.onap.portalsdk.core.domain.Lookup; import org.onap.portalsdk.core.domain.support.DomainVo; import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; +import org.onap.portalsdk.core.util.NamedQueryBuilder; import org.onap.portalsdk.core.util.SystemProperties; public abstract class ModelOperationsCommon extends FusionDao { @@ -343,22 +344,21 @@ public abstract class ModelOperationsCommon extends FusionDao { } @SuppressWarnings("rawtypes") - protected final List _executeNamedQueryWithOrderBy(Class entity, String queryName, String whereClause, Map params, - String _orderBy, boolean asc, Integer fromIndex, Integer toIndex) { + protected final List _executeNamedQueryWithOrderBy(NamedQueryBuilder namedQuery) { Session session = getSessionFactory().getCurrentSession(); - Query query = session.getNamedQuery(queryName); - bindQueryParameters(query, params); + Query query = session.getNamedQuery(namedQuery.getQueryName()); + bindQueryParameters(query, namedQuery.getParams()); String queryStr = query.getQueryString(); - queryStr = String.format(queryStr, _orderBy, asc ? "ASC" : "DESC"); + queryStr = String.format(queryStr, namedQuery.get_orderBy(), namedQuery.isAsc() ? "ASC" : "DESC"); StringBuilder modifiedSql = new StringBuilder(" select * from (" + queryStr + " ) al "); - if (whereClause != null && whereClause.length() > 0) - modifiedSql.append("where " + whereClause); + if (namedQuery.getWhereClause() != null && namedQuery.getWhereClause().length() > 0) + modifiedSql.append("where " + namedQuery.getWhereClause()); SQLQuery sqlQuery = session.createSQLQuery(modifiedSql.toString()); - bindQueryParameters(sqlQuery, params); - sqlQuery.addEntity("reportSearch", entity); - if (fromIndex != null && toIndex != null) { - sqlQuery.setFirstResult(fromIndex.intValue()); - int pageSize = (toIndex.intValue() - fromIndex.intValue()) + 1; + bindQueryParameters(sqlQuery, namedQuery.getParams()); + sqlQuery.addEntity("reportSearch", namedQuery.getEntity()); + if (namedQuery.getFromIndex() != null && namedQuery.getToIndex() != null) { + sqlQuery.setFirstResult(namedQuery.getFromIndex().intValue()); + int pageSize = (namedQuery.getToIndex().intValue() - namedQuery.getFromIndex().intValue()) + 1; sqlQuery.setMaxResults(pageSize); } return sqlQuery.list(); diff --git a/ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/service/ElementMapService.java b/ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/service/ElementMapService.java index f8a547db..210e494d 100644 --- a/ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/service/ElementMapService.java +++ b/ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/service/ElementMapService.java @@ -49,11 +49,7 @@ import java.util.TreeSet; import org.apache.commons.io.FilenameUtils; import org.apache.commons.lang.StringUtils; -import org.onap.portalsdk.core.domain.support.Container; -import org.onap.portalsdk.core.domain.support.Domain; -import org.onap.portalsdk.core.domain.support.Element; -import org.onap.portalsdk.core.domain.support.ElementDetails; -import org.onap.portalsdk.core.domain.support.Layout; +import org.onap.portalsdk.core.domain.support.*; import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate; import org.onap.portalsdk.core.util.SystemProperties; import org.onap.portalsdk.core.util.YamlUtils; @@ -734,9 +730,7 @@ public class ElementMapService { String bgColor = elementDetails.get("background_color") == null ? "bgColor" : elementDetails.get("background_color"); - ElementDetails details = new ElementDetails(logical_group, display_longname, description, - primary_function, network_function, key_interfaces, location, vendor, - vendor_shortname, enclosingContainer); + ElementDetails details = new ElementDetails.ElementDetailsBuilder().setLogical_group(logical_group).setDisplay_longname(display_longname).setDescription(description).setPrimary_function(primary_function).setNetwork_function(network_function).setKey_interfaces(key_interfaces).setLocation(location).setVendor(vendor).setVendor_shortname(vendor_shortname).setEnclosingContainer(enclosingContainer).createElementDetails(); return new Element(name, display_shortname, imgPath, bgColor, borderType, details); } diff --git a/ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/util/NamedQueryBuilder.java b/ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/util/NamedQueryBuilder.java new file mode 100644 index 00000000..57623ef5 --- /dev/null +++ b/ecomp-sdk/epsdk-core/src/main/java/org/onap/portalsdk/core/util/NamedQueryBuilder.java @@ -0,0 +1,106 @@ +/*- + * ============LICENSE_START======================================================= + * Copyright (C) 2019 Samsung Electronics Co., Ltd. All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.portalsdk.core.util; + +import java.util.Map; + +public class NamedQueryBuilder { + public Class getEntity() { + return entity; + } + + public NamedQueryBuilder setEntity(Class entity) { + this.entity = entity; + return this; + } + + public String getQueryName() { + return queryName; + } + + public NamedQueryBuilder setQueryName(String queryName) { + this.queryName = queryName; + return this; + } + + public String getWhereClause() { + return whereClause; + } + + public NamedQueryBuilder setWhereClause(String whereClause) { + this.whereClause = whereClause; + return this; + } + + public Map getParams() { + return params; + } + + public NamedQueryBuilder setParams(Map params) { + this.params = params; + return this; + } + + public String get_orderBy() { + return _orderBy; + } + + public NamedQueryBuilder set_orderBy(String _orderBy) { + this._orderBy = _orderBy; + return this; + } + + public boolean isAsc() { + return asc; + } + + public NamedQueryBuilder setAsc(boolean asc) { + this.asc = asc; + return this; + } + + public Integer getFromIndex() { + return fromIndex; + } + + public NamedQueryBuilder setFromIndex(Integer fromIndex) { + this.fromIndex = fromIndex; + return this; + } + + public Integer getToIndex() { + return toIndex; + } + + public NamedQueryBuilder setToIndex(Integer toIndex) { + this.toIndex = toIndex; + return this; + } + + private Class entity; + private String queryName; + private String whereClause; + private Map params; + private String _orderBy; + boolean asc; + private Integer fromIndex; + private Integer toIndex; +} -- cgit 1.2.3-korg