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