Add collaboration feature
[sdc.git] / openecomp-be / lib / openecomp-core-lib / openecomp-zusammen-lib / openecomp-zusammen-plugin / src / main / java / org / openecomp / core / zusammen / plugin / collaboration / ElementPrivateStore.java
1 package org.openecomp.core.zusammen.plugin.collaboration;
2
3 import com.amdocs.zusammen.datatypes.Id;
4 import com.amdocs.zusammen.datatypes.SessionContext;
5 import com.amdocs.zusammen.datatypes.item.ElementContext;
6 import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
7 import org.openecomp.core.zusammen.plugin.dao.types.SynchronizationStateEntity;
8
9 import java.util.Collection;
10 import java.util.Date;
11 import java.util.Map;
12 import java.util.Optional;
13
14 public interface ElementPrivateStore extends ElementStore {
15
16   Map<Id, Id> listIds(SessionContext context, ElementContext elementContext);
17
18   Collection<ElementEntity> listSubs(SessionContext context, ElementContext elementContext,
19                                      Id elementId);
20
21   Optional<SynchronizationStateEntity> getSynchronizationState(SessionContext context,
22                                                                ElementContext elementContext,
23                                                                Id elementId);
24
25   void create(SessionContext context, ElementContext elementContext, ElementEntity element);
26
27   boolean update(SessionContext context, ElementContext elementContext, ElementEntity element);
28
29   void delete(SessionContext context, ElementContext elementContext, ElementEntity element);
30
31   void markAsPublished(SessionContext context, ElementContext elementContext, Id elementId,
32                        Date publishTime);
33
34   void markDeletionAsPublished(SessionContext context, ElementContext elementContext, Id elementId,
35                                Date publishTime);
36
37   void commitStagedCreate(SessionContext context, ElementContext elementContext,
38                           ElementEntity element, Date publishTime);
39
40   void commitStagedUpdate(SessionContext context, ElementContext elementContext,
41                           ElementEntity element, Date publishTime);
42
43   void commitStagedDelete(SessionContext context, ElementContext elementContext,
44                           ElementEntity element);
45
46   void commitStagedIgnore(SessionContext context, ElementContext elementContext,
47                           ElementEntity element, Date publishTime);
48 }