dadf456ad4aed78faa09bdd274ee5ddb187e70c1
[sdc.git] /
1 /*
2  * Copyright © 2016-2018 European Support Limited
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *   http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package org.openecomp.sdc.versioning.impl;
18
19 import java.util.Collection;
20 import java.util.function.Predicate;
21 import java.util.stream.Collectors;
22 import org.openecomp.sdc.versioning.ItemManager;
23 import org.openecomp.sdc.versioning.dao.ItemDao;
24 import org.openecomp.sdc.versioning.dao.types.VersionStatus;
25 import org.openecomp.sdc.versioning.types.Item;
26
27 public class ItemManagerImpl implements ItemManager {
28
29   private ItemDao itemDao;
30
31
32   public ItemManagerImpl(ItemDao itemDao) {
33     this.itemDao = itemDao;
34
35   }
36
37   @Override
38   public Collection<Item> list(Predicate<Item> predicate) {
39     return itemDao.list().stream().filter(predicate).collect(Collectors.toList());
40   }
41
42   @Override
43   public Item get(String itemId) {
44     Item item = new Item();
45     item.setId(itemId);
46     return itemDao.get(item);
47   }
48
49   @Override
50   public Item create(Item item) {
51     return itemDao.create(item);
52   }
53
54   @Override
55   public void updateVersionStatus(String itemId, VersionStatus addedVersionStatus,
56                                   VersionStatus removedVersionStatus) {
57     Item item = get(itemId);
58     if (item == null) {
59       return;
60     }
61
62     item.addVersionStatus(addedVersionStatus);
63     if (removedVersionStatus != null) {
64       item.removeVersionStatus(removedVersionStatus);
65     }
66     itemDao.update(item);
67   }
68
69   @Override
70   public void delete(Item item) {
71     itemDao.delete(item);
72   }
73
74   @Override
75   public void updateName(String itemId, String name) {
76     Item item = get(itemId);
77     if (item == null) {
78       return;
79     }
80
81     item.setName(name);
82     itemDao.update(item);
83   }
84
85   @Override
86   public void update(Item item) {
87     itemDao.update(item);
88   }
89 }