Rename packages from openecomp to onap.
[sdc.git] / openecomp-be / lib / openecomp-tosca-lib / src / main / java / org / openecomp / sdc / tosca / services / ToscaAnalyzerService.java
1 /*
2  * Copyright © 2016-2018 European Support Limited
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package org.openecomp.sdc.tosca.services;
18
19 import org.openecomp.sdc.tosca.datatypes.ToscaElementTypes;
20 import org.openecomp.sdc.tosca.datatypes.ToscaServiceModel;
21 import org.onap.sdc.tosca.datatypes.model.CapabilityDefinition;
22 import org.onap.sdc.tosca.datatypes.model.DefinitionOfDataType;
23 import org.onap.sdc.tosca.datatypes.model.InterfaceDefinitionType;
24 import org.onap.sdc.tosca.datatypes.model.NodeTemplate;
25 import org.onap.sdc.tosca.datatypes.model.NodeType;
26 import org.onap.sdc.tosca.datatypes.model.PropertyDefinition;
27 import org.onap.sdc.tosca.datatypes.model.RequirementAssignment;
28 import org.onap.sdc.tosca.datatypes.model.RequirementDefinition;
29 import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
30
31 import java.util.Collection;
32 import java.util.List;
33 import java.util.Map;
34 import java.util.Optional;
35
36 public interface ToscaAnalyzerService {
37
38   /*
39       node template with type equal to node type or derived from node type
40        */
41   Map<String, NodeTemplate> getNodeTemplatesByType(ServiceTemplate serviceTemplate, String nodeType,
42                                                    ToscaServiceModel toscaServiceModel);
43
44   Optional<NodeType> fetchNodeType(String nodeTypeKey, Collection<ServiceTemplate> serviceTemplates);
45
46   boolean isTypeOf(NodeTemplate nodeTemplate, String nodeType, ServiceTemplate serviceTemplate,
47                    ToscaServiceModel toscaServiceModel);
48
49   List<RequirementAssignment> getRequirements(NodeTemplate nodeTemplate, String requirementId);
50
51   Optional<NodeTemplate> getNodeTemplateById(ServiceTemplate serviceTemplate,
52                                              String nodeTemplateId);
53
54   Optional<String> getSubstituteServiceTemplateName(String substituteNodeTemplateId,
55                                                     NodeTemplate substitutableNodeTemplate);
56
57   Map<String, NodeTemplate> getSubstitutableNodeTemplates(ServiceTemplate serviceTemplate);
58
59   Optional<Map.Entry<String, NodeTemplate>> getSubstitutionMappedNodeTemplateByExposedReq(
60       String substituteServiceTemplateFileName, ServiceTemplate substituteServiceTemplate,
61       String requirementId);
62
63   /*
64       match only for the input which is not null
65        */
66   boolean isDesiredRequirementAssignment(RequirementAssignment requirementAssignment,
67                                          String capability, String node, String relationship);
68
69   Object getFlatEntity(ToscaElementTypes elementType, String type, ServiceTemplate serviceTemplate,
70                        ToscaServiceModel toscaModel);
71
72   boolean isSubstitutableNodeTemplate(NodeTemplate nodeTemplate);
73
74   NodeType createInitSubstitutionNodeType(ServiceTemplate substitutionServiceTemplate,
75                                           String nodeTypeDerivedFromValue);
76
77   boolean isRequirementExistInNodeTemplate(NodeTemplate nodeTemplate,
78                                            String requirementId,
79                                            RequirementAssignment requirementAssignment);
80
81   Map<String, PropertyDefinition> manageSubstitutionNodeTypeProperties(
82       ServiceTemplate substitutionServiceTemplate);
83
84   Map<String, CapabilityDefinition> calculateExposedCapabilities(
85       Map<String, CapabilityDefinition> nodeTypeCapabilitiesDefinition,
86       Map<String, Map<String, RequirementAssignment>> fullFilledRequirementsDefinitionMap);
87
88   List<Map<String, RequirementDefinition>> calculateExposedRequirements(
89       List<Map<String, RequirementDefinition>> nodeTypeRequirementsDefinitionList,
90       Map<String, RequirementAssignment> nodeTemplateRequirementsAssignment);
91
92   boolean isTypeOf(InterfaceDefinitionType interfaceDefinition, String interfaceType,
93                    ServiceTemplate
94                        serviceTemplate, ToscaServiceModel toscaServiceModel);
95
96   boolean isTypeOf(DefinitionOfDataType parameterDefinition, String dataType, ServiceTemplate
97       serviceTemplate, ToscaServiceModel toscaServiceModel);
98
99 }