Refactoring Consolidation Service
[sdc.git] / catalog-be / src / main / java / org / openecomp / sdc / be / components / impl / version / PostChangeVersionOperationOrchestrator.java
1 package org.openecomp.sdc.be.components.impl.version;
2
3 import java.util.Iterator;
4 import java.util.List;
5
6 import org.openecomp.sdc.be.dao.api.ActionStatus;
7 import org.openecomp.sdc.be.model.Component;
8 import org.openecomp.sdc.be.model.ComponentInstance;
9 import org.slf4j.Logger;
10 import org.slf4j.LoggerFactory;
11
12 @org.springframework.stereotype.Component
13 public class PostChangeVersionOperationOrchestrator {
14
15     private static final Logger log = LoggerFactory.getLogger(PostChangeVersionOperationOrchestrator.class);
16     private final List<PostChangeVersionOperation> postChangeVersionOperations;
17
18     public PostChangeVersionOperationOrchestrator(List<PostChangeVersionOperation> postChangeVersionOperations) {
19         this.postChangeVersionOperations = postChangeVersionOperations;
20     }
21
22     public ActionStatus doPostChangeVersionOperations(Component container, ComponentInstance prevVersion, ComponentInstance newVersion) {
23         log.debug("#doPostChangeVersionOperations - starting post change version operations for component {}. from instance {} to instance {}", container.getUniqueId(), prevVersion.getUniqueId(), newVersion.getUniqueId());
24         ActionStatus postOperationsResult = ActionStatus.OK;
25         Iterator<PostChangeVersionOperation> postChangeVersionIter = postChangeVersionOperations.iterator();
26         while(postChangeVersionIter.hasNext() && postOperationsResult == ActionStatus.OK) {
27             postOperationsResult = postChangeVersionIter.next().onChangeVersion(container, prevVersion, newVersion);
28         }
29         return postOperationsResult;
30     }
31
32 }