Upgrade SDC from Titan to Janus Graph
[sdc.git] / catalog-model / src / main / java / org / openecomp / sdc / be / model / Service.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.openecomp.sdc.be.model;
22
23 import org.apache.commons.lang.StringUtils;
24 import org.openecomp.sdc.be.datatypes.components.ComponentMetadataDataDefinition;
25 import java.util.HashMap;
26 import java.util.Map;
27
28 import org.openecomp.sdc.be.datatypes.components.ServiceMetadataDataDefinition;
29 import org.openecomp.sdc.be.datatypes.elements.ForwardingPathDataDefinition;
30 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
31 import org.openecomp.sdc.be.datatypes.enums.InstantiationTypes;
32 import org.openecomp.sdc.be.model.jsonjanusgraph.datamodel.ToscaElementTypeEnum;
33
34 public class Service extends Component {
35
36     public Service() {
37         super(new ServiceMetadataDefinition());
38         this.getComponentMetadataDefinition().getMetadataDataDefinition().setComponentType(ComponentTypeEnum.SERVICE);
39         this.setToscaType(ToscaElementTypeEnum.TOPOLOGY_TEMPLATE.getValue());
40     }
41
42         public Service(ComponentMetadataDefinition serviceMetadataDefinition) {
43                 super(serviceMetadataDefinition);
44                 ComponentMetadataDataDefinition metadataDataDefinition = this.getComponentMetadataDefinition().getMetadataDataDefinition();
45                 if(metadataDataDefinition != null) {
46                         metadataDataDefinition.setComponentType(ComponentTypeEnum.SERVICE);
47                 }
48                 this.setToscaType(ToscaElementTypeEnum.TOPOLOGY_TEMPLATE.getValue());
49         }
50
51         private Map<String, ArtifactDefinition> serviceApiArtifacts;
52         private Map<String, ForwardingPathDataDefinition> forwardingPaths;
53
54         public Map<String, ArtifactDefinition> getServiceApiArtifacts() {
55                 return serviceApiArtifacts;
56         }
57
58         public void setServiceApiArtifacts(Map<String, ArtifactDefinition> serviceApiArtifacts) {
59                 this.serviceApiArtifacts = serviceApiArtifacts;
60         }
61
62         public String getProjectCode() {
63                 return getServiceMetadataDefinition().getProjectCode();
64         }
65
66         public Map<String, ForwardingPathDataDefinition> getForwardingPaths() {
67                 return forwardingPaths;
68         }
69
70         public void setForwardingPaths(Map<String, ForwardingPathDataDefinition> forwardingPaths) {
71                 this.forwardingPaths = forwardingPaths;
72         }
73
74         public ForwardingPathDataDefinition addForwardingPath(ForwardingPathDataDefinition forwardingPathDataDefinition){
75                 if(forwardingPaths == null){
76                         forwardingPaths = new HashMap<>();
77                 }
78                 return forwardingPaths.put(forwardingPathDataDefinition.getUniqueId(),forwardingPathDataDefinition);
79         }
80
81         public void setProjectCode(String projectName) {
82                 getServiceMetadataDefinition().setProjectCode(projectName);
83         }
84
85         public DistributionStatusEnum getDistributionStatus() {
86                 String distributionStatus = getServiceMetadataDefinition().getDistributionStatus();
87                 if (distributionStatus != null) {
88                         return DistributionStatusEnum.valueOf(distributionStatus);
89                 } else {
90                         return null;
91                 }
92         }
93
94         public void setDistributionStatus(DistributionStatusEnum distributionStatus) {
95                 if (distributionStatus != null)
96                         getServiceMetadataDefinition().setDistributionStatus(distributionStatus.name());
97         }
98
99         public void setEcompGeneratedNaming(Boolean ecompGeneratedNaming) {
100                 getServiceMetadataDefinition().setEcompGeneratedNaming(ecompGeneratedNaming);
101         }
102
103         public Boolean isEcompGeneratedNaming() {
104                 return getServiceMetadataDefinition().isEcompGeneratedNaming();
105         }
106
107         public void setNamingPolicy(String namingPolicy) {
108                 getServiceMetadataDefinition().setNamingPolicy(namingPolicy);
109         }
110         
111         public String getNamingPolicy() {
112                 return getServiceMetadataDefinition().getNamingPolicy();
113         }
114
115     public String getEnvironmentContext() { return getServiceMetadataDefinition().getEnvironmentContext();  }
116
117         public void setEnvironmentContext(String environmentContext) {
118                 getServiceMetadataDefinition().setEnvironmentContext(environmentContext);
119         }
120
121         public void setServiceType(String serviceType){
122                 getServiceMetadataDefinition().setServiceType(serviceType);
123         }
124         
125         public String getServiceType(){
126                 return getServiceMetadataDefinition().getServiceType();
127         }
128         
129         public void setServiceRole(String serviceRole){
130                 getServiceMetadataDefinition().setServiceRole(serviceRole);
131         }
132         
133         public String getServiceRole(){
134                 return getServiceMetadataDefinition().getServiceRole();
135         }
136
137         public void setInstantiationType(String instantiationType){
138                 getServiceMetadataDefinition().setInstantiationType(instantiationType);
139         }
140
141         public String getInstantiationType(){
142                 return getServiceMetadataDefinition().getInstantiationType();
143         }
144
145         private ServiceMetadataDataDefinition getServiceMetadataDefinition() {
146                 return (ServiceMetadataDataDefinition) getComponentMetadataDefinition().getMetadataDataDefinition();
147         }
148
149
150         public void validateAndSetInstantiationType() { 
151                 if (this.getInstantiationType() == StringUtils.EMPTY) {
152                         this.setInstantiationType(InstantiationTypes.A_LA_CARTE.getValue());
153                 }
154         }
155
156
157         @Override
158         public String toString() {
159                 return "Service [componentMetadataDefinition=" + getComponentMetadataDefinition()
160                 // + ", resourceInstances=" + resourceInstances + ",
161                 // resourceInstancesRelations=" + resourceInstancesRelations + ",
162                 // resourceInstancesRelations="
163                 // + resourceInstancesRelations
164                                 + " ]";
165         }
166
167         @Override
168         public void setSpecificComponetTypeArtifacts(Map<String, ArtifactDefinition> specificComponentTypeArtifacts) {
169                 setServiceApiArtifacts(specificComponentTypeArtifacts);
170         }
171 }