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 / impl / VersionStageStoreImpl.java
1 package org.openecomp.core.zusammen.plugin.collaboration.impl;
2
3 import com.amdocs.zusammen.datatypes.Id;
4 import com.amdocs.zusammen.datatypes.SessionContext;
5 import org.openecomp.core.zusammen.plugin.collaboration.VersionStageStore;
6 import org.openecomp.core.zusammen.plugin.dao.VersionStageRepository;
7 import org.openecomp.core.zusammen.plugin.dao.VersionStageRepositoryFactory;
8 import org.openecomp.core.zusammen.plugin.dao.types.StageEntity;
9 import org.openecomp.core.zusammen.plugin.dao.types.VersionContext;
10 import org.openecomp.core.zusammen.plugin.dao.types.VersionEntity;
11
12 import java.util.Optional;
13
14 import static org.openecomp.core.zusammen.plugin.ZusammenPluginUtil.getPrivateSpaceName;
15
16 public class VersionStageStoreImpl implements VersionStageStore {
17   @Override
18   public Optional<StageEntity<VersionEntity>> get(SessionContext context, Id itemId,
19                                                   VersionEntity versionEntity) {
20     return getVersionStageRepository(context)
21         .get(context, new VersionContext(getPrivateSpaceName(context), itemId), versionEntity);
22   }
23
24   @Override
25   public void create(SessionContext context, Id itemId, StageEntity<VersionEntity> versionStage) {
26     getVersionStageRepository(context)
27         .create(context, new VersionContext(getPrivateSpaceName(context), itemId), versionStage);
28   }
29
30   @Override
31   public void delete(SessionContext context, Id itemId, VersionEntity version) {
32     getVersionStageRepository(context)
33         .delete(context, new VersionContext(getPrivateSpaceName(context), itemId), version);
34   }
35
36   protected VersionStageRepository getVersionStageRepository(SessionContext context) {
37     return VersionStageRepositoryFactory.getInstance().createInterface(context);
38   }
39 }