re base code
[sdc.git] / catalog-be / src / main / java / org / openecomp / sdc / be / components / impl / instance / PolicyTargetsUpdateOperation.java
1 package org.openecomp.sdc.be.components.impl.instance;
2
3 import org.openecomp.sdc.be.components.impl.policy.PolicyTargetsUpdateHandler;
4 import org.openecomp.sdc.be.dao.api.ActionStatus;
5 import org.openecomp.sdc.be.datatypes.elements.PolicyTargetType;
6 import org.openecomp.sdc.be.model.Component;
7 import org.openecomp.sdc.be.model.ComponentInstance;
8 import org.openecomp.sdc.common.log.wrappers.Logger;
9
10 @org.springframework.stereotype.Component
11 public class PolicyTargetsUpdateOperation implements OnComponentInstanceChangeOperation {
12
13     private static final Logger log = Logger.getLogger(PolicyTargetsUpdateOperation.class);
14     private final PolicyTargetsUpdateHandler policyTargetsUpdateHandler;
15
16     public PolicyTargetsUpdateOperation(PolicyTargetsUpdateHandler policyTargetsUpdateHandler) {
17         this.policyTargetsUpdateHandler = policyTargetsUpdateHandler;
18     }
19
20     @Override
21     public ActionStatus onChangeVersion(Component container, ComponentInstance prevVersion, ComponentInstance newVersion) {
22         log.debug("#onChangeVersion - replacing all policy targets referencing component instance {} with component instance {}", prevVersion.getUniqueId(), newVersion.getUniqueId());
23         return policyTargetsUpdateHandler.replacePoliciesTargets(container, prevVersion.getUniqueId(), newVersion.getUniqueId(), PolicyTargetType.COMPONENT_INSTANCES);
24     }
25
26     @Override
27     public ActionStatus onDelete(Component container, String deletedEntityId) {
28         log.debug("#onDelete - removing all component {} policy targets referencing component instance {}", container.getUniqueId(), deletedEntityId);
29         return policyTargetsUpdateHandler.removePoliciesTargets(container, deletedEntityId, PolicyTargetType.COMPONENT_INSTANCES);
30     }
31
32
33 }