1 package org.openecomp.sdc.vendorlicense.dao.impl.zusammen;
3 import com.amdocs.zusammen.adaptor.inbound.api.types.item.ZusammenElement;
4 import com.amdocs.zusammen.datatypes.SessionContext;
5 import com.amdocs.zusammen.datatypes.item.Action;
6 import com.amdocs.zusammen.datatypes.item.ElementContext;
7 import com.amdocs.zusammen.datatypes.item.Info;
8 import org.openecomp.core.zusammen.api.ZusammenAdaptor;
9 import org.openecomp.core.zusammen.api.ZusammenUtil;
10 import org.openecomp.sdc.datatypes.model.ElementType;
11 import org.openecomp.sdc.vendorlicense.dao.VendorLicenseModelDao;
12 import org.openecomp.sdc.vendorlicense.dao.impl.zusammen.convertor.ElementToVLMGeneralConvertor;
13 import org.openecomp.sdc.vendorlicense.dao.types.VendorLicenseModelEntity;
14 import org.openecomp.sdc.versioning.VersioningManagerFactory;
15 import org.openecomp.sdc.versioning.types.VersionableEntityMetadata;
16 import org.openecomp.sdc.versioning.types.VersionableEntityStoreType;
18 import java.util.Collection;
19 import java.util.stream.Collectors;
21 public class VendorLicenseModelDaoZusammenImpl implements VendorLicenseModelDao {
23 private ZusammenAdaptor zusammenAdaptor;
25 public VendorLicenseModelDaoZusammenImpl(ZusammenAdaptor zusammenAdaptor) {
26 this.zusammenAdaptor = zusammenAdaptor;
30 public void registerVersioning(String versionableEntityType) {
31 VersionableEntityMetadata metadata =
32 new VersionableEntityMetadata(VersionableEntityStoreType.Zusammen, "VendorLicenseModel",
35 VersioningManagerFactory.getInstance().createInterface()
36 .register(versionableEntityType, metadata);
40 public Collection<VendorLicenseModelEntity> list(
41 VendorLicenseModelEntity vendorLicenseModelEntity) {
43 ElementToVLMGeneralConvertor convertor = new ElementToVLMGeneralConvertor();
44 return zusammenAdaptor.listItems(ZusammenUtil.createSessionContext()).stream()
45 .filter(item -> "VendorLicenseModel".equals(item.getInfo().getProperty("item_type")))
47 VendorLicenseModelEntity entity = convertor.convert(item);
48 entity.setId(item.getId().getValue());
49 entity.setVersion(null);
52 .collect(Collectors.toList());
56 public void create(VendorLicenseModelEntity vendorLicenseModel) {
58 SessionContext context = ZusammenUtil.createSessionContext();
60 ElementContext elementContext = new ElementContext(vendorLicenseModel.getId(),
61 vendorLicenseModel.getVersion().getId());
63 ZusammenElement generalElement = mapVlmToZusammenElement(vendorLicenseModel, Action.CREATE);
65 zusammenAdaptor.saveElement(context, elementContext, generalElement,
66 "Create VLM General Info Element");
68 ZusammenElement licenseAgreementsElement =
69 ZusammenUtil.buildStructuralElement(ElementType.LicenseAgreements, Action.CREATE);
71 zusammenAdaptor.saveElement(context, elementContext, licenseAgreementsElement,
72 "Create VLM licenseAgreementsElement");
74 ZusammenElement featureGroupsElement =
75 ZusammenUtil.buildStructuralElement(ElementType.FeatureGroups, Action.CREATE);
77 zusammenAdaptor.saveElement(context, elementContext, featureGroupsElement,
78 "Create VLM featureGroupsElement");
80 ZusammenElement lkgsElement =
81 ZusammenUtil.buildStructuralElement(ElementType.LicenseKeyGroups, Action.CREATE);
83 zusammenAdaptor.saveElement(context, elementContext, lkgsElement,
84 "Create VLM lkgsElement");
86 ZusammenElement entitlementPoolsElement =
87 ZusammenUtil.buildStructuralElement(ElementType.EntitlementPools, Action.CREATE);
89 zusammenAdaptor.saveElement(context, elementContext, entitlementPoolsElement,
90 "Create VLM entitlementPoolsElement");
94 public void update(VendorLicenseModelEntity vendorLicenseModel) {
95 ZusammenElement generalElement = mapVlmToZusammenElement(vendorLicenseModel, Action.UPDATE);
97 SessionContext context = ZusammenUtil.createSessionContext();
98 zusammenAdaptor.saveElement(context,
99 new ElementContext(vendorLicenseModel.getId(), vendorLicenseModel.getVersion().getId()),
100 generalElement, "Update VSP General Info Element");
104 public VendorLicenseModelEntity get(VendorLicenseModelEntity vendorLicenseModel) {
105 SessionContext context = ZusammenUtil.createSessionContext();
106 ElementContext elementContext =
107 new ElementContext(vendorLicenseModel.getId(), vendorLicenseModel.getVersion().getId());
108 ElementToVLMGeneralConvertor convertor = new ElementToVLMGeneralConvertor();
109 return zusammenAdaptor
110 .getElementInfoByName(context, elementContext, null, ElementType.VendorLicenseModel.name())
111 .map(generalElementInfo -> {
112 VendorLicenseModelEntity entity = convertor.convert(generalElementInfo);
113 entity.setId(vendorLicenseModel.getId());
114 entity.setVersion(vendorLicenseModel.getVersion());
121 public void delete(VendorLicenseModelEntity entity) {
125 /* private Info mapVlmToZusammenItemInfo(VendorLicenseModelEntity vendorLicenseModel) {
126 Info info = new Info();
127 info.setName(vendorLicenseModel.getVendorName());
128 info.setDescription(vendorLicenseModel.getDescription());
129 info.addProperty("type", "VendorLicenseModel");
130 addVlmToInfo(info, vendorLicenseModel);
134 private ZusammenElement mapVlmToZusammenElement(VendorLicenseModelEntity vendorLicenseModel,
136 ZusammenElement generalElement =
137 ZusammenUtil.buildStructuralElement(ElementType.VendorLicenseModel, action);
138 addVlmToInfo(generalElement.getInfo(), vendorLicenseModel);
139 return generalElement;
142 private void addVlmToInfo(Info info, VendorLicenseModelEntity vendorLicenseModel) {
143 info.addProperty(InfoPropertyName.name.name(), vendorLicenseModel.getVendorName());
144 info.addProperty(InfoPropertyName.description.name(), vendorLicenseModel.getDescription());
145 info.addProperty(InfoPropertyName.iconRef.name(), vendorLicenseModel.getIconRef());
146 info.addProperty(InfoPropertyName.oldVersion.name(), vendorLicenseModel.getOldVersion());
149 /*private VendorLicenseModelEntity mapInfoToVlm(String vlmId, Version version, Info info) {
150 VendorLicenseModelEntity vendorLicenseModel = new VendorLicenseModelEntity(vlmId, version);
151 vendorLicenseModel.setVendorName(info.getProperty(InfoPropertyName.name.name()));
152 vendorLicenseModel.setDescription(info.getProperty(InfoPropertyName.description.name()));
153 vendorLicenseModel.setIconRef(info.getProperty(InfoPropertyName.iconRef.name()));
154 return vendorLicenseModel;
157 public enum InfoPropertyName {