1 package org.openecomp.sdc.versioning.dao.impl.zusammen;
3 import com.amdocs.zusammen.datatypes.Id;
4 import com.amdocs.zusammen.datatypes.item.Info;
5 import org.openecomp.core.zusammen.api.ZusammenAdaptor;
6 import org.openecomp.core.zusammen.api.ZusammenUtil;
7 import org.openecomp.sdc.versioning.dao.ItemDao;
8 import org.openecomp.sdc.versioning.dao.types.VersionStatus;
9 import org.openecomp.sdc.versioning.types.Item;
11 import java.util.Collection;
13 import java.util.stream.Collectors;
15 public class ItemZusammenDaoImpl implements ItemDao {
17 private ZusammenAdaptor zusammenAdaptor;
19 public ItemZusammenDaoImpl(ZusammenAdaptor zusammenAdaptor) {
20 this.zusammenAdaptor = zusammenAdaptor;
24 public Collection<Item> list() {
25 return zusammenAdaptor.listItems(ZusammenUtil.createSessionContext())
26 .stream().map(this::mapFromZusammenItem)
27 .collect(Collectors.toList());
31 public Item get(Item item) {
32 return mapFromZusammenItem(
33 zusammenAdaptor.getItem(ZusammenUtil.createSessionContext(), new Id(item.getId())));
37 public Item create(Item item) {
38 Id itemId = zusammenAdaptor
39 .createItem(ZusammenUtil.createSessionContext(), mapToZusammenItemInfo(item));
40 item.setId(itemId.getValue());
45 public void update(Item item) {
47 .updateItem(ZusammenUtil.createSessionContext(), new Id(item.getId()),
48 mapToZusammenItemInfo(item));
51 private Item mapFromZusammenItem(com.amdocs.zusammen.datatypes.item.Item zusammenItem) {
52 if (zusammenItem == null) {
55 Item item = new Item();
56 item.setId(zusammenItem.getId().getValue());
57 item.setName(zusammenItem.getInfo().getName());
58 item.setDescription(zusammenItem.getInfo().getDescription());
60 zusammenItem.getInfo().getProperties().entrySet()
61 .forEach(property -> addPropertyToItem(property.getKey(), property.getValue(), item));
63 item.setCreationTime(zusammenItem.getCreationTime());
64 item.setModificationTime(zusammenItem.getModificationTime());
68 private void addPropertyToItem(String propertyKey, Object propertyValue, Item item) {
69 switch (propertyKey) {
70 case InfoPropertyName.ITEM_TYPE:
71 item.setType((String) propertyValue);
73 case InfoPropertyName.ITEM_OWNER:
74 item.setOwner((String) propertyValue);
76 case InfoPropertyName.ITEM_VERSIONS_STATUSES:
77 for (Map.Entry<String, Number> statusCounter :
78 ((Map<String, Number>) propertyValue).entrySet()) {
79 item.getVersionStatusCounters().put(VersionStatus.valueOf(statusCounter.getKey()),
80 statusCounter.getValue().intValue());
84 item.addProperty(propertyKey, propertyValue);
88 private Info mapToZusammenItemInfo(Item item) {
89 Info info = new Info();
90 info.setName(item.getName());
91 info.setDescription(item.getDescription());
92 info.addProperty(InfoPropertyName.ITEM_TYPE, item.getType());
93 info.addProperty(InfoPropertyName.ITEM_OWNER,item.getOwner());
94 info.addProperty(InfoPropertyName.ITEM_VERSIONS_STATUSES, item.getVersionStatusCounters());
95 item.getProperties().entrySet()
96 .forEach(property -> info.addProperty(property.getKey(), property.getValue()));
100 private static final class InfoPropertyName {
101 private static final String ITEM_TYPE = "item_type";
102 private static final String ITEM_VERSIONS_STATUSES = "item_versions_statuses";
103 private static final String ITEM_OWNER = "Owner";
105 private InfoPropertyName() {
106 throw new IllegalStateException("Constants class");