1 package org.onap.sdc.workflow.services.impl;
3 import java.util.Collection;
5 import java.util.Objects;
6 import org.onap.sdc.workflow.services.WorkflowVersionManager;
7 import org.onap.sdc.workflow.services.exceptions.VersionNotFoundException;
8 import org.openecomp.sdc.versioning.VersioningManager;
9 import org.openecomp.sdc.versioning.dao.types.Version;
10 import org.openecomp.sdc.versioning.types.VersionCreationMethod;
11 import org.springframework.beans.factory.annotation.Autowired;
12 import org.springframework.stereotype.Service;
14 @Service("workflowVersionManager")
15 public class WorkflowVersionManagerImpl implements WorkflowVersionManager {
17 private final VersioningManager versioningManager;
20 public WorkflowVersionManagerImpl(VersioningManager versioningManager) {
21 this.versioningManager = versioningManager;
25 public Collection<Version> list(String id) {
26 return versioningManager.list(id);
30 public Version get(String id,Version version) {
33 return versioningManager.get(id, version);
34 } catch (Exception e){
35 throw new VersionNotFoundException(id,version.getId());
40 public Version create(String id, Version version) {
41 if (Objects.nonNull(getLatestVersion(id)))
42 version.setBaseId(getLatestVersion(id).getId());
43 return versioningManager.create(id,version, VersionCreationMethod.major);
47 public void update(String id,Version version) {
49 versioningManager.updateVersion(id,version);
52 protected Version getLatestVersion(String itemId) {
53 List<Version> list = versioningManager.list(itemId);
54 return list.stream().max(Version::compareTo).orElse(null);