2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.openecomp.sdc.vendorlicense.impl;
23 import static org.openecomp.sdc.vendorlicense.VendorLicenseConstants.VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE;
25 import org.openecomp.core.util.UniqueValueUtil;
26 import org.openecomp.sdc.activityLog.ActivityLogManager;
27 import org.openecomp.sdc.activitylog.dao.type.ActivityLogEntity;
28 import org.openecomp.sdc.common.errors.CoreException;
29 import org.openecomp.sdc.common.errors.ErrorCode;
30 import org.openecomp.sdc.datatypes.error.ErrorLevel;
31 import org.openecomp.sdc.logging.api.Logger;
32 import org.openecomp.sdc.logging.api.LoggerFactory;
33 import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
34 import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage;
35 import org.openecomp.sdc.logging.types.LoggerConstants;
36 import org.openecomp.sdc.logging.types.LoggerErrorCode;
37 import org.openecomp.sdc.logging.types.LoggerErrorDescription;
38 import org.openecomp.sdc.logging.types.LoggerServiceName;
39 import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
40 import org.openecomp.sdc.vendorlicense.VendorLicenseConstants;
41 import org.openecomp.sdc.vendorlicense.VendorLicenseManager;
42 import org.openecomp.sdc.vendorlicense.dao.EntitlementPoolDao;
43 import org.openecomp.sdc.vendorlicense.dao.FeatureGroupDao;
44 import org.openecomp.sdc.vendorlicense.dao.LicenseAgreementDao;
45 import org.openecomp.sdc.vendorlicense.dao.LicenseKeyGroupDao;
46 import org.openecomp.sdc.vendorlicense.dao.LimitDao;
47 import org.openecomp.sdc.vendorlicense.dao.VendorLicenseModelDao;
48 import org.openecomp.sdc.vendorlicense.dao.types.EntitlementPoolEntity;
49 import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity;
50 import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupModel;
51 import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementEntity;
52 import org.openecomp.sdc.vendorlicense.dao.types.LicenseAgreementModel;
53 import org.openecomp.sdc.vendorlicense.dao.types.LicenseKeyGroupEntity;
54 import org.openecomp.sdc.vendorlicense.dao.types.LimitEntity;
55 import org.openecomp.sdc.vendorlicense.dao.types.LimitType;
56 import org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity;
57 import org.openecomp.sdc.vendorlicense.errors.InvalidDateErrorBuilder;
58 import org.openecomp.sdc.vendorlicense.errors.LimitErrorBuilder;
59 import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade;
60 import org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel;
61 import org.openecomp.sdc.versioning.VersioningManager;
62 import org.openecomp.sdc.versioning.VersioningUtil;
63 import org.openecomp.sdc.versioning.dao.types.Version;
64 import org.openecomp.sdc.versioning.dao.types.VersionStatus;
65 import org.openecomp.sdc.versioning.types.VersionInfo;
66 import org.openecomp.sdc.versioning.types.VersionableEntityAction;
67 import org.openecomp.sdcrests.activitylog.types.ActivityType;
69 import java.time.LocalDate;
70 import java.time.format.DateTimeFormatter;
71 import java.util.ArrayList;
72 import java.util.Collection;
73 import java.util.List;
75 import java.util.Optional;
78 public class VendorLicenseManagerImpl implements VendorLicenseManager {
79 private VersioningManager versioningManager;
80 private VendorLicenseFacade vendorLicenseFacade;
81 private VendorLicenseModelDao vendorLicenseModelDao;
82 private LicenseAgreementDao licenseAgreementDao;
83 private FeatureGroupDao featureGroupDao;
84 private EntitlementPoolDao entitlementPoolDao;
85 private LicenseKeyGroupDao licenseKeyGroupDao;
86 private LimitDao limitDao;
87 private ActivityLogManager activityLogManager;
89 private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
90 private static final Logger logger =
91 LoggerFactory.getLogger(VendorLicenseManagerImpl.class);
93 public VendorLicenseManagerImpl(VersioningManager versioningManager,
94 VendorLicenseFacade vendorLicenseFacade,
95 VendorLicenseModelDao vendorLicenseModelDao,
96 LicenseAgreementDao licenseAgreementDao,
97 FeatureGroupDao featureGroupDao,
98 EntitlementPoolDao entitlementPoolDao,
99 LicenseKeyGroupDao licenseKeyGroupDao,
100 ActivityLogManager activityLogManager,
102 this.versioningManager = versioningManager;
103 this.vendorLicenseFacade = vendorLicenseFacade;
104 this.vendorLicenseModelDao = vendorLicenseModelDao;
105 this.licenseAgreementDao = licenseAgreementDao;
106 this.featureGroupDao = featureGroupDao;
107 this.entitlementPoolDao = entitlementPoolDao;
108 this.licenseKeyGroupDao = licenseKeyGroupDao;
109 this.activityLogManager = activityLogManager;
110 this.limitDao = limitDao;
114 private static void sortVlmListByModificationTimeDescOrder(
115 List<VersionedVendorLicenseModel> vendorLicenseModels) {
116 vendorLicenseModels.sort((o1, o2) -> o2.getVendorLicenseModel().getWritetimeMicroSeconds()
117 .compareTo(o1.getVendorLicenseModel().getWritetimeMicroSeconds()));
121 public void checkout(String vendorLicenseModelId, String user) {
123 mdcDataDebugMessage.debugEntryMessage("VLM id", vendorLicenseModelId);
125 Version newVersion = versioningManager
126 .checkout(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE, vendorLicenseModelId, user);
128 ActivityLogEntity activityLogEntity = new ActivityLogEntity(vendorLicenseModelId, String.valueOf(newVersion.getMajor()+1),
129 ActivityType.CHECKOUT.toString(), user, true, "", "");
130 activityLogManager.addActionLog(activityLogEntity, user);
132 newVersion.setStatus(VersionStatus.Locked);
133 vendorLicenseFacade.updateVlmLastModificationTime(vendorLicenseModelId, newVersion);
135 mdcDataDebugMessage.debugExitMessage("VLM id", vendorLicenseModelId);
139 public void undoCheckout(String vendorLicenseModelId, String user) {
141 mdcDataDebugMessage.debugEntryMessage("VLM id", vendorLicenseModelId);
143 Version newVersion = versioningManager
144 .undoCheckout(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE, vendorLicenseModelId, user);
146 ActivityLogEntity activityLogEntity =
147 new ActivityLogEntity(vendorLicenseModelId, String.valueOf(newVersion.getMajor() + 1),
148 ActivityType.UNDO_CHECKOUT.toString(), user, true, "", "");
149 activityLogManager.addActionLog(activityLogEntity, user);
151 vendorLicenseFacade.updateVlmLastModificationTime(vendorLicenseModelId, newVersion);
153 mdcDataDebugMessage.debugExitMessage("VLM id", vendorLicenseModelId);
157 public void checkin(String vendorLicenseModelId, String user) {
159 mdcDataDebugMessage.debugEntryMessage("VLM id", vendorLicenseModelId);
161 Version newVersion = vendorLicenseFacade.checkin(vendorLicenseModelId, user);
163 ActivityLogEntity activityLogEntity = new ActivityLogEntity(vendorLicenseModelId,
164 String.valueOf(newVersion.getMajor()+1), ActivityType.CHECKIN.toString(), user, true, "", "");
165 activityLogManager.addActionLog(activityLogEntity, user);
167 mdcDataDebugMessage.debugExitMessage("VLM id", vendorLicenseModelId);
171 public void submit(String vendorLicenseModelId, String user) {
173 mdcDataDebugMessage.debugEntryMessage("VLM id", vendorLicenseModelId);
175 Version newVersion = vendorLicenseFacade.submit(vendorLicenseModelId, user);
177 ActivityLogEntity activityLogEntity = new ActivityLogEntity(vendorLicenseModelId, String.valueOf(newVersion.getMajor()),
178 ActivityType.SUBMIT.toString(), user, true, "", "");
179 activityLogManager.addActionLog(activityLogEntity, user);
181 mdcDataDebugMessage.debugExitMessage("VLM id", vendorLicenseModelId);
185 public Collection<VersionedVendorLicenseModel> listVendorLicenseModels(String versionFilter,
187 mdcDataDebugMessage.debugEntryMessage(null);
189 Map<String, VersionInfo> idToVersionsInfo = versioningManager
190 .listEntitiesVersionInfo(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE, user,
191 VersionableEntityAction.Read);
193 List<VersionedVendorLicenseModel> vendorLicenseModels = new ArrayList<>();
194 for (Map.Entry<String, VersionInfo> entry : idToVersionsInfo.entrySet()) {
195 VersionInfo versionInfo = entry.getValue();
196 if (versionFilter != null && versionFilter.equals(VersionStatus.Final.name())) {
197 if (versionInfo.getLatestFinalVersion() == null) {
200 versionInfo.setActiveVersion(versionInfo.getLatestFinalVersion());
201 versionInfo.setStatus(VersionStatus.Final);
202 versionInfo.setLockingUser(null);
205 Version version = versionInfo.getActiveVersion();
206 if (user.equals(versionInfo.getLockingUser())) {
207 version.setStatus(VersionStatus.Locked);
211 VendorLicenseModelEntity vlm =
212 vendorLicenseModelDao.get(new VendorLicenseModelEntity(entry.getKey(), version));
214 VersionedVendorLicenseModel versionedVlm = new VersionedVendorLicenseModel();
215 versionedVlm.setVendorLicenseModel(vlm);
216 versionedVlm.setVersionInfo(versionInfo);
217 vendorLicenseModels.add(versionedVlm);
219 }catch(RuntimeException rte){
220 logger.error("Error trying to retrieve vlm["+entry.getKey()+"] version["+version.toString
227 sortVlmListByModificationTimeDescOrder(vendorLicenseModels);
229 mdcDataDebugMessage.debugExitMessage(null);
230 return vendorLicenseModels;
234 public VendorLicenseModelEntity createVendorLicenseModel(VendorLicenseModelEntity vendorLicenseModelEntity, String user) {
236 VendorLicenseModelEntity vendorLicenseModelCreated = vendorLicenseFacade.createVendorLicenseModel(vendorLicenseModelEntity, user);
238 ActivityLogEntity activityLogEntity = new ActivityLogEntity(vendorLicenseModelCreated.getId(),
239 String.valueOf(vendorLicenseModelCreated.getVersion().getMajor()+1),
240 ActivityType.CREATE_NEW.toString(), user, true, "", "");
241 activityLogManager.addActionLog(activityLogEntity, user);
243 return vendorLicenseModelCreated;
247 public void updateVendorLicenseModel(VendorLicenseModelEntity vendorLicenseModelEntity,
249 mdcDataDebugMessage.debugEntryMessage("VLM id", vendorLicenseModelEntity.getId());
251 Version version = resloveVersion(vendorLicenseModelEntity.getId(),null,
252 getVersionInfo(vendorLicenseModelEntity.getId(), VersionableEntityAction.Write, user),
254 vendorLicenseModelEntity.setVersion(version);
256 String existingVendorName = vendorLicenseModelDao.get(vendorLicenseModelEntity).getVendorName();
258 updateUniqueName(VendorLicenseConstants.UniqueValues.VENDOR_NAME, existingVendorName,
259 vendorLicenseModelEntity.getVendorName());
260 vendorLicenseModelDao.update(vendorLicenseModelEntity);
263 .updateVlmLastModificationTime(vendorLicenseModelEntity.getId(), version);
265 mdcDataDebugMessage.debugExitMessage("VLM id", vendorLicenseModelEntity.getId());
269 public VersionedVendorLicenseModel getVendorLicenseModel(String vlmId, Version version,
271 return vendorLicenseFacade.getVendorLicenseModel(vlmId, version, user);
275 public void deleteVendorLicenseModel(String vlmId, String user) {
276 MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
277 LoggerTragetServiceName.DELETE_ENTITY, ErrorLevel.ERROR.name(),
278 LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.UNSUPPORTED_OPERATION);
279 throw new UnsupportedOperationException(VendorLicenseConstants.UNSUPPORTED_OPERATION_ERROR);
283 public Collection<LicenseAgreementEntity> listLicenseAgreements(String vlmId, Version version,
285 mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId);
286 mdcDataDebugMessage.debugExitMessage("VLM id", vlmId);
287 LicenseAgreementEntity licenseAgreementEntity = createLicenseAgreementForList(vlmId, version,
289 // return licenseAgreementDao.list(new LicenseAgreementEntity(vlmId, VersioningUtil
290 // .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Read, user), user),
292 return licenseAgreementDao.list(licenseAgreementEntity);
296 public LicenseAgreementEntity createLicenseAgreement(LicenseAgreementEntity licenseAgreement,
299 .debugEntryMessage("VLM id", licenseAgreement.getVendorLicenseModelId());
301 .debugExitMessage("VLM id", licenseAgreement.getVendorLicenseModelId());
302 return vendorLicenseFacade.createLicenseAgreement(licenseAgreement, user);
306 public void updateLicenseAgreement(LicenseAgreementEntity licenseAgreement,
307 Set<String> addedFeatureGroupIds,
308 Set<String> removedFeatureGroupIds, String user) {
309 mdcDataDebugMessage.debugEntryMessage("VLM id, LA id", licenseAgreement
310 .getVendorLicenseModelId(), licenseAgreement.getId());
312 Version version = VersioningUtil.resolveVersion(licenseAgreement.getVersion(),
313 getVersionInfo(licenseAgreement.getVendorLicenseModelId(), VersionableEntityAction.Write,
315 licenseAgreement.setVersion(version);
316 LicenseAgreementEntity retrieved = licenseAgreementDao.get(licenseAgreement);
318 .validateEntityExistence(retrieved, licenseAgreement, VendorLicenseModelEntity.ENTITY_TYPE);
319 VersioningUtil.validateContainedEntitiesExistence(new FeatureGroupEntity().getEntityType(),
320 removedFeatureGroupIds, retrieved, retrieved.getFeatureGroupIds());
321 VersioningUtil.validateEntitiesExistence(addedFeatureGroupIds,
322 new FeatureGroupEntity(licenseAgreement.getVendorLicenseModelId(), version, null),
323 featureGroupDao, VendorLicenseModelEntity.ENTITY_TYPE);
325 updateUniqueName(VendorLicenseConstants.UniqueValues.LICENSE_AGREEMENT_NAME,
326 retrieved.getName(), licenseAgreement.getName(), licenseAgreement.getVendorLicenseModelId(),
327 licenseAgreement.getVersion().toString());
328 licenseAgreementDao.updateColumnsAndDeltaFeatureGroupIds(licenseAgreement, addedFeatureGroupIds,
329 removedFeatureGroupIds);
331 addFeatureGroupsToLicenseAgreementRef(addedFeatureGroupIds, licenseAgreement);
332 removeFeatureGroupsToLicenseAgreementRef(removedFeatureGroupIds, licenseAgreement);
335 .updateVlmLastModificationTime(licenseAgreement.getVendorLicenseModelId(), version);
337 mdcDataDebugMessage.debugExitMessage("VLM id, LA id", licenseAgreement
338 .getVendorLicenseModelId(), licenseAgreement.getId());
342 public LicenseAgreementModel getLicenseAgreementModel(String vlmId, Version version,
343 String licenseAgreementId, String user) {
345 mdcDataDebugMessage.debugEntryMessage("VLM id, LA id", vlmId, licenseAgreementId);
346 mdcDataDebugMessage.debugExitMessage("VLM id, LA id", vlmId, licenseAgreementId);
347 return vendorLicenseFacade.getLicenseAgreementModel(vlmId, version, licenseAgreementId, user);
351 public void deleteLicenseAgreement(String vlmId, Version version, String licenseAgreementId,
353 mdcDataDebugMessage.debugEntryMessage("VLM id, LA id", vlmId, licenseAgreementId);
355 version = VersioningUtil
356 .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Write, user), user);
357 LicenseAgreementEntity input =
358 new LicenseAgreementEntity(vlmId, version, licenseAgreementId);
359 LicenseAgreementEntity retrieved = licenseAgreementDao.get(input);
360 VersioningUtil.validateEntityExistence(retrieved, input, VendorLicenseModelEntity.ENTITY_TYPE);
362 removeFeatureGroupsToLicenseAgreementRef(retrieved.getFeatureGroupIds(), retrieved);
364 licenseAgreementDao.delete(retrieved);
366 deleteUniqueName(VendorLicenseConstants.UniqueValues.LICENSE_AGREEMENT_NAME,
367 retrieved.getVendorLicenseModelId(), retrieved.getVersion().toString(),
368 retrieved.getName());
371 .updateVlmLastModificationTime(input.getVendorLicenseModelId(), input.getVersion());
373 mdcDataDebugMessage.debugExitMessage("VLM id, LA id", vlmId, licenseAgreementId);
377 public Collection<FeatureGroupEntity> listFeatureGroups(String vlmId, Version version,
379 mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId);
380 mdcDataDebugMessage.debugExitMessage("VLM id", vlmId);
381 return vendorLicenseFacade.listFeatureGroups(vlmId, version, user);
385 public FeatureGroupEntity createFeatureGroup(FeatureGroupEntity featureGroup, String user) {
387 .debugEntryMessage("VLM id", featureGroup.getVendorLicenseModelId());
388 mdcDataDebugMessage.debugExitMessage("VLM id", featureGroup.getId());
389 return vendorLicenseFacade.createFeatureGroup(featureGroup, user);
393 public void updateFeatureGroup(FeatureGroupEntity featureGroup,
394 Set<String> addedLicenseKeyGroups,
395 Set<String> removedLicenseKeyGroups,
396 Set<String> addedEntitlementPools,
397 Set<String> removedEntitlementPools,
399 mdcDataDebugMessage.debugEntryMessage("VLM id, FG id", featureGroup
400 .getVendorLicenseModelId(), featureGroup.getId());
402 Version version = VersioningUtil.resolveVersion(featureGroup.getVersion(),
403 getVersionInfo(featureGroup.getVendorLicenseModelId(), VersionableEntityAction.Write, user),
405 featureGroup.setVersion(version);
407 FeatureGroupEntity retrieved = featureGroupDao.get(featureGroup);
409 .validateEntityExistence(retrieved, featureGroup, VendorLicenseModelEntity.ENTITY_TYPE);
411 VersioningUtil.validateContainedEntitiesExistence(new LicenseKeyGroupEntity().getEntityType(),
412 removedLicenseKeyGroups, retrieved, retrieved.getLicenseKeyGroupIds());
413 VersioningUtil.validateContainedEntitiesExistence(new EntitlementPoolEntity().getEntityType(),
414 removedEntitlementPools, retrieved, retrieved.getEntitlementPoolIds());
416 VersioningUtil.validateEntitiesExistence(addedLicenseKeyGroups,
417 new LicenseKeyGroupEntity(featureGroup.getVendorLicenseModelId(), version, null),
418 licenseKeyGroupDao, VendorLicenseModelEntity.ENTITY_TYPE);
419 VersioningUtil.validateEntitiesExistence(addedEntitlementPools,
420 new EntitlementPoolEntity(featureGroup.getVendorLicenseModelId(), version, null),
421 entitlementPoolDao, VendorLicenseModelEntity.ENTITY_TYPE);
423 updateUniqueName(VendorLicenseConstants.UniqueValues.FEATURE_GROUP_NAME,
424 retrieved.getName(), featureGroup.getName(), featureGroup.getVendorLicenseModelId(),
425 featureGroup.getVersion().toString());
427 addLicenseKeyGroupsToFeatureGroupsRef(addedLicenseKeyGroups, featureGroup);
428 removeLicenseKeyGroupsToFeatureGroupsRef(removedLicenseKeyGroups, featureGroup);
429 addEntitlementPoolsToFeatureGroupsRef(addedEntitlementPools, featureGroup);
430 removeEntitlementPoolsToFeatureGroupsRef(removedEntitlementPools, featureGroup);
432 featureGroupDao.updateFeatureGroup(featureGroup, addedEntitlementPools, removedEntitlementPools,
433 addedLicenseKeyGroups, removedLicenseKeyGroups);
436 .updateVlmLastModificationTime(featureGroup.getVendorLicenseModelId(), version);
438 mdcDataDebugMessage.debugExitMessage("VLM id, FG id", featureGroup
439 .getVendorLicenseModelId(), featureGroup.getId());
443 public FeatureGroupModel getFeatureGroupModel(FeatureGroupEntity featureGroup, String user) {
444 mdcDataDebugMessage.debugEntryMessage("VLM id, FG id",
445 featureGroup.getVendorLicenseModelId(), featureGroup.getId());
447 mdcDataDebugMessage.debugExitMessage("VLM id, FG id",
448 featureGroup.getVendorLicenseModelId(), featureGroup.getId());
449 return vendorLicenseFacade.getFeatureGroupModel(featureGroup, user);
453 public void deleteFeatureGroup(FeatureGroupEntity featureGroup, String user) {
454 mdcDataDebugMessage.debugEntryMessage("VLM id, FG id",
455 featureGroup.getVendorLicenseModelId(), featureGroup.getId());
457 Version version = VersioningUtil.resolveVersion(featureGroup.getVersion(),
458 getVersionInfo(featureGroup.getVendorLicenseModelId(), VersionableEntityAction.Write,
460 featureGroup.setVersion(version);
461 FeatureGroupEntity retrieved = featureGroupDao.get(featureGroup);
463 .validateEntityExistence(retrieved, featureGroup, VendorLicenseModelEntity.ENTITY_TYPE);
465 removeLicenseKeyGroupsToFeatureGroupsRef(retrieved.getLicenseKeyGroupIds(), featureGroup);
466 removeEntitlementPoolsToFeatureGroupsRef(retrieved.getEntitlementPoolIds(), featureGroup);
468 for (String licenceAgreementId : retrieved.getReferencingLicenseAgreements()) {
469 licenseAgreementDao.removeFeatureGroup(
470 new LicenseAgreementEntity(featureGroup.getVendorLicenseModelId(), version,
471 licenceAgreementId), featureGroup.getId());
474 featureGroupDao.delete(featureGroup);
476 deleteUniqueName(VendorLicenseConstants.UniqueValues.FEATURE_GROUP_NAME,
477 retrieved.getVendorLicenseModelId(), retrieved.getVersion().toString(),
478 retrieved.getName());
480 vendorLicenseFacade.updateVlmLastModificationTime(featureGroup.getVendorLicenseModelId(),
481 featureGroup.getVersion());
484 .debugExitMessage("VLM id, FG id",
485 featureGroup.getVendorLicenseModelId(), featureGroup.getId());
489 public Collection<EntitlementPoolEntity> listEntitlementPools(String vlmId, Version version,
491 mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId);
492 mdcDataDebugMessage.debugExitMessage("VLM id", vlmId);
493 return vendorLicenseFacade.listEntitlementPools(vlmId, version, user);
497 public EntitlementPoolEntity createEntitlementPool(EntitlementPoolEntity entitlementPool,
500 .debugEntryMessage("VLM id", entitlementPool.getVendorLicenseModelId());
502 .debugExitMessage("VLM id", entitlementPool.getVendorLicenseModelId());
504 entitlementPool.setStartDate(entitlementPool.getStartDate() != null ? (entitlementPool
505 .getStartDate().trim().length() != 0 ? entitlementPool.getStartDate()+"T00:00:00Z"
507 entitlementPool.setExpiryDate(entitlementPool.getExpiryDate() != null ? (entitlementPool
508 .getExpiryDate().trim().length() != 0 ? entitlementPool.getExpiryDate()+"T23:59:59Z"
511 validateCreateDate(entitlementPool.getStartDate(), entitlementPool.getExpiryDate(),
512 entitlementPool.getVendorLicenseModelId());
513 return vendorLicenseFacade.createEntitlementPool(entitlementPool, user);
516 private void validateCreateDate(String startDate, String expiryDate, String vendorLicenseModelId){
517 mdcDataDebugMessage.debugEntryMessage("Start date and end date", startDate
520 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy'T'HH:mm:ss'Z'");
522 if(startDate != null && expiryDate != null) {
523 if (LocalDate.parse(startDate, formatter).atStartOfDay().isBefore
524 (LocalDate.now().atStartOfDay()) || LocalDate.parse(expiryDate, formatter).atStartOfDay()
525 .isEqual(LocalDate.parse(startDate, formatter).atStartOfDay()) || LocalDate
526 .parse(expiryDate, formatter).isBefore(LocalDate.parse(startDate, formatter))) {
527 MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
528 LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
529 LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
530 throw new CoreException(
531 new InvalidDateErrorBuilder(vendorLicenseModelId)
536 if(startDate != null && expiryDate == null) {
537 if (LocalDate.parse(startDate, formatter).atStartOfDay().isBefore
538 (LocalDate.now().atStartOfDay())) {
539 MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
540 LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
541 LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
542 throw new CoreException(
543 new InvalidDateErrorBuilder(vendorLicenseModelId)
548 if(startDate == null && expiryDate != null) {
549 MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
550 LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
551 LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
552 throw new CoreException(
553 new InvalidDateErrorBuilder(vendorLicenseModelId)
558 mdcDataDebugMessage.debugExitMessage(null,null);
561 private void validateUpdateDate(String startDate, String expiryDate, String vendorLicenseModelId){
562 mdcDataDebugMessage.debugEntryMessage("Start date and end date", startDate
565 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy'T'HH:mm:ss'Z'");
567 if(startDate != null && expiryDate != null) {
568 if (LocalDate.parse(expiryDate, formatter).atStartOfDay()
569 .isEqual(LocalDate.parse(startDate, formatter).atStartOfDay()) ||
570 LocalDate.parse(expiryDate, formatter).isBefore(LocalDate.parse(startDate, formatter))) {
571 MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
572 LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
573 LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
574 throw new CoreException(
575 new InvalidDateErrorBuilder(vendorLicenseModelId)
580 if(startDate == null && expiryDate != null) {
581 MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
582 LoggerTragetServiceName.VALIDATE_DATE_RANGE,ErrorLevel.ERROR.name(),
583 LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.INVALID_VALUE);
584 throw new CoreException(
585 new InvalidDateErrorBuilder(vendorLicenseModelId)
590 mdcDataDebugMessage.debugExitMessage(null,null);
594 public void updateEntitlementPool(EntitlementPoolEntity entitlementPool, String user) {
595 mdcDataDebugMessage.debugEntryMessage("VLM id, EP id", entitlementPool
596 .getVendorLicenseModelId(), entitlementPool.getId());
598 entitlementPool.setStartDate(entitlementPool.getStartDate() != null ? (entitlementPool
599 .getStartDate().trim().length() != 0 ? entitlementPool.getStartDate()+"T00:00:00Z"
601 entitlementPool.setExpiryDate(entitlementPool.getExpiryDate() != null ? (entitlementPool
602 .getExpiryDate().trim().length() != 0 ? entitlementPool.getExpiryDate()+"T23:59:59Z"
605 validateUpdateDate(entitlementPool.getStartDate(), entitlementPool.getExpiryDate(),
606 entitlementPool.getVendorLicenseModelId());
607 Version version = VersioningUtil.resolveVersion(entitlementPool.getVersion(),
608 getVersionInfo(entitlementPool.getVendorLicenseModelId(), VersionableEntityAction.Write,
611 .updateVlmLastModificationTime(entitlementPool.getVendorLicenseModelId(), version);
612 vendorLicenseFacade.updateEntitlementPool(entitlementPool, user);
614 mdcDataDebugMessage.debugExitMessage("VLM id, EP id", entitlementPool
615 .getVendorLicenseModelId(), entitlementPool.getId());
619 public EntitlementPoolEntity getEntitlementPool(EntitlementPoolEntity entitlementPool,
621 mdcDataDebugMessage.debugEntryMessage("VLM id, EP id", entitlementPool
622 .getVendorLicenseModelId(), entitlementPool.getId());
624 entitlementPool.setVersion(VersioningUtil.resolveVersion(entitlementPool.getVersion(),
625 getVersionInfo(entitlementPool.getVendorLicenseModelId(), VersionableEntityAction.Read,
628 EntitlementPoolEntity retrieved = entitlementPoolDao.get(entitlementPool);
630 .validateEntityExistence(retrieved, entitlementPool, VendorLicenseModelEntity.ENTITY_TYPE);
632 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MM/dd/yyyy'T'HH:mm:ss'Z'");
633 DateTimeFormatter targetFormatter = DateTimeFormatter.ofPattern("MM/dd/yyyy");
634 if(retrieved.getStartDate() != null){
635 retrieved.setStartDate(LocalDate.parse(retrieved.getStartDate(),formatter).format
639 if(retrieved.getExpiryDate() != null){
640 retrieved.setExpiryDate(LocalDate.parse(retrieved.getExpiryDate(),formatter).format
644 mdcDataDebugMessage.debugExitMessage("VLM id, EP id", entitlementPool
645 .getVendorLicenseModelId(), entitlementPool.getId());
650 public void deleteEntitlementPool(EntitlementPoolEntity entitlementPool, String user) {
651 mdcDataDebugMessage.debugEntryMessage("VLM id, EP id", entitlementPool
652 .getVendorLicenseModelId(), entitlementPool.getId());
654 Version version = VersioningUtil.resolveVersion(entitlementPool.getVersion(),
655 getVersionInfo(entitlementPool.getVendorLicenseModelId(), VersionableEntityAction.Write,
657 entitlementPool.setVersion(version);
659 EntitlementPoolEntity retrieved = entitlementPoolDao.get(entitlementPool);
661 .validateEntityExistence(retrieved, entitlementPool, VendorLicenseModelEntity.ENTITY_TYPE);
663 for (String referencingFeatureGroupId : retrieved.getReferencingFeatureGroups()) {
664 featureGroupDao.removeEntitlementPool(
665 new FeatureGroupEntity(entitlementPool.getVendorLicenseModelId(), version,
666 referencingFeatureGroupId), entitlementPool.getId());
669 deleteChildLimits(entitlementPool.getVendorLicenseModelId(), entitlementPool.getVersion(), entitlementPool.getId(), user);
671 entitlementPoolDao.delete(entitlementPool);
673 deleteUniqueName(VendorLicenseConstants.UniqueValues.ENTITLEMENT_POOL_NAME,
674 retrieved.getVendorLicenseModelId(), retrieved.getVersion().toString(),
675 retrieved.getName());
677 vendorLicenseFacade.updateVlmLastModificationTime(entitlementPool.getVendorLicenseModelId(),
678 entitlementPool.getVersion());
680 mdcDataDebugMessage.debugExitMessage("VLM id, EP id", entitlementPool
681 .getVendorLicenseModelId(), entitlementPool.getId());
684 protected void deleteChildLimits(String vlmId, Version version, String epLkgId, String user) {
685 Optional<Collection<LimitEntity>> limitEntities = Optional.ofNullable(
686 listLimits(vlmId, version, epLkgId, user));
687 limitEntities.ifPresent(entities->
688 entities.forEach(entity->
689 deleteLimit(entity, user)));
693 public Collection<LicenseKeyGroupEntity> listLicenseKeyGroups(String vlmId, Version version,
695 mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId);
696 mdcDataDebugMessage.debugExitMessage("VLM id", vlmId);
697 return vendorLicenseFacade.listLicenseKeyGroups(vlmId, version, user);
701 public LicenseKeyGroupEntity createLicenseKeyGroup(LicenseKeyGroupEntity licenseKeyGroup,
704 .debugEntryMessage("VLM id", licenseKeyGroup.getVendorLicenseModelId());
706 mdcDataDebugMessage.debugExitMessage("VLM id", licenseKeyGroup
707 .getVendorLicenseModelId());
709 licenseKeyGroup.setStartDate(licenseKeyGroup.getStartDate() != null ? (licenseKeyGroup
710 .getStartDate().trim().length() != 0 ? licenseKeyGroup.getStartDate()+"T00:00:00Z"
712 licenseKeyGroup.setExpiryDate(licenseKeyGroup.getExpiryDate() != null ? (licenseKeyGroup
713 .getExpiryDate().trim().length() != 0 ? licenseKeyGroup.getExpiryDate()+"T23:59:59Z"
716 validateCreateDate(licenseKeyGroup.getStartDate(), licenseKeyGroup.getExpiryDate(),
717 licenseKeyGroup.getVendorLicenseModelId());
718 return vendorLicenseFacade.createLicenseKeyGroup(licenseKeyGroup, user);
722 public void updateLicenseKeyGroup(LicenseKeyGroupEntity licenseKeyGroup, String user) {
723 mdcDataDebugMessage.debugEntryMessage("VLM id, LKG id", licenseKeyGroup
724 .getVendorLicenseModelId(), licenseKeyGroup.getId());
726 licenseKeyGroup.setStartDate(licenseKeyGroup.getStartDate() != null ? (licenseKeyGroup
727 .getStartDate().trim().length() != 0 ? licenseKeyGroup.getStartDate()+"T00:00:00Z"
729 licenseKeyGroup.setExpiryDate(licenseKeyGroup.getExpiryDate() != null ? (licenseKeyGroup
730 .getExpiryDate().trim().length() != 0 ? licenseKeyGroup.getExpiryDate()+"T23:59:59Z"
733 validateUpdateDate(licenseKeyGroup.getStartDate(), licenseKeyGroup.getExpiryDate(),
734 licenseKeyGroup.getVendorLicenseModelId());
736 Version version = VersioningUtil.resolveVersion(licenseKeyGroup.getVersion(),
737 getVersionInfo(licenseKeyGroup.getVendorLicenseModelId(), VersionableEntityAction.Write,
740 .updateVlmLastModificationTime(licenseKeyGroup.getVendorLicenseModelId(), version);
742 vendorLicenseFacade.updateLicenseKeyGroup(licenseKeyGroup, user);
744 mdcDataDebugMessage.debugExitMessage("VLM id, LKG id", licenseKeyGroup
745 .getVendorLicenseModelId(), licenseKeyGroup.getId());
749 public LicenseKeyGroupEntity getLicenseKeyGroup(LicenseKeyGroupEntity licenseKeyGroup,
751 mdcDataDebugMessage.debugEntryMessage("VLM id, LKG id", licenseKeyGroup
752 .getVendorLicenseModelId(), licenseKeyGroup.getId());
754 licenseKeyGroup.setVersion(VersioningUtil.resolveVersion(licenseKeyGroup.getVersion(),
755 getVersionInfo(licenseKeyGroup.getVendorLicenseModelId(), VersionableEntityAction.Read,
758 LicenseKeyGroupEntity retrieved = licenseKeyGroupDao.get(licenseKeyGroup);
760 .validateEntityExistence(retrieved, licenseKeyGroup, VendorLicenseModelEntity.ENTITY_TYPE);
762 mdcDataDebugMessage.debugExitMessage("VLM id, LKG id", licenseKeyGroup
763 .getVendorLicenseModelId(), licenseKeyGroup.getId());
768 public void deleteLicenseKeyGroup(LicenseKeyGroupEntity licenseKeyGroup, String user) {
769 mdcDataDebugMessage.debugEntryMessage("VLM id, LKG id", licenseKeyGroup
770 .getVendorLicenseModelId(), licenseKeyGroup.getId());
772 Version version = VersioningUtil.resolveVersion(licenseKeyGroup.getVersion(),
773 getVersionInfo(licenseKeyGroup.getVendorLicenseModelId(), VersionableEntityAction.Write,
775 licenseKeyGroup.setVersion(version);
777 LicenseKeyGroupEntity retrieved = licenseKeyGroupDao.get(licenseKeyGroup);
779 .validateEntityExistence(retrieved, licenseKeyGroup, VendorLicenseModelEntity.ENTITY_TYPE);
781 for (String referencingFeatureGroupId : retrieved.getReferencingFeatureGroups()) {
782 featureGroupDao.removeLicenseKeyGroup(
783 new FeatureGroupEntity(licenseKeyGroup.getVendorLicenseModelId(), version,
784 referencingFeatureGroupId), licenseKeyGroup.getId());
787 deleteChildLimits(licenseKeyGroup.getVendorLicenseModelId(), licenseKeyGroup.getVersion(), licenseKeyGroup.getId(), user);
789 licenseKeyGroupDao.delete(licenseKeyGroup);
791 deleteUniqueName(VendorLicenseConstants.UniqueValues.LICENSE_KEY_GROUP_NAME,
792 retrieved.getVendorLicenseModelId(), retrieved.getVersion().toString(),
793 retrieved.getName());
795 vendorLicenseFacade.updateVlmLastModificationTime(licenseKeyGroup.getVendorLicenseModelId(),
796 licenseKeyGroup.getVersion());
798 mdcDataDebugMessage.debugExitMessage("VLM id, LKG id", licenseKeyGroup
799 .getVendorLicenseModelId(), licenseKeyGroup.getId());
803 public LimitEntity createLimit(LimitEntity limit, String user) {
805 .debugEntryMessage("VLM id", limit.getVendorLicenseModelId(), "EP/LKGId", limit
808 .debugExitMessage("VLM id", limit.getVendorLicenseModelId(), "EP/LKGId", limit
810 validateLimit(limit, user);
811 LimitEntity createdLimit = vendorLicenseFacade.createLimit(limit, user);
812 updateParentForLimit(limit,user);
816 private void validateLimit(LimitEntity limit, String user) {
817 Version version = VersioningUtil.resolveVersion(limit.getVersion(),
818 getVersionInfo(limit.getVendorLicenseModelId(), VersionableEntityAction.Write,
820 Collection<LimitEntity> limitList = listLimits(limit.getVendorLicenseModelId(),version
821 ,limit.getEpLkgId(), user);
823 if (!isLimitNameUnique(limitList,limit.getName(), limit.getType(), limit.getId())) {
824 final ErrorCode duplicateLimitNameErrorBuilder =
825 LimitErrorBuilder.getDuplicateNameErrorbuilder(limit.getName(), limit.getType().name());
826 MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
827 LoggerServiceName.Create_LIMIT.toString(), ErrorLevel.ERROR.name(),
828 LoggerErrorCode.DATA_ERROR.getErrorCode(),
829 duplicateLimitNameErrorBuilder.message());
830 throw new CoreException(duplicateLimitNameErrorBuilder);
834 private boolean isLimitNameUnique(Collection<LimitEntity> limitList, String name, LimitType
836 for (LimitEntity limit : limitList) {
837 if(limit.getName().equalsIgnoreCase(name) &&
838 limit.getType().name().equalsIgnoreCase(type.name())) {
839 if(id != null && limit.getId().equals(id)){
849 public Collection<LimitEntity> listLimits(String vlmId, Version version, String epLkgId,
851 mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId, "EP/LKGId", epLkgId);
852 mdcDataDebugMessage.debugExitMessage("VLM id", vlmId, "EP/LKGId", epLkgId);
853 return vendorLicenseFacade.listLimits(vlmId, version, epLkgId, user);
857 public void deleteLimit(LimitEntity limitEntity, String user) {
858 mdcDataDebugMessage.debugEntryMessage("VLM id, EP id, Limit Id", limitEntity
859 .getVendorLicenseModelId(), limitEntity.getEpLkgId(), limitEntity.getId());
861 Version version = VersioningUtil.resolveVersion(limitEntity.getVersion(),
862 getVersionInfo(limitEntity.getVendorLicenseModelId(), VersionableEntityAction.Write,
864 limitEntity.setVersion(version);
866 if ( !isLimitPresent(limitEntity)) {
868 .validateEntityExistence(null, limitEntity, VendorLicenseModelEntity.ENTITY_TYPE);
870 LimitEntity retrieved = limitDao.get(limitEntity);
872 .validateEntityExistence(retrieved, limitEntity, VendorLicenseModelEntity.ENTITY_TYPE);
874 limitDao.delete(limitEntity);
876 vendorLicenseFacade.updateVlmLastModificationTime(limitEntity.getVendorLicenseModelId(),
877 limitEntity.getVersion());
879 updateParentForLimit(limitEntity,user);
881 mdcDataDebugMessage.debugExitMessage("VLM id, EP id, Limit Id", limitEntity
882 .getVendorLicenseModelId(), limitEntity.getEpLkgId(), limitEntity.getId());
886 public void updateLimit(LimitEntity limit, String user) {
888 .debugEntryMessage("VLM id", limit.getVendorLicenseModelId(), "EP/LKGId", limit
890 getLimit(limit,user);
891 validateLimit(limit, user);
892 vendorLicenseFacade.updateLimit(limit, user);
893 updateParentForLimit(limit,user);
895 .debugExitMessage("VLM id", limit.getVendorLicenseModelId(), "EP/LKGId", limit
899 private boolean isLimitPresent(LimitEntity limit) {
900 return limitDao.isLimitPresent(limit);
904 public LimitEntity getLimit(LimitEntity limitEntity,
906 mdcDataDebugMessage.debugEntryMessage("VLM id", limitEntity.getVendorLicenseModelId(),
907 "EP/LKGId", limitEntity.getEpLkgId());
909 limitEntity.setVersion(VersioningUtil.resolveVersion(limitEntity.getVersion(),
910 getVersionInfo(limitEntity.getVendorLicenseModelId(), VersionableEntityAction.Read,
912 if(!isLimitPresent(limitEntity)){
914 .validateEntityExistence(null, limitEntity, VendorLicenseModelEntity.ENTITY_TYPE);
916 LimitEntity retrieved = limitDao.get(limitEntity);
918 .validateEntityExistence(retrieved, limitEntity, VendorLicenseModelEntity.ENTITY_TYPE);
920 mdcDataDebugMessage.debugExitMessage("VLM id", limitEntity.getVendorLicenseModelId(),
921 "EP/LKGId", limitEntity.getEpLkgId());
926 * update Parent of limit (EP/LKG) versionuuid when limit is modified so that limit updates are
927 * captured in VLM XML
931 private void updateParentForLimit(LimitEntity limit, String user) {
932 mdcDataDebugMessage.debugEntryMessage("VLM id", limit.getVendorLicenseModelId(),
933 "EP/LKGId", limit.getEpLkgId(), "Limit Parent ", limit.getParent());
934 if ("EntitlementPool".equals(limit.getParent()) ) {
935 EntitlementPoolEntity entitlementPoolEntity =
936 entitlementPoolDao.get(new EntitlementPoolEntity(limit.getVendorLicenseModelId(),
937 limit.getVersion(), limit.getEpLkgId()));
938 vendorLicenseFacade.updateEntitlementPool(entitlementPoolEntity, user);
941 if ("LicenseKeyGroup".equals(limit.getParent())) {
942 LicenseKeyGroupEntity licenseKeyGroupEntity = licenseKeyGroupDao.get(
943 new LicenseKeyGroupEntity(limit.getVendorLicenseModelId(), limit.getVersion(),
944 limit.getEpLkgId()));
945 vendorLicenseFacade.updateLicenseKeyGroup(licenseKeyGroupEntity, user);
948 mdcDataDebugMessage.debugEntryMessage("VLM id", limit.getVendorLicenseModelId(),
949 "EP/LKGId", limit.getEpLkgId(), "Limit Parent ", limit.getParent());
952 protected void addFeatureGroupsToLicenseAgreementRef(Set<String> featureGroupIds,
953 LicenseAgreementEntity licenseAgreement) {
954 if (featureGroupIds != null) {
955 for (String featureGroupId : featureGroupIds) {
956 featureGroupDao.addReferencingLicenseAgreement(
957 new FeatureGroupEntity(licenseAgreement.getVendorLicenseModelId(),
958 licenseAgreement.getVersion(), featureGroupId), licenseAgreement.getId());
963 protected void removeFeatureGroupsToLicenseAgreementRef(Set<String> featureGroupIds,
964 LicenseAgreementEntity licenseAgreement) {
965 if (featureGroupIds != null) {
966 for (String featureGroupId : featureGroupIds) {
967 featureGroupDao.removeReferencingLicenseAgreement(
968 new FeatureGroupEntity(licenseAgreement.getVendorLicenseModelId(),
969 licenseAgreement.getVersion(), featureGroupId), licenseAgreement.getId());
974 protected void addLicenseKeyGroupsToFeatureGroupsRef(Set<String> licenseKeyGroupIds,
975 FeatureGroupEntity featureGroup) {
976 if (licenseKeyGroupIds != null) {
977 for (String licenseKeyGroupId : licenseKeyGroupIds) {
978 licenseKeyGroupDao.addReferencingFeatureGroup(
979 new LicenseKeyGroupEntity(featureGroup.getVendorLicenseModelId(),
980 featureGroup.getVersion(), licenseKeyGroupId), featureGroup.getId());
985 protected void removeLicenseKeyGroupsToFeatureGroupsRef(Set<String> licenseKeyGroupIds,
986 FeatureGroupEntity featureGroup) {
987 if (licenseKeyGroupIds != null) {
988 for (String licenseKeyGroupId : licenseKeyGroupIds) {
989 licenseKeyGroupDao.removeReferencingFeatureGroup(
990 new LicenseKeyGroupEntity(featureGroup.getVendorLicenseModelId(),
991 featureGroup.getVersion(), licenseKeyGroupId), featureGroup.getId());
996 protected void addEntitlementPoolsToFeatureGroupsRef(Set<String> entitlementPoolIds,
997 FeatureGroupEntity featureGroup) {
998 if (entitlementPoolIds != null) {
999 for (String entitlementPoolId : entitlementPoolIds) {
1000 entitlementPoolDao.addReferencingFeatureGroup(
1001 new EntitlementPoolEntity(featureGroup.getVendorLicenseModelId(),
1002 featureGroup.getVersion(), entitlementPoolId), featureGroup.getId());
1007 protected void removeEntitlementPoolsToFeatureGroupsRef(Set<String> entitlementPoolIds,
1008 FeatureGroupEntity featureGroup) {
1009 if (entitlementPoolIds != null) {
1010 for (String entitlementPoolId : entitlementPoolIds) {
1011 entitlementPoolDao.removeReferencingFeatureGroup(
1012 new EntitlementPoolEntity(featureGroup.getVendorLicenseModelId(),
1013 featureGroup.getVersion(), entitlementPoolId), featureGroup.getId());
1018 protected VersionInfo getVersionInfo(String vendorLicenseModelId, VersionableEntityAction action,
1020 return vendorLicenseFacade.getVersionInfo(vendorLicenseModelId, action, user);
1023 protected LicenseAgreementEntity createLicenseAgreementForList(String vlmId, Version version,
1025 return new LicenseAgreementEntity(vlmId, VersioningUtil
1026 .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Read, user), user),
1030 protected void updateUniqueName(String uniqueValueType ,String oldName, String newName,String ...
1033 .updateUniqueValue(uniqueValueType, oldName, newName,context);
1036 protected void deleteUniqueName(String uniqueValueType,String ... uniqueCombination) {
1037 UniqueValueUtil.deleteUniqueValue(uniqueValueType, uniqueCombination);
1040 protected Version resloveVersion(String vlmId,Version requestedVersion, VersionInfo versionInfo,
1042 return VersioningUtil.resolveVersion(null,
1043 getVersionInfo(vlmId, VersionableEntityAction.Write, user), user);