From 38b4e81eab76202bcafdec7e0b6374679090ce7e Mon Sep 17 00:00:00 2001 From: sheetalm Date: Mon, 19 Feb 2018 11:05:17 +0530 Subject: Onboarding foundation changes - UniqueValueUtil Refactored UniqueValueUtil Change-Id: I7523ad501de9a49c5fbbb59f33c07a40c55eda2f Issue-ID: SDC-1047 Signed-off-by: sheetalm --- .../org/openecomp/core/util/UniqueValueUtil.java | 38 +++++++++++----------- .../facade/impl/VendorLicenseFacadeImpl.java | 19 ++++++----- .../impl/VersionableEntityDaoCassandraImpl.java | 11 +++++-- .../dao/impl/VersionableEntityDaoFactoryImpl.java | 4 ++- 4 files changed, 42 insertions(+), 30 deletions(-) (limited to 'openecomp-be/lib') diff --git a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-api/src/main/java/org/openecomp/core/util/UniqueValueUtil.java b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-api/src/main/java/org/openecomp/core/util/UniqueValueUtil.java index 4341899d8a..36b76a0772 100644 --- a/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-api/src/main/java/org/openecomp/core/util/UniqueValueUtil.java +++ b/openecomp-be/lib/openecomp-core-lib/openecomp-nosqldb-lib/openecomp-nosqldb-api/src/main/java/org/openecomp/core/util/UniqueValueUtil.java @@ -1,27 +1,22 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ +/* + * Copyright © 2016-2018 European Support Limited + * * 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 - * + * + * 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. - * ============LICENSE_END========================================================= */ package org.openecomp.core.util; import org.openecomp.core.dao.UniqueValueDao; -import org.openecomp.core.dao.UniqueValueDaoFactory; import org.openecomp.core.dao.types.UniqueValueEntity; import org.openecomp.core.utilities.CommonMethods; import org.openecomp.sdc.common.errors.CoreException; @@ -34,15 +29,20 @@ public class UniqueValueUtil { private static final String UNIQUE_VALUE_VIOLATION = "UNIQUE_VALUE_VIOLATION"; private static final String UNIQUE_VALUE_VIOLATION_MSG = "%s with the value '%s' already exists."; - private static final UniqueValueDao uniqueValueDao = - UniqueValueDaoFactory.getInstance().createInterface(); + private final UniqueValueDao uniqueValueDao; + + + public UniqueValueUtil(UniqueValueDao uniqueValueDao) { + this.uniqueValueDao = uniqueValueDao; + } + /** * Create unique value. * * @param type the type * @param uniqueCombination the unique combination */ - public static void createUniqueValue(String type, String... uniqueCombination) { + public void createUniqueValue(String type, String... uniqueCombination) { Optional value = formatValue(uniqueCombination); if (!value.isPresent()) { return; @@ -57,7 +57,7 @@ public class UniqueValueUtil { * @param type the type * @param uniqueCombination the unique combination */ - public static void deleteUniqueValue(String type, String... uniqueCombination) { + public void deleteUniqueValue(String type, String... uniqueCombination) { Optional value = formatValue(uniqueCombination); if (!value.isPresent()) { return; @@ -73,8 +73,8 @@ public class UniqueValueUtil { * @param newValue the new value * @param uniqueContext the unique context */ - public static void updateUniqueValue(String type, String oldValue, String newValue, - String... uniqueContext) { + public void updateUniqueValue(String type, String oldValue, String newValue, + String... uniqueContext) { if (newValue == null || oldValue == null || !newValue.equalsIgnoreCase(oldValue)) { createUniqueValue(type, CommonMethods.concat(uniqueContext, new String[]{newValue})); deleteUniqueValue(type, CommonMethods.concat(uniqueContext, new String[]{oldValue})); @@ -87,7 +87,7 @@ public class UniqueValueUtil { * @param type the type * @param uniqueCombination the unique combination */ - public static void validateUniqueValue(String type, String... uniqueCombination) { + public void validateUniqueValue(String type, String... uniqueCombination) { Optional value = formatValue(uniqueCombination); if (!value.isPresent()) { return; @@ -95,7 +95,7 @@ public class UniqueValueUtil { validateUniqueValue(type, value.get(), uniqueCombination); } - private static void validateUniqueValue(String type, String value, String... uniqueCombination) { + private void validateUniqueValue(String type, String value, String... uniqueCombination) { if (uniqueValueDao.get(new UniqueValueEntity(type, value)) != null) { throw new CoreException(new ErrorCode.ErrorCodeBuilder() .withCategory(ErrorCategory.APPLICATION) diff --git a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/facade/impl/VendorLicenseFacadeImpl.java b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/facade/impl/VendorLicenseFacadeImpl.java index b02f6a527e..633de716b7 100644 --- a/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/facade/impl/VendorLicenseFacadeImpl.java +++ b/openecomp-be/lib/openecomp-sdc-vendor-license-lib/openecomp-sdc-vendor-license-core/src/main/java/org/openecomp/sdc/vendorlicense/facade/impl/VendorLicenseFacadeImpl.java @@ -21,6 +21,7 @@ package org.openecomp.sdc.vendorlicense.facade.impl; import org.apache.commons.collections4.CollectionUtils; +import org.openecomp.core.dao.UniqueValueDaoFactory; import org.openecomp.core.util.UniqueValueUtil; import org.openecomp.core.utilities.CommonMethods; import org.openecomp.sdc.common.errors.CoreException; @@ -75,6 +76,8 @@ public class VendorLicenseFacadeImpl implements VendorLicenseFacade { private static final LicenseKeyGroupDao licenseKeyGroupDao = LicenseKeyGroupDaoFactory.getInstance().createInterface(); private static final LimitDao limitDao = LimitDaoFactory.getInstance().createInterface(); + private static final UniqueValueUtil uniqueValueUtil = new UniqueValueUtil + (UniqueValueDaoFactory.getInstance().createInterface()); /** * Instantiates a new Vendor license facade. */ @@ -139,7 +142,7 @@ public class VendorLicenseFacadeImpl implements VendorLicenseFacade { @Override public EntitlementPoolEntity createEntitlementPool(EntitlementPoolEntity entitlementPool) { entitlementPool.setVersionUuId(CommonMethods.nextUuId()); - UniqueValueUtil.createUniqueValue(VendorLicenseConstants.UniqueValues.ENTITLEMENT_POOL_NAME, + uniqueValueUtil.createUniqueValue(VendorLicenseConstants.UniqueValues.ENTITLEMENT_POOL_NAME, entitlementPool.getVendorLicenseModelId(), entitlementPool.getVersion().getId(), entitlementPool.getName()); entitlementPoolDao.create(entitlementPool); @@ -154,7 +157,7 @@ public class VendorLicenseFacadeImpl implements VendorLicenseFacade { if (retrieved.equals(entitlementPool)) { return; } - UniqueValueUtil.updateUniqueValue(VendorLicenseConstants.UniqueValues.ENTITLEMENT_POOL_NAME, + uniqueValueUtil.updateUniqueValue(VendorLicenseConstants.UniqueValues.ENTITLEMENT_POOL_NAME, retrieved.getName(), entitlementPool.getName(), entitlementPool.getVendorLicenseModelId(), entitlementPool.getVersion().getId()); entitlementPool.setVersionUuId(CommonMethods.nextUuId()); @@ -180,7 +183,7 @@ public class VendorLicenseFacadeImpl implements VendorLicenseFacade { licenseKeyGroup.setVersionUuId((CommonMethods.nextUuId())); VersioningUtil .validateEntityExistence(retrieved, licenseKeyGroup, VendorLicenseModelEntity.ENTITY_TYPE); - UniqueValueUtil.updateUniqueValue(VendorLicenseConstants.UniqueValues.LICENSE_KEY_GROUP_NAME, + uniqueValueUtil.updateUniqueValue(VendorLicenseConstants.UniqueValues.LICENSE_KEY_GROUP_NAME, retrieved.getName(), licenseKeyGroup.getName(), licenseKeyGroup.getVendorLicenseModelId(), licenseKeyGroup.getVersion().getId()); licenseKeyGroupDao.update(licenseKeyGroup); @@ -189,7 +192,7 @@ public class VendorLicenseFacadeImpl implements VendorLicenseFacade { @Override public LicenseKeyGroupEntity createLicenseKeyGroup(LicenseKeyGroupEntity licenseKeyGroup) { licenseKeyGroup.setVersionUuId(CommonMethods.nextUuId()); - UniqueValueUtil.createUniqueValue(VendorLicenseConstants.UniqueValues.LICENSE_KEY_GROUP_NAME, + uniqueValueUtil.createUniqueValue(VendorLicenseConstants.UniqueValues.LICENSE_KEY_GROUP_NAME, licenseKeyGroup.getVendorLicenseModelId(), licenseKeyGroup.getVersion().getId(), licenseKeyGroup.getName()); licenseKeyGroupDao.create(licenseKeyGroup); @@ -214,12 +217,12 @@ public class VendorLicenseFacadeImpl implements VendorLicenseFacade { null), featureGroupDao, VendorLicenseModelEntity.ENTITY_TYPE); - UniqueValueUtil.validateUniqueValue(VendorLicenseConstants.UniqueValues.LICENSE_AGREEMENT_NAME, + uniqueValueUtil.validateUniqueValue(VendorLicenseConstants.UniqueValues.LICENSE_AGREEMENT_NAME, licenseAgreement.getVendorLicenseModelId(), licenseAgreement.getVersion().getId(), licenseAgreement.getName()); licenseAgreementDao.create(licenseAgreement); - UniqueValueUtil.createUniqueValue(VendorLicenseConstants.UniqueValues.LICENSE_AGREEMENT_NAME, + uniqueValueUtil.createUniqueValue(VendorLicenseConstants.UniqueValues.LICENSE_AGREEMENT_NAME, licenseAgreement.getVendorLicenseModelId(), licenseAgreement.getVersion().getId(), licenseAgreement.getName()); if (licenseAgreement.getFeatureGroupIds() != null) { @@ -243,12 +246,12 @@ public class VendorLicenseFacadeImpl implements VendorLicenseFacade { new EntitlementPoolEntity(featureGroup.getVendorLicenseModelId(), featureGroup.getVersion(), null), entitlementPoolDao, VendorLicenseModelEntity.ENTITY_TYPE); - UniqueValueUtil.validateUniqueValue(VendorLicenseConstants.UniqueValues.FEATURE_GROUP_NAME, + uniqueValueUtil.validateUniqueValue(VendorLicenseConstants.UniqueValues.FEATURE_GROUP_NAME, featureGroup.getVendorLicenseModelId(), featureGroup.getVersion().getId(), featureGroup.getName()); featureGroupDao.create(featureGroup); - UniqueValueUtil.createUniqueValue(VendorLicenseConstants.UniqueValues.FEATURE_GROUP_NAME, + uniqueValueUtil.createUniqueValue(VendorLicenseConstants.UniqueValues.FEATURE_GROUP_NAME, featureGroup.getVendorLicenseModelId(), featureGroup.getVersion().getId(), featureGroup.getName()); diff --git a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/main/java/org/openecomp/sdc/versioning/dao/impl/VersionableEntityDaoCassandraImpl.java b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/main/java/org/openecomp/sdc/versioning/dao/impl/VersionableEntityDaoCassandraImpl.java index 0845beaa2f..0a14c7ae19 100644 --- a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/main/java/org/openecomp/sdc/versioning/dao/impl/VersionableEntityDaoCassandraImpl.java +++ b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/main/java/org/openecomp/sdc/versioning/dao/impl/VersionableEntityDaoCassandraImpl.java @@ -24,6 +24,7 @@ import com.datastax.driver.core.ColumnDefinitions; import com.datastax.driver.core.ResultSet; import com.datastax.driver.core.Row; import com.datastax.driver.mapping.UDTMapper; +import org.openecomp.core.dao.UniqueValueDao; import org.openecomp.core.nosqldb.api.NoSqlDb; import org.openecomp.core.nosqldb.factory.NoSqlDbFactory; import org.openecomp.core.util.UniqueValueUtil; @@ -44,12 +45,18 @@ import java.util.stream.Collectors; class VersionableEntityDaoCassandraImpl implements VersionableEntityDao { + private final UniqueValueUtil uniqueValueUtil; private static final NoSqlDb noSqlDb = NoSqlDbFactory.getInstance().createInterface(); private static Logger Logger = (Logger) LoggerFactory.getLogger(VersionableEntityDaoCassandraImpl.class); private static UDTMapper versionMapper = noSqlDb.getMappingManager().udtMapper(Version.class); + public VersionableEntityDaoCassandraImpl( + UniqueValueDao uniqueValueDao) { + this.uniqueValueUtil = new UniqueValueUtil(uniqueValueDao); + } + private static String commaSeparatedQuestionMarks(int size) { StringBuilder sb = new StringBuilder(size * 2 - 1); for (int i = 0; i < size; i++) { @@ -128,7 +135,7 @@ class VersionableEntityDaoCassandraImpl implements VersionableEntityDao { for (UniqueValueMetadata uniqueMetadata : metadata) { List uniqueValueCombination = uniqueMetadata.getUniqueConstraintIdentifiers().stream() .map(colName -> (String) columnNameToValue.get(colName)).collect(Collectors.toList()); - UniqueValueUtil.createUniqueValue(uniqueMetadata.getType(), + uniqueValueUtil.createUniqueValue(uniqueMetadata.getType(), uniqueValueCombination.toArray(new String[uniqueValueCombination.size()])); } } @@ -138,7 +145,7 @@ class VersionableEntityDaoCassandraImpl implements VersionableEntityDao { for (UniqueValueMetadata uniqueMetadata : metadata) { List uniqueValueCombination = uniqueMetadata.getUniqueConstraintIdentifiers().stream() .map(colName -> (String) columnNameToValue.get(colName)).collect(Collectors.toList()); - UniqueValueUtil.deleteUniqueValue(uniqueMetadata.getType(), + uniqueValueUtil.deleteUniqueValue(uniqueMetadata.getType(), uniqueValueCombination.toArray(new String[uniqueValueCombination.size()])); } } diff --git a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/main/java/org/openecomp/sdc/versioning/dao/impl/VersionableEntityDaoFactoryImpl.java b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/main/java/org/openecomp/sdc/versioning/dao/impl/VersionableEntityDaoFactoryImpl.java index 3ab6560c71..d9300a007b 100644 --- a/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/main/java/org/openecomp/sdc/versioning/dao/impl/VersionableEntityDaoFactoryImpl.java +++ b/openecomp-be/lib/openecomp-sdc-versioning-lib/openecomp-sdc-versioning-core/src/main/java/org/openecomp/sdc/versioning/dao/impl/VersionableEntityDaoFactoryImpl.java @@ -20,13 +20,15 @@ package org.openecomp.sdc.versioning.dao.impl; +import org.openecomp.core.dao.UniqueValueDaoFactory; import org.openecomp.core.zusammen.api.ZusammenAdaptorFactory; import org.openecomp.sdc.versioning.dao.VersionableEntityDao; import org.openecomp.sdc.versioning.dao.VersionableEntityDaoFactory; import org.openecomp.sdc.versioning.types.VersionableEntityStoreType; public class VersionableEntityDaoFactoryImpl extends VersionableEntityDaoFactory { - private static VersionableEntityDao CASSANDRA_INSTANCE = new VersionableEntityDaoCassandraImpl(); + private static VersionableEntityDao CASSANDRA_INSTANCE = new VersionableEntityDaoCassandraImpl( + UniqueValueDaoFactory.getInstance().createInterface()); private static VersionableEntityDao ZUSAMMEN_INSTANCE = new VersionableEntityDaoZusammenImpl(ZusammenAdaptorFactory.getInstance().createInterface()); -- cgit 1.2.3-korg