re base code
[sdc.git] / catalog-model / src / main / java / org / openecomp / sdc / be / model / jsontitan / utils / IdMapper.java
1 package org.openecomp.sdc.be.model.jsontitan.utils;
2
3 import org.openecomp.sdc.be.dao.jsongraph.GraphVertex;
4 import org.openecomp.sdc.be.datatypes.elements.ComponentInstanceDataDefinition;
5 import org.openecomp.sdc.be.datatypes.elements.CompositionDataDefinition;
6 import org.openecomp.sdc.be.model.jsontitan.enums.JsonConstantKeysEnum;
7 import org.openecomp.sdc.be.model.jsontitan.operations.ExternalReferencesOperation;
8 import org.openecomp.sdc.common.log.wrappers.Logger;
9 import org.springframework.stereotype.Component;
10
11 import java.util.Map;
12 import java.util.Optional;
13
14 /**
15  * Created by yavivi on 12/02/2018.
16  */
17 @Component
18 public class IdMapper {
19
20     private static final Logger log = Logger.getLogger(ExternalReferencesOperation.class.getName());
21
22     public String mapComponentNameToUniqueId(String componentInstanceName, GraphVertex serviceVertex) {
23         return map(componentInstanceName, serviceVertex, true);
24     }
25
26     public String mapUniqueIdToComponentNameTo(String compUniqueId, GraphVertex serviceVertex) {
27         return map(compUniqueId, serviceVertex, false);
28     }
29
30     private String map(String componentUniqueIdOrName, GraphVertex serviceVertex, boolean fromCompName) {
31         String result = null;
32         try {
33             Map<String, CompositionDataDefinition> jsonComposition = (Map<String, CompositionDataDefinition>) serviceVertex.getJson();
34             CompositionDataDefinition compositionDataDefinition = jsonComposition.get(JsonConstantKeysEnum.COMPOSITION.getValue());
35
36             Optional<ComponentInstanceDataDefinition> componentInstanceDataDefinitionOptional = null;
37             if (fromCompName) {
38                 componentInstanceDataDefinitionOptional = compositionDataDefinition.getComponentInstances().values().stream().filter(c -> c.getNormalizedName().equals(componentUniqueIdOrName)).findAny();
39                 result = componentInstanceDataDefinitionOptional.get().getUniqueId();
40                 log.debug("Compponent Instance Unique Id = {}", result);
41             } else {
42                 componentInstanceDataDefinitionOptional = compositionDataDefinition.getComponentInstances().values().stream().filter(c -> c.getUniqueId().equals(componentUniqueIdOrName)).findAny();
43                 result = componentInstanceDataDefinitionOptional.get().getNormalizedName();
44                 log.debug("Compponent Instance Normalized Name = {}", result);
45             }
46
47         } catch (Exception e) {
48             log.error("Failed to map UUID or Normalized name of " + componentUniqueIdOrName, e);
49         }
50         return result;
51     }
52
53 }