1 package org.openecomp.sdc.versioning.dao.impl;
3 import com.amdocs.zusammen.datatypes.Id;
4 import com.amdocs.zusammen.datatypes.SessionContext;
5 import com.amdocs.zusammen.datatypes.item.ItemVersion;
6 import com.amdocs.zusammen.datatypes.itemversion.Tag;
7 import org.openecomp.core.zusammen.api.ZusammenAdaptor;
8 import org.openecomp.core.zusammen.api.ZusammenUtil;
9 import org.openecomp.sdc.versioning.dao.VersionableEntityDao;
10 import org.openecomp.sdc.versioning.dao.types.Version;
11 import org.openecomp.sdc.versioning.types.VersionableEntityMetadata;
13 import java.util.Optional;
15 public class VersionableEntityDaoZusammenImpl implements VersionableEntityDao {
17 private ZusammenAdaptor zusammenAdaptor;
19 public VersionableEntityDaoZusammenImpl(ZusammenAdaptor zusammenAdaptor) {
20 this.zusammenAdaptor = zusammenAdaptor;
24 public void initVersion(VersionableEntityMetadata versionableTableMetadata, String entityId,
25 Version baseVersion, Version newVersion) {
26 // redundant in zusammen impl.
30 public void deleteVersion(VersionableEntityMetadata versionableTableMetadata, String entityId,
31 Version versionToDelete, Version backToVersion) {
32 SessionContext context = ZusammenUtil.createSessionContext();
33 Id itemId = new Id(entityId);
34 Id versionId = getItemVersionId(itemId, context);
35 zusammenAdaptor.resetVersionHistory(context, itemId, versionId, backToVersion.toString());
39 public void closeVersion(VersionableEntityMetadata versionableTableMetadata, String entityId,
40 Version versionToClose) {
41 SessionContext context = ZusammenUtil.createSessionContext();
42 Id itemId = new Id(entityId);
43 Id versionId = getItemVersionId(itemId, context);
45 .tagVersion(context, itemId, versionId, new Tag(versionToClose.toString(), null));
48 // TODO: 3/19/2017 move to a common util
49 private Id getItemVersionId(Id itemId, SessionContext context) {
50 Optional<ItemVersion> itemVersionOptional = zusammenAdaptor.getFirstVersion(context, itemId);
51 ItemVersion itemVersion = itemVersionOptional.orElseThrow(() ->
52 new RuntimeException(String.format("No version was found for item %s.", itemId)));
53 return itemVersion.getId();