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 delete(Item item){
46 zusammenAdaptor.deleteItem(ZusammenUtil.createSessionContext(),new Id(item.getId()));
50 public void update(Item item) {
52 .updateItem(ZusammenUtil.createSessionContext(), new Id(item.getId()),
53 mapToZusammenItemInfo(item));
56 private Item mapFromZusammenItem(com.amdocs.zusammen.datatypes.item.Item zusammenItem) {
57 if (zusammenItem == null) {
60 Item item = new Item();
61 item.setId(zusammenItem.getId().getValue());
62 item.setName(zusammenItem.getInfo().getName());
63 item.setDescription(zusammenItem.getInfo().getDescription());
65 zusammenItem.getInfo().getProperties().entrySet()
66 .forEach(property -> addPropertyToItem(property.getKey(), property.getValue(), item));
68 item.setCreationTime(zusammenItem.getCreationTime());
69 item.setModificationTime(zusammenItem.getModificationTime());
73 private void addPropertyToItem(String propertyKey, Object propertyValue, Item item) {
74 switch (propertyKey) {
75 case InfoPropertyName.ITEM_TYPE:
76 item.setType((String) propertyValue);
78 case InfoPropertyName.ITEM_OWNER:
79 item.setOwner((String) propertyValue);
81 case InfoPropertyName.ITEM_VERSIONS_STATUSES:
82 for (Map.Entry<String, Number> statusCounter :
83 ((Map<String, Number>) propertyValue).entrySet()) {
84 item.getVersionStatusCounters().put(VersionStatus.valueOf(statusCounter.getKey()),
85 statusCounter.getValue().intValue());
89 item.addProperty(propertyKey, propertyValue);
93 private Info mapToZusammenItemInfo(Item item) {
94 Info info = new Info();
95 info.setName(item.getName());
96 info.setDescription(item.getDescription());
97 info.addProperty(InfoPropertyName.ITEM_TYPE, item.getType());
98 info.addProperty(InfoPropertyName.ITEM_OWNER,item.getOwner());
99 info.addProperty(InfoPropertyName.ITEM_VERSIONS_STATUSES, item.getVersionStatusCounters());
100 item.getProperties().entrySet()
101 .forEach(property -> info.addProperty(property.getKey(), property.getValue()));
105 private static final class InfoPropertyName {
106 private static final String ITEM_TYPE = "item_type";
107 private static final String ITEM_VERSIONS_STATUSES = "item_versions_statuses";
108 private static final String ITEM_OWNER = "Owner";
110 private InfoPropertyName() {
111 throw new IllegalStateException("Constants class");