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 / dao / ElementStageRepository.java
1 package org.openecomp.core.zusammen.plugin.dao;
2
3 import com.amdocs.zusammen.datatypes.SessionContext;
4 import com.amdocs.zusammen.datatypes.item.Action;
5 import com.amdocs.zusammen.plugin.statestore.cassandra.dao.types.ElementEntityContext;
6 import org.openecomp.core.zusammen.plugin.dao.types.ElementEntity;
7 import org.openecomp.core.zusammen.plugin.dao.types.StageEntity;
8
9 import java.util.Collection;
10 import java.util.Optional;
11
12 public interface ElementStageRepository
13     extends StageRepository<ElementEntityContext, ElementEntity> {
14
15   Optional<StageEntity<ElementEntity>> getDescriptor(SessionContext context,
16                                                      ElementEntityContext elementContext,
17                                                      ElementEntity element);
18
19   Collection<ElementEntity> listIds(SessionContext context,
20                                     ElementEntityContext elementContext);
21
22   Collection<ElementEntity> listConflictedIds(SessionContext context,
23                                               ElementEntityContext elementContext);
24
25   void markAsNotConflicted(SessionContext context, ElementEntityContext entityContext,
26                            ElementEntity entity, Action action);
27
28   void markAsNotConflicted(SessionContext context, ElementEntityContext entityContext,
29                            ElementEntity entity);
30
31   void update(SessionContext context, ElementEntityContext entityContext, ElementEntity entity,
32               Action action, boolean conflicted);
33
34 }