1 package org.openecomp.sdc.versioning.impl;
3 import org.openecomp.sdc.common.session.SessionContextProviderFactory;
4 import org.openecomp.sdc.itempermissions.PermissionsServices;
5 import org.openecomp.sdc.notification.services.SubscriptionService;
6 import org.openecomp.sdc.versioning.ItemManager;
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;
12 import java.util.function.Predicate;
13 import java.util.stream.Collectors;
15 public class ItemManagerImpl implements ItemManager {
16 public static final String CREATE_ITEM = "Create_Item";
18 private ItemDao itemDao;
19 private PermissionsServices permissionsServices;
20 private SubscriptionService subscriptionService;
22 public ItemManagerImpl(ItemDao itemDao, PermissionsServices permissionsServices,
23 SubscriptionService subscriptionService) {
24 this.itemDao = itemDao;
25 this.permissionsServices = permissionsServices;
26 this.subscriptionService = subscriptionService;
30 public Collection<Item> list(Predicate<Item> predicate) {
31 return itemDao.list().stream().filter(predicate).collect(Collectors.toList());
35 public Item get(String itemId) {
36 Item item = new Item();
38 return itemDao.get(item);
42 public Item create(Item item) {
43 Item createdItem = itemDao.create(item);
45 String userId = SessionContextProviderFactory.getInstance()
46 .createInterface().get().getUser().getUserId();
47 String itemId = createdItem.getId();
48 permissionsServices.execute(itemId, userId, CREATE_ITEM);
49 subscriptionService.subscribe(userId, itemId);
55 public void updateVersionStatus(String itemId, VersionStatus addedVersionStatus,
56 VersionStatus removedVersionStatus) {
57 Item item = get(itemId);
62 item.addVersionStatus(addedVersionStatus);
63 if (removedVersionStatus != null) {
64 item.removeVersionStatus(removedVersionStatus);