1 package org.openecomp.sdc.vendorlicense.dao.impl.zusammen.convertor;
3 import com.amdocs.zusammen.adaptor.inbound.api.types.item.Element;
4 import com.amdocs.zusammen.adaptor.inbound.api.types.item.ElementInfo;
5 import com.amdocs.zusammen.datatypes.item.Info;
6 import com.amdocs.zusammen.datatypes.item.Relation;
7 import org.openecomp.convertor.ElementConvertor;
8 import org.openecomp.sdc.vendorlicense.dao.impl.zusammen.RelationType;
9 import org.openecomp.sdc.vendorlicense.dao.types.FeatureGroupEntity;
11 import java.util.Collection;
12 import java.util.HashSet;
16 public class ElementToFeatureGroupConvertor extends ElementConvertor {
18 public FeatureGroupEntity convert(Element element) {
19 if (element == null) {
22 return mapElementToFeatureGroupEntity(element);
27 public FeatureGroupEntity convert(ElementInfo elementInfo) {
28 if (elementInfo == null) {
31 return mapElementInfoToFeatureGroupEntity(elementInfo);
36 private FeatureGroupEntity mapElementToFeatureGroupEntity(Element element) {
37 FeatureGroupEntity featureGroup =
38 new FeatureGroupEntity();
39 featureGroup.setId(element.getElementId().getValue());
40 mapInfoToFeatureGroup(featureGroup, element.getInfo());
41 mapRelationsToFeatureGroup(featureGroup, element.getRelations());
46 private FeatureGroupEntity mapElementInfoToFeatureGroupEntity(ElementInfo elementInfo) {
47 FeatureGroupEntity featureGroup = new FeatureGroupEntity();
48 featureGroup.setId(elementInfo.getId().getValue());
49 mapInfoToFeatureGroup(featureGroup, elementInfo.getInfo());
50 mapRelationsToFeatureGroup(featureGroup, elementInfo.getRelations());
54 private void mapInfoToFeatureGroup(FeatureGroupEntity featureGroup, Info info) {
55 featureGroup.setName(info.getName());
56 featureGroup.setDescription(info.getDescription());
57 featureGroup.setPartNumber(info.getProperty("partNumber"));
58 featureGroup.setManufacturerReferenceNumber(info.getProperty("manufacturerReferenceNumber"));
61 private void mapRelationsToFeatureGroup(FeatureGroupEntity featureGroup,
62 Collection<Relation> relations) {
63 Set<String> entitlementPoolIds = new HashSet<>();
64 Set<String> licenseAgreements = new HashSet<>();
65 Set<String> licenseKeyGroupIds = new HashSet<>();
67 if (relations != null) {
68 for (Relation relation : relations) {
69 if (RelationType.FeatureGroupToEntitlmentPool.name().equals(relation.getType())) {
70 entitlementPoolIds.add(relation.getEdge2().getElementId().getValue());
71 } else if (RelationType.FeatureGroupToLicenseKeyGroup.name().equals(relation.getType())) {
72 licenseKeyGroupIds.add(relation.getEdge2().getElementId().getValue());
73 } else if (RelationType.FeatureGroupToReferencingLicenseAgreement.name()
74 .equals(relation.getType())) {
75 licenseAgreements.add(relation.getEdge2().getElementId().getValue());
79 featureGroup.setEntitlementPoolIds(entitlementPoolIds);
80 featureGroup.setLicenseKeyGroupIds(licenseKeyGroupIds);
81 featureGroup.setReferencingLicenseAgreements(licenseAgreements);