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 org.openecomp.core.util.UniqueValueUtil;
24 import org.openecomp.sdc.activityLog.ActivityLogManager;
25 import org.openecomp.sdc.activityLog.ActivityLogManagerFactory;
26 import org.openecomp.sdc.activitylog.dao.type.ActivityLogEntity;
27 import org.openecomp.sdc.datatypes.error.ErrorLevel;
28 import org.openecomp.sdc.logging.api.Logger;
29 import org.openecomp.sdc.logging.api.LoggerFactory;
30 import org.openecomp.sdc.logging.context.impl.MdcDataDebugMessage;
31 import org.openecomp.sdc.logging.context.impl.MdcDataErrorMessage;
32 import org.openecomp.sdc.logging.types.LoggerConstants;
33 import org.openecomp.sdc.logging.types.LoggerErrorCode;
34 import org.openecomp.sdc.logging.types.LoggerErrorDescription;
35 import org.openecomp.sdc.logging.types.LoggerTragetServiceName;
36 import org.openecomp.sdc.vendorlicense.VendorLicenseConstants;
37 import org.openecomp.sdc.vendorlicense.VendorLicenseManager;
38 import org.openecomp.sdc.vendorlicense.dao.EntitlementPoolDao;
39 import org.openecomp.sdc.vendorlicense.dao.EntitlementPoolDaoFactory;
40 import org.openecomp.sdc.vendorlicense.dao.FeatureGroupDao;
41 import org.openecomp.sdc.vendorlicense.dao.FeatureGroupDaoFactory;
42 import org.openecomp.sdc.vendorlicense.dao.LicenseAgreementDao;
43 import org.openecomp.sdc.vendorlicense.dao.LicenseAgreementDaoFactory;
44 import org.openecomp.sdc.vendorlicense.dao.LicenseKeyGroupDao;
45 import org.openecomp.sdc.vendorlicense.dao.LicenseKeyGroupDaoFactory;
46 import org.openecomp.sdc.vendorlicense.dao.VendorLicenseModelDao;
47 import org.openecomp.sdc.vendorlicense.dao.VendorLicenseModelDaoFactory;
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.VendorLicenseModelEntity;
55 import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacade;
56 import org.openecomp.sdc.vendorlicense.facade.VendorLicenseFacadeFactory;
57 import org.openecomp.sdc.vendorlicense.types.VersionedVendorLicenseModel;
58 import org.openecomp.sdc.versioning.VersioningManager;
59 import org.openecomp.sdc.versioning.VersioningManagerFactory;
60 import org.openecomp.sdc.versioning.VersioningUtil;
61 import org.openecomp.sdc.versioning.dao.types.Version;
62 import org.openecomp.sdc.versioning.dao.types.VersionStatus;
63 import org.openecomp.sdc.versioning.types.VersionInfo;
64 import org.openecomp.sdc.versioning.types.VersionableEntityAction;
65 import org.openecomp.sdcrests.activitylog.types.ActivityType;
67 import java.util.ArrayList;
68 import java.util.Collection;
69 import java.util.List;
73 import static org.openecomp.sdc.vendorlicense.VendorLicenseConstants.VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE;
75 public class VendorLicenseManagerImpl implements VendorLicenseManager {
76 private static final VersioningManager versioningManager =
77 VersioningManagerFactory.getInstance().createInterface();
78 private static final VendorLicenseFacade vendorLicenseFacade =
79 VendorLicenseFacadeFactory.getInstance().createInterface();
80 private static final VendorLicenseModelDao vendorLicenseModelDao =
81 VendorLicenseModelDaoFactory.getInstance().createInterface();
82 private static final LicenseAgreementDao licenseAgreementDao =
83 LicenseAgreementDaoFactory.getInstance().createInterface();
84 private static final FeatureGroupDao featureGroupDao =
85 FeatureGroupDaoFactory.getInstance().createInterface();
86 private static final EntitlementPoolDao entitlementPoolDao =
87 EntitlementPoolDaoFactory.getInstance().createInterface();
88 private static final LicenseKeyGroupDao licenseKeyGroupDao =
89 LicenseKeyGroupDaoFactory.getInstance().createInterface();
90 private ActivityLogManager activityLogManager = ActivityLogManagerFactory.getInstance().createInterface();
91 private static MdcDataDebugMessage mdcDataDebugMessage = new MdcDataDebugMessage();
92 private static final Logger logger =
93 LoggerFactory.getLogger(VendorLicenseManagerImpl.class);
95 private static void sortVlmListByModificationTimeDescOrder(
96 List<VersionedVendorLicenseModel> vendorLicenseModels) {
97 vendorLicenseModels.sort((o1, o2) -> o2.getVendorLicenseModel().getWritetimeMicroSeconds()
98 .compareTo(o1.getVendorLicenseModel().getWritetimeMicroSeconds()));
102 public void checkout(String vendorLicenseModelId, String user) {
104 mdcDataDebugMessage.debugEntryMessage("VLM id", vendorLicenseModelId);
106 Version newVersion = versioningManager
107 .checkout(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE, vendorLicenseModelId, user);
109 ActivityLogEntity activityLogEntity = new ActivityLogEntity(vendorLicenseModelId, String.valueOf(newVersion.getMajor()+1),
110 ActivityType.CHECKOUT.toString(), user, true, "", "");
111 activityLogManager.addActionLog(activityLogEntity, user);
113 newVersion.setStatus(VersionStatus.Locked);
114 vendorLicenseFacade.updateVlmLastModificationTime(vendorLicenseModelId, newVersion);
116 mdcDataDebugMessage.debugExitMessage("VLM id", vendorLicenseModelId);
120 public void undoCheckout(String vendorLicenseModelId, String user) {
122 mdcDataDebugMessage.debugEntryMessage("VLM id", vendorLicenseModelId);
124 Version newVersion = versioningManager
125 .undoCheckout(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE, vendorLicenseModelId, user);
126 vendorLicenseFacade.updateVlmLastModificationTime(vendorLicenseModelId, newVersion);
128 mdcDataDebugMessage.debugExitMessage("VLM id", vendorLicenseModelId);
132 public void checkin(String vendorLicenseModelId, String user) {
134 mdcDataDebugMessage.debugEntryMessage("VLM id", vendorLicenseModelId);
136 Version newVersion = vendorLicenseFacade.checkin(vendorLicenseModelId, user);
138 ActivityLogEntity activityLogEntity = new ActivityLogEntity(vendorLicenseModelId,
139 String.valueOf(newVersion.getMajor()+1), ActivityType.CHECKIN.toString(), user, true, "", "");
140 activityLogManager.addActionLog(activityLogEntity, user);
142 mdcDataDebugMessage.debugExitMessage("VLM id", vendorLicenseModelId);
146 public void submit(String vendorLicenseModelId, String user) {
148 mdcDataDebugMessage.debugEntryMessage("VLM id", vendorLicenseModelId);
150 Version newVersion = vendorLicenseFacade.submit(vendorLicenseModelId, user);
152 ActivityLogEntity activityLogEntity = new ActivityLogEntity(vendorLicenseModelId, String.valueOf(newVersion.getMajor()),
153 ActivityType.SUBMIT.toString(), user, true, "", "");
154 activityLogManager.addActionLog(activityLogEntity, user);
156 mdcDataDebugMessage.debugExitMessage("VLM id", vendorLicenseModelId);
160 public Collection<VersionedVendorLicenseModel> listVendorLicenseModels(String versionFilter,
162 mdcDataDebugMessage.debugEntryMessage(null);
164 Map<String, VersionInfo> idToVersionsInfo = versioningManager
165 .listEntitiesVersionInfo(VENDOR_LICENSE_MODEL_VERSIONABLE_TYPE, user,
166 VersionableEntityAction.Read);
168 List<VersionedVendorLicenseModel> vendorLicenseModels = new ArrayList<>();
169 for (Map.Entry<String, VersionInfo> entry : idToVersionsInfo.entrySet()) {
170 VersionInfo versionInfo = entry.getValue();
171 if (versionFilter != null && versionFilter.equals(VersionStatus.Final.name())) {
172 if (versionInfo.getLatestFinalVersion() == null) {
175 versionInfo.setActiveVersion(versionInfo.getLatestFinalVersion());
176 versionInfo.setStatus(VersionStatus.Final);
177 versionInfo.setLockingUser(null);
180 Version version = versionInfo.getActiveVersion();
181 if (user.equals(versionInfo.getLockingUser())) {
182 version.setStatus(VersionStatus.Locked);
186 VendorLicenseModelEntity vlm =
187 vendorLicenseModelDao.get(new VendorLicenseModelEntity(entry.getKey(), version));
189 VersionedVendorLicenseModel versionedVlm = new VersionedVendorLicenseModel();
190 versionedVlm.setVendorLicenseModel(vlm);
191 versionedVlm.setVersionInfo(versionInfo);
192 vendorLicenseModels.add(versionedVlm);
194 }catch(RuntimeException rte){
195 logger.error("Error trying to retrieve vlm["+entry.getKey()+"] version["+version.toString
202 sortVlmListByModificationTimeDescOrder(vendorLicenseModels);
204 mdcDataDebugMessage.debugExitMessage(null);
205 return vendorLicenseModels;
209 public VendorLicenseModelEntity createVendorLicenseModel(VendorLicenseModelEntity vendorLicenseModelEntity, String user) {
211 VendorLicenseModelEntity vendorLicenseModelCreated = vendorLicenseFacade.createVendorLicenseModel(vendorLicenseModelEntity, user);
213 ActivityLogEntity activityLogEntity = new ActivityLogEntity(vendorLicenseModelCreated.getId(),
214 String.valueOf(vendorLicenseModelCreated.getVersion().getMajor()+1),
215 ActivityType.CREATE_NEW.toString(), user, true, "", "");
216 activityLogManager.addActionLog(activityLogEntity, user);
218 return vendorLicenseModelCreated;
222 public void updateVendorLicenseModel(VendorLicenseModelEntity vendorLicenseModelEntity,
224 mdcDataDebugMessage.debugEntryMessage("VLM id", vendorLicenseModelEntity.getId());
226 Version version = VersioningUtil.resolveVersion(null,
227 getVersionInfo(vendorLicenseModelEntity.getId(), VersionableEntityAction.Write, user),
229 vendorLicenseModelEntity.setVersion(version);
231 String existingVendorName = vendorLicenseModelDao.get(vendorLicenseModelEntity).getVendorName();
233 .updateUniqueValue(VendorLicenseConstants.UniqueValues.VENDOR_NAME, existingVendorName,
234 vendorLicenseModelEntity.getVendorName());
235 vendorLicenseModelDao.update(vendorLicenseModelEntity);
238 .updateVlmLastModificationTime(vendorLicenseModelEntity.getId(), version);
240 mdcDataDebugMessage.debugExitMessage("VLM id", vendorLicenseModelEntity.getId());
244 public VersionedVendorLicenseModel getVendorLicenseModel(String vlmId, Version version,
246 return vendorLicenseFacade.getVendorLicenseModel(vlmId, version, user);
250 public void deleteVendorLicenseModel(String vlmId, String user) {
251 MdcDataErrorMessage.createErrorMessageAndUpdateMdc(LoggerConstants.TARGET_ENTITY_DB,
252 LoggerTragetServiceName.DELETE_ENTITY, ErrorLevel.ERROR.name(),
253 LoggerErrorCode.DATA_ERROR.getErrorCode(), LoggerErrorDescription.UNSUPPORTED_OPERATION);
254 throw new UnsupportedOperationException(VendorLicenseConstants.UNSUPPORTED_OPERATION_ERROR);
258 public Collection<LicenseAgreementEntity> listLicenseAgreements(String vlmId, Version version,
260 mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId);
261 mdcDataDebugMessage.debugExitMessage("VLM id", vlmId);
262 return licenseAgreementDao.list(new LicenseAgreementEntity(vlmId, VersioningUtil
263 .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Read, user), user),
268 public LicenseAgreementEntity createLicenseAgreement(LicenseAgreementEntity licenseAgreement,
271 .debugEntryMessage("VLM id", licenseAgreement.getVendorLicenseModelId());
273 .debugExitMessage("VLM id", licenseAgreement.getVendorLicenseModelId());
274 return vendorLicenseFacade.createLicenseAgreement(licenseAgreement, user);
278 public void updateLicenseAgreement(LicenseAgreementEntity licenseAgreement,
279 Set<String> addedFeatureGroupIds,
280 Set<String> removedFeatureGroupIds, String user) {
281 mdcDataDebugMessage.debugEntryMessage("VLM id, LA id", licenseAgreement
282 .getVendorLicenseModelId(), licenseAgreement.getId());
284 Version version = VersioningUtil.resolveVersion(licenseAgreement.getVersion(),
285 getVersionInfo(licenseAgreement.getVendorLicenseModelId(), VersionableEntityAction.Write,
287 licenseAgreement.setVersion(version);
288 LicenseAgreementEntity retrieved = licenseAgreementDao.get(licenseAgreement);
290 .validateEntityExistence(retrieved, licenseAgreement, VendorLicenseModelEntity.ENTITY_TYPE);
291 VersioningUtil.validateContainedEntitiesExistence(new FeatureGroupEntity().getEntityType(),
292 removedFeatureGroupIds, retrieved, retrieved.getFeatureGroupIds());
293 VersioningUtil.validateEntitiesExistence(addedFeatureGroupIds,
294 new FeatureGroupEntity(licenseAgreement.getVendorLicenseModelId(), version, null),
295 featureGroupDao, VendorLicenseModelEntity.ENTITY_TYPE);
297 UniqueValueUtil.updateUniqueValue(VendorLicenseConstants.UniqueValues.LICENSE_AGREEMENT_NAME,
298 retrieved.getName(), licenseAgreement.getName(), licenseAgreement.getVendorLicenseModelId(),
299 licenseAgreement.getVersion().toString());
300 licenseAgreementDao.updateColumnsAndDeltaFeatureGroupIds(licenseAgreement, addedFeatureGroupIds,
301 removedFeatureGroupIds);
303 addFeatureGroupsToLicenseAgreementRef(addedFeatureGroupIds, licenseAgreement);
304 removeFeatureGroupsToLicenseAgreementRef(removedFeatureGroupIds, licenseAgreement);
307 .updateVlmLastModificationTime(licenseAgreement.getVendorLicenseModelId(), version);
309 mdcDataDebugMessage.debugExitMessage("VLM id, LA id", licenseAgreement
310 .getVendorLicenseModelId(), licenseAgreement.getId());
314 public LicenseAgreementModel getLicenseAgreementModel(String vlmId, Version version,
315 String licenseAgreementId, String user) {
317 mdcDataDebugMessage.debugEntryMessage("VLM id, LA id", vlmId, licenseAgreementId);
318 mdcDataDebugMessage.debugExitMessage("VLM id, LA id", vlmId, licenseAgreementId);
319 return vendorLicenseFacade.getLicenseAgreementModel(vlmId, version, licenseAgreementId, user);
323 public void deleteLicenseAgreement(String vlmId, Version version, String licenseAgreementId,
325 mdcDataDebugMessage.debugEntryMessage("VLM id, LA id", vlmId, licenseAgreementId);
327 version = VersioningUtil
328 .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Write, user), user);
329 LicenseAgreementEntity input =
330 new LicenseAgreementEntity(vlmId, version, licenseAgreementId);
331 LicenseAgreementEntity retrieved = licenseAgreementDao.get(input);
332 VersioningUtil.validateEntityExistence(retrieved, input, VendorLicenseModelEntity.ENTITY_TYPE);
334 removeFeatureGroupsToLicenseAgreementRef(retrieved.getFeatureGroupIds(), retrieved);
336 licenseAgreementDao.delete(input);
337 UniqueValueUtil.deleteUniqueValue(VendorLicenseConstants.UniqueValues.LICENSE_AGREEMENT_NAME,
338 retrieved.getVendorLicenseModelId(), retrieved.getVersion().toString(),
339 retrieved.getName());
342 .updateVlmLastModificationTime(input.getVendorLicenseModelId(), input.getVersion());
344 mdcDataDebugMessage.debugExitMessage("VLM id, LA id", vlmId, licenseAgreementId);
348 public Collection<FeatureGroupEntity> listFeatureGroups(String vlmId, Version version,
350 mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId);
351 mdcDataDebugMessage.debugExitMessage("VLM id", vlmId);
352 return featureGroupDao.list(new FeatureGroupEntity(vlmId, VersioningUtil
353 .resolveVersion(version, getVersionInfo(vlmId, VersionableEntityAction.Read, user), user),
358 public FeatureGroupEntity createFeatureGroup(FeatureGroupEntity featureGroup, String user) {
360 .debugEntryMessage("VLM id", featureGroup.getVendorLicenseModelId());
361 mdcDataDebugMessage.debugExitMessage("VLM id", featureGroup.getId());
362 return vendorLicenseFacade.createFeatureGroup(featureGroup, user);
366 public void updateFeatureGroup(FeatureGroupEntity featureGroup,
367 Set<String> addedLicenseKeyGroups,
368 Set<String> removedLicenseKeyGroups,
369 Set<String> addedEntitlementPools,
370 Set<String> removedEntitlementPools,
372 mdcDataDebugMessage.debugEntryMessage("VLM id, FG id", featureGroup
373 .getVendorLicenseModelId(), featureGroup.getId());
375 Version version = VersioningUtil.resolveVersion(featureGroup.getVersion(),
376 getVersionInfo(featureGroup.getVendorLicenseModelId(), VersionableEntityAction.Write, user),
378 featureGroup.setVersion(version);
380 FeatureGroupEntity retrieved = featureGroupDao.get(featureGroup);
382 .validateEntityExistence(retrieved, featureGroup, VendorLicenseModelEntity.ENTITY_TYPE);
384 VersioningUtil.validateContainedEntitiesExistence(new LicenseKeyGroupEntity().getEntityType(),
385 removedLicenseKeyGroups, retrieved, retrieved.getLicenseKeyGroupIds());
386 VersioningUtil.validateContainedEntitiesExistence(new EntitlementPoolEntity().getEntityType(),
387 removedEntitlementPools, retrieved, retrieved.getEntitlementPoolIds());
389 VersioningUtil.validateEntitiesExistence(addedLicenseKeyGroups,
390 new LicenseKeyGroupEntity(featureGroup.getVendorLicenseModelId(), version, null),
391 licenseKeyGroupDao, VendorLicenseModelEntity.ENTITY_TYPE);
392 VersioningUtil.validateEntitiesExistence(addedEntitlementPools,
393 new EntitlementPoolEntity(featureGroup.getVendorLicenseModelId(), version, null),
394 entitlementPoolDao, VendorLicenseModelEntity.ENTITY_TYPE);
395 UniqueValueUtil.updateUniqueValue(VendorLicenseConstants.UniqueValues.FEATURE_GROUP_NAME,
396 retrieved.getName(), featureGroup.getName(), featureGroup.getVendorLicenseModelId(),
397 featureGroup.getVersion().toString());
399 addLicenseKeyGroupsToFeatureGroupsRef(addedLicenseKeyGroups, featureGroup);
400 removeLicenseKeyGroupsToFeatureGroupsRef(removedLicenseKeyGroups, featureGroup);
401 addEntitlementPoolsToFeatureGroupsRef(addedEntitlementPools, featureGroup);
402 removeEntitlementPoolsToFeatureGroupsRef(removedEntitlementPools, featureGroup);
404 featureGroupDao.updateFeatureGroup(featureGroup, addedEntitlementPools, removedEntitlementPools,
405 addedLicenseKeyGroups, removedLicenseKeyGroups);
408 .updateVlmLastModificationTime(featureGroup.getVendorLicenseModelId(), version);
410 mdcDataDebugMessage.debugExitMessage("VLM id, FG id", featureGroup
411 .getVendorLicenseModelId(), featureGroup.getId());
415 public FeatureGroupModel getFeatureGroupModel(FeatureGroupEntity featureGroup, String user) {
416 mdcDataDebugMessage.debugEntryMessage("VLM id, FG id",
417 featureGroup.getVendorLicenseModelId(), featureGroup.getId());
419 mdcDataDebugMessage.debugExitMessage("VLM id, FG id",
420 featureGroup.getVendorLicenseModelId(), featureGroup.getId());
421 return vendorLicenseFacade.getFeatureGroupModel(featureGroup, user);
425 public void deleteFeatureGroup(FeatureGroupEntity featureGroup, String user) {
426 mdcDataDebugMessage.debugEntryMessage("VLM id, FG id",
427 featureGroup.getVendorLicenseModelId(), featureGroup.getId());
429 Version version = VersioningUtil.resolveVersion(featureGroup.getVersion(),
430 getVersionInfo(featureGroup.getVendorLicenseModelId(), VersionableEntityAction.Write,
432 featureGroup.setVersion(version);
433 FeatureGroupEntity retrieved = featureGroupDao.get(featureGroup);
435 .validateEntityExistence(retrieved, featureGroup, VendorLicenseModelEntity.ENTITY_TYPE);
437 removeLicenseKeyGroupsToFeatureGroupsRef(retrieved.getLicenseKeyGroupIds(), featureGroup);
438 removeEntitlementPoolsToFeatureGroupsRef(retrieved.getEntitlementPoolIds(), featureGroup);
440 for (String licenceAgreementId : retrieved.getReferencingLicenseAgreements()) {
441 licenseAgreementDao.removeFeatureGroup(
442 new LicenseAgreementEntity(featureGroup.getVendorLicenseModelId(), version,
443 licenceAgreementId), featureGroup.getId());
446 featureGroupDao.delete(featureGroup);
447 UniqueValueUtil.deleteUniqueValue(VendorLicenseConstants.UniqueValues.FEATURE_GROUP_NAME,
448 retrieved.getVendorLicenseModelId(), retrieved.getVersion().toString(),
449 retrieved.getName());
451 vendorLicenseFacade.updateVlmLastModificationTime(featureGroup.getVendorLicenseModelId(),
452 featureGroup.getVersion());
455 .debugExitMessage("VLM id, FG id",
456 featureGroup.getVendorLicenseModelId(), featureGroup.getId());
460 public Collection<EntitlementPoolEntity> listEntitlementPools(String vlmId, Version version,
462 mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId);
463 mdcDataDebugMessage.debugExitMessage("VLM id", vlmId);
464 return vendorLicenseFacade.listEntitlementPools(vlmId, version, user);
468 public EntitlementPoolEntity createEntitlementPool(EntitlementPoolEntity entitlementPool,
471 .debugEntryMessage("VLM id", entitlementPool.getVendorLicenseModelId());
473 .debugExitMessage("VLM id", entitlementPool.getVendorLicenseModelId());
474 return vendorLicenseFacade.createEntitlementPool(entitlementPool, user);
478 public void updateEntitlementPool(EntitlementPoolEntity entitlementPool, String user) {
479 mdcDataDebugMessage.debugEntryMessage("VLM id, EP id", entitlementPool
480 .getVendorLicenseModelId(), entitlementPool.getId());
482 Version version = VersioningUtil.resolveVersion(entitlementPool.getVersion(),
483 getVersionInfo(entitlementPool.getVendorLicenseModelId(), VersionableEntityAction.Write,
486 .updateVlmLastModificationTime(entitlementPool.getVendorLicenseModelId(), version);
487 vendorLicenseFacade.updateEntitlementPool(entitlementPool, user);
489 mdcDataDebugMessage.debugExitMessage("VLM id, EP id", entitlementPool
490 .getVendorLicenseModelId(), entitlementPool.getId());
494 public EntitlementPoolEntity getEntitlementPool(EntitlementPoolEntity entitlementPool,
496 mdcDataDebugMessage.debugEntryMessage("VLM id, EP id", entitlementPool
497 .getVendorLicenseModelId(), entitlementPool.getId());
499 entitlementPool.setVersion(VersioningUtil.resolveVersion(entitlementPool.getVersion(),
500 getVersionInfo(entitlementPool.getVendorLicenseModelId(), VersionableEntityAction.Read,
503 EntitlementPoolEntity retrieved = entitlementPoolDao.get(entitlementPool);
505 .validateEntityExistence(retrieved, entitlementPool, VendorLicenseModelEntity.ENTITY_TYPE);
507 mdcDataDebugMessage.debugExitMessage("VLM id, EP id", entitlementPool
508 .getVendorLicenseModelId(), entitlementPool.getId());
513 public void deleteEntitlementPool(EntitlementPoolEntity entitlementPool, String user) {
514 mdcDataDebugMessage.debugEntryMessage("VLM id, EP id", entitlementPool
515 .getVendorLicenseModelId(), entitlementPool.getId());
517 Version version = VersioningUtil.resolveVersion(entitlementPool.getVersion(),
518 getVersionInfo(entitlementPool.getVendorLicenseModelId(), VersionableEntityAction.Write,
520 entitlementPool.setVersion(version);
522 EntitlementPoolEntity retrieved = entitlementPoolDao.get(entitlementPool);
524 .validateEntityExistence(retrieved, entitlementPool, VendorLicenseModelEntity.ENTITY_TYPE);
526 for (String referencingFeatureGroupId : retrieved.getReferencingFeatureGroups()) {
527 featureGroupDao.removeEntitlementPool(
528 new FeatureGroupEntity(entitlementPool.getVendorLicenseModelId(), version,
529 referencingFeatureGroupId), entitlementPool.getId());
532 entitlementPoolDao.delete(entitlementPool);
534 UniqueValueUtil.deleteUniqueValue(VendorLicenseConstants.UniqueValues.ENTITLEMENT_POOL_NAME,
535 retrieved.getVendorLicenseModelId(), retrieved.getVersion().toString(),
536 retrieved.getName());
538 vendorLicenseFacade.updateVlmLastModificationTime(entitlementPool.getVendorLicenseModelId(),
539 entitlementPool.getVersion());
541 mdcDataDebugMessage.debugExitMessage("VLM id, EP id", entitlementPool
542 .getVendorLicenseModelId(), entitlementPool.getId());
546 public Collection<LicenseKeyGroupEntity> listLicenseKeyGroups(String vlmId, Version version,
548 mdcDataDebugMessage.debugEntryMessage("VLM id", vlmId);
549 mdcDataDebugMessage.debugExitMessage("VLM id", vlmId);
550 return vendorLicenseFacade.listLicenseKeyGroups(vlmId, version, user);
554 public LicenseKeyGroupEntity createLicenseKeyGroup(LicenseKeyGroupEntity licenseKeyGroup,
557 .debugEntryMessage("VLM id", licenseKeyGroup.getVendorLicenseModelId());
559 mdcDataDebugMessage.debugExitMessage("VLM id", licenseKeyGroup
560 .getVendorLicenseModelId());
561 return vendorLicenseFacade.createLicenseKeyGroup(licenseKeyGroup, user);
565 public void updateLicenseKeyGroup(LicenseKeyGroupEntity licenseKeyGroup, String user) {
566 mdcDataDebugMessage.debugEntryMessage("VLM id, LKG id", licenseKeyGroup
567 .getVendorLicenseModelId(), licenseKeyGroup.getId());
569 Version version = VersioningUtil.resolveVersion(licenseKeyGroup.getVersion(),
570 getVersionInfo(licenseKeyGroup.getVendorLicenseModelId(), VersionableEntityAction.Write,
573 .updateVlmLastModificationTime(licenseKeyGroup.getVendorLicenseModelId(), version);
575 vendorLicenseFacade.updateLicenseKeyGroup(licenseKeyGroup, user);
577 mdcDataDebugMessage.debugExitMessage("VLM id, LKG id", licenseKeyGroup
578 .getVendorLicenseModelId(), licenseKeyGroup.getId());
582 public LicenseKeyGroupEntity getLicenseKeyGroup(LicenseKeyGroupEntity licenseKeyGroup,
584 mdcDataDebugMessage.debugEntryMessage("VLM id, LKG id", licenseKeyGroup
585 .getVendorLicenseModelId(), licenseKeyGroup.getId());
587 licenseKeyGroup.setVersion(VersioningUtil.resolveVersion(licenseKeyGroup.getVersion(),
588 getVersionInfo(licenseKeyGroup.getVendorLicenseModelId(), VersionableEntityAction.Read,
591 LicenseKeyGroupEntity retrieved = licenseKeyGroupDao.get(licenseKeyGroup);
593 .validateEntityExistence(retrieved, licenseKeyGroup, VendorLicenseModelEntity.ENTITY_TYPE);
595 mdcDataDebugMessage.debugExitMessage("VLM id, LKG id", licenseKeyGroup
596 .getVendorLicenseModelId(), licenseKeyGroup.getId());
601 public void deleteLicenseKeyGroup(LicenseKeyGroupEntity licenseKeyGroup, String user) {
602 mdcDataDebugMessage.debugEntryMessage("VLM id, LKG id", licenseKeyGroup
603 .getVendorLicenseModelId(), licenseKeyGroup.getId());
605 Version version = VersioningUtil.resolveVersion(licenseKeyGroup.getVersion(),
606 getVersionInfo(licenseKeyGroup.getVendorLicenseModelId(), VersionableEntityAction.Write,
608 licenseKeyGroup.setVersion(version);
610 LicenseKeyGroupEntity retrieved = licenseKeyGroupDao.get(licenseKeyGroup);
612 .validateEntityExistence(retrieved, licenseKeyGroup, VendorLicenseModelEntity.ENTITY_TYPE);
614 for (String referencingFeatureGroupId : retrieved.getReferencingFeatureGroups()) {
615 featureGroupDao.removeLicenseKeyGroup(
616 new FeatureGroupEntity(licenseKeyGroup.getVendorLicenseModelId(), version,
617 referencingFeatureGroupId), licenseKeyGroup.getId());
620 licenseKeyGroupDao.delete(licenseKeyGroup);
622 UniqueValueUtil.deleteUniqueValue(VendorLicenseConstants.UniqueValues.LICENSE_KEY_GROUP_NAME,
623 retrieved.getVendorLicenseModelId(), retrieved.getVersion().toString(),
624 retrieved.getName());
626 vendorLicenseFacade.updateVlmLastModificationTime(licenseKeyGroup.getVendorLicenseModelId(),
627 licenseKeyGroup.getVersion());
629 mdcDataDebugMessage.debugExitMessage("VLM id, LKG id", licenseKeyGroup
630 .getVendorLicenseModelId(), licenseKeyGroup.getId());
633 private void addFeatureGroupsToLicenseAgreementRef(Set<String> featureGroupIds,
634 LicenseAgreementEntity licenseAgreement) {
635 if (featureGroupIds != null) {
636 for (String featureGroupId : featureGroupIds) {
637 featureGroupDao.addReferencingLicenseAgreement(
638 new FeatureGroupEntity(licenseAgreement.getVendorLicenseModelId(),
639 licenseAgreement.getVersion(), featureGroupId), licenseAgreement.getId());
644 private void removeFeatureGroupsToLicenseAgreementRef(Set<String> featureGroupIds,
645 LicenseAgreementEntity licenseAgreement) {
646 if (featureGroupIds != null) {
647 for (String featureGroupId : featureGroupIds) {
648 featureGroupDao.removeReferencingLicenseAgreement(
649 new FeatureGroupEntity(licenseAgreement.getVendorLicenseModelId(),
650 licenseAgreement.getVersion(), featureGroupId), licenseAgreement.getId());
655 private void addLicenseKeyGroupsToFeatureGroupsRef(Set<String> licenseKeyGroupIds,
656 FeatureGroupEntity featureGroup) {
657 if (licenseKeyGroupIds != null) {
658 for (String licenseKeyGroupId : licenseKeyGroupIds) {
659 licenseKeyGroupDao.addReferencingFeatureGroup(
660 new LicenseKeyGroupEntity(featureGroup.getVendorLicenseModelId(),
661 featureGroup.getVersion(), licenseKeyGroupId), featureGroup.getId());
666 private void removeLicenseKeyGroupsToFeatureGroupsRef(Set<String> licenseKeyGroupIds,
667 FeatureGroupEntity featureGroup) {
668 if (licenseKeyGroupIds != null) {
669 for (String licenseKeyGroupId : licenseKeyGroupIds) {
670 licenseKeyGroupDao.removeReferencingFeatureGroup(
671 new LicenseKeyGroupEntity(featureGroup.getVendorLicenseModelId(),
672 featureGroup.getVersion(), licenseKeyGroupId), featureGroup.getId());
677 private void addEntitlementPoolsToFeatureGroupsRef(Set<String> entitlementPoolIds,
678 FeatureGroupEntity featureGroup) {
679 if (entitlementPoolIds != null) {
680 for (String entitlementPoolId : entitlementPoolIds) {
681 entitlementPoolDao.addReferencingFeatureGroup(
682 new EntitlementPoolEntity(featureGroup.getVendorLicenseModelId(),
683 featureGroup.getVersion(), entitlementPoolId), featureGroup.getId());
688 private void removeEntitlementPoolsToFeatureGroupsRef(Set<String> entitlementPoolIds,
689 FeatureGroupEntity featureGroup) {
690 if (entitlementPoolIds != null) {
691 for (String entitlementPoolId : entitlementPoolIds) {
692 entitlementPoolDao.removeReferencingFeatureGroup(
693 new EntitlementPoolEntity(featureGroup.getVendorLicenseModelId(),
694 featureGroup.getVersion(), entitlementPoolId), featureGroup.getId());
699 private VersionInfo getVersionInfo(String vendorLicenseModelId, VersionableEntityAction action,
701 return vendorLicenseFacade.getVersionInfo(vendorLicenseModelId, action, user);