Add lombok support to simple classes
[sdc.git] / catalog-model / src / main / java / org / openecomp / sdc / be / model / jsonjanusgraph / datamodel / ToscaElement.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.jsonjanusgraph.datamodel;
22
23 import org.openecomp.sdc.be.datatypes.elements.AdditionalInfoParameterDataDefinition;
24 import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition;
25 import org.openecomp.sdc.be.datatypes.elements.ListCapabilityDataDefinition;
26 import org.openecomp.sdc.be.datatypes.elements.ListRequirementDataDefinition;
27 import org.openecomp.sdc.be.datatypes.elements.MapPropertiesDataDefinition;
28 import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
29 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
30 import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields;
31 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
32 import org.openecomp.sdc.be.model.LifecycleStateEnum;
33 import org.openecomp.sdc.be.model.category.CategoryDefinition;
34 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.NodeTypeOperation;
35 import org.slf4j.MDC;
36
37 import java.util.HashMap;
38 import java.util.List;
39 import java.util.Map;
40 import java.util.UUID;
41
42 public abstract class ToscaElement {
43
44     protected Map<String, Object> metadata;
45     protected List<CategoryDefinition> categories;
46     protected Map<String, ArtifactDataDefinition> toscaArtifacts;
47     private Map<String, ArtifactDataDefinition> artifacts;
48     private Map<String, ArtifactDataDefinition> deploymentArtifacts;
49     private Map<String, AdditionalInfoParameterDataDefinition> additionalInformation;
50     private Map<String, PropertyDataDefinition> properties;
51     private Map<String, ListCapabilityDataDefinition> capabilities;
52     private Map<String, MapPropertiesDataDefinition> capabiltiesProperties;
53     private Map<String, ListRequirementDataDefinition> requirements;
54
55     protected ToscaElementTypeEnum toscaType;
56     // User
57     private String creatorUserId;
58     private String creatorFullName;
59     private String lastUpdaterUserId;
60     private String lastUpdaterFullName;
61
62     private Map<String, String> allVersions;
63
64     public ToscaElement(ToscaElementTypeEnum toscaType){
65         this.toscaType = toscaType;
66     }
67
68     public Map<String, Object> getMetadata() {
69         return metadata;
70     }
71
72     public void setMetadata(Map<String, Object> metadata) {
73         this.metadata = metadata;
74     }
75
76     public List<CategoryDefinition> getCategories() {
77         return categories;
78     }
79
80     public void setCategories(List<CategoryDefinition> categories) {
81         this.categories = categories;
82     }
83     public Map<String, ArtifactDataDefinition> getToscaArtifacts() {
84         return toscaArtifacts;
85     }
86
87     public void setToscaArtifacts(Map<String, ArtifactDataDefinition> toscaArtifacts) {
88         this.toscaArtifacts = toscaArtifacts;
89     }
90
91     public ToscaElementTypeEnum getToscaType() {
92         return toscaType;
93     }
94
95     public void setToscaType(ToscaElementTypeEnum toscaType) {
96         this.toscaType = toscaType;
97     }
98     public Map<String, ArtifactDataDefinition> getArtifacts() {
99         return artifacts;
100     }
101
102     public void setArtifacts(Map<String, ArtifactDataDefinition> artifacts) {
103         this.artifacts = artifacts;
104     }
105
106     public Map<String, ArtifactDataDefinition> getDeploymentArtifacts() {
107         return deploymentArtifacts;
108     }
109
110     public void setDeploymentArtifacts(Map<String, ArtifactDataDefinition> deploymentArtifacts) {
111         this.deploymentArtifacts = deploymentArtifacts;
112     }
113     public Map<String, AdditionalInfoParameterDataDefinition> getAdditionalInformation() {
114         return additionalInformation;
115     }
116     public void setAdditionalInformation(Map<String, AdditionalInfoParameterDataDefinition> additionalInformation) {
117         this.additionalInformation = additionalInformation;
118     }
119     public Map<String, PropertyDataDefinition> getProperties() {
120         return properties;
121     }
122     public void setProperties(Map<String, PropertyDataDefinition> properties) {
123         this.properties = properties;
124     }
125
126     public Map<String, String> getAllVersions() {
127         return allVersions;
128     }
129
130     public void setAllVersions(Map<String, String> allVersions) {
131         this.allVersions = allVersions;
132     }
133
134     public Map<String, ListCapabilityDataDefinition> getCapabilities() {
135         return capabilities;
136     }
137
138     public void setCapabilities(Map<String, ListCapabilityDataDefinition> capabilities) {
139         this.capabilities = capabilities;
140     }
141
142     public Map<String, ListRequirementDataDefinition> getRequirements() {
143         return requirements;
144     }
145
146     public void setRequirements(Map<String, ListRequirementDataDefinition> requirements) {
147         this.requirements = requirements;
148     }
149
150     public Map<String, MapPropertiesDataDefinition> getCapabilitiesProperties() {
151         return capabiltiesProperties;
152     }
153
154     public void setCapabilitiesProperties(Map<String, MapPropertiesDataDefinition> capabiltiesProperties) {
155         this.capabiltiesProperties = capabiltiesProperties;
156     }
157
158     // metadata properties
159     // ----------------------------
160     public Object getMetadataValue(JsonPresentationFields name) {
161         return getMetadataValueOrDefault(name, null);
162     }
163
164     public Object getMetadataValueOrDefault(JsonPresentationFields name, Object defaultVal) {
165         if (metadata != null) {
166             return metadata.getOrDefault(name.getPresentation(), defaultVal);
167         }
168         return null;
169     }
170
171     public void setMetadataValue(JsonPresentationFields name, Object value) {
172         if (metadata == null) {
173             metadata = new HashMap<>();
174         }
175         metadata.put(name.getPresentation(), value);
176
177     }
178     // --------------------
179     public String getUUID() {
180         return (String) getMetadataValue(JsonPresentationFields.UUID);
181     }
182
183     public void setUUID(String uuid) {
184         setMetadataValue(JsonPresentationFields.UUID, uuid);
185     }
186
187     public String getVersion() {
188         return (String) getMetadataValue(JsonPresentationFields.VERSION);
189     }
190
191     public String getNormalizedName() {
192         return (String) getMetadataValue(JsonPresentationFields.NORMALIZED_NAME);
193     }
194
195     public void setNormalizedName(String normaliseComponentName) {
196         setMetadataValue(JsonPresentationFields.NORMALIZED_NAME, normaliseComponentName);
197     }
198
199     public String getName() {
200         return (String) getMetadataValue(JsonPresentationFields.NAME);
201     }
202
203     public String getSystemName() {
204         return (String) getMetadataValue(JsonPresentationFields.SYSTEM_NAME);
205     }
206     public void setSystemName(String systemName) {
207         setMetadataValue(JsonPresentationFields.SYSTEM_NAME, systemName);
208     }
209
210     public void setLifecycleState(LifecycleStateEnum state) {
211         if(state != null)
212             setMetadataValue(JsonPresentationFields.LIFECYCLE_STATE, state.name());
213     }
214
215     public LifecycleStateEnum getLifecycleState() {
216         return LifecycleStateEnum.findState( (String) getMetadataValue(JsonPresentationFields.LIFECYCLE_STATE));
217     }
218
219     public Long getCreationDate() {
220         return (Long) getMetadataValue(JsonPresentationFields.CREATION_DATE);
221     }
222
223     public void setCreationDate(Long currentDate) {
224         setMetadataValue(JsonPresentationFields.CREATION_DATE, currentDate);
225     }
226
227     public void setLastUpdateDate(Long currentDate) {
228         setMetadataValue(JsonPresentationFields.LAST_UPDATE_DATE, currentDate);
229     }
230     public Long getLastUpdateDate() {
231         return (Long) getMetadataValue(JsonPresentationFields.LAST_UPDATE_DATE);
232     }
233
234     public String getUniqueId() {
235         return (String) getMetadataValue(JsonPresentationFields.UNIQUE_ID);
236     }
237     public void setUniqueId(String uniqueId) {
238          setMetadataValue(JsonPresentationFields.UNIQUE_ID, uniqueId);
239     }
240
241     public void setHighestVersion(Boolean isHighest) {
242          setMetadataValue(JsonPresentationFields.HIGHEST_VERSION, isHighest);
243
244     }
245     public Boolean isHighestVersion() {
246         return (Boolean) getMetadataValue(JsonPresentationFields.HIGHEST_VERSION);
247
248     }
249     public ResourceTypeEnum getResourceType() {
250         String resourceType = (String) getMetadataValue(JsonPresentationFields.RESOURCE_TYPE);
251         return resourceType != null ? ResourceTypeEnum.valueOf(resourceType) : null;
252     }
253
254     public void setResourceType(ResourceTypeEnum resourceType) {
255         if(resourceType != null)
256             setMetadataValue(JsonPresentationFields.RESOURCE_TYPE, resourceType.name());
257     }
258
259     public ComponentTypeEnum getComponentType() {
260         return ComponentTypeEnum.valueOf((String) getMetadataValue(JsonPresentationFields.COMPONENT_TYPE));
261     }
262
263     public void setComponentType(ComponentTypeEnum componentType) {
264         if(componentType != null)
265             setMetadataValue(JsonPresentationFields.COMPONENT_TYPE, componentType.name());
266     }
267
268     public String getDerivedFromGenericType(){
269         return (String) getMetadataValue(JsonPresentationFields.DERIVED_FROM_GENERIC_TYPE);
270     }
271
272     public void setDerivedFromGenericType(String derivedFromGenericType){
273         setMetadataValue(JsonPresentationFields.DERIVED_FROM_GENERIC_TYPE, derivedFromGenericType);
274     }
275
276     public String getDerivedFromGenericVersion(){
277         return (String) getMetadataValue(JsonPresentationFields.DERIVED_FROM_GENERIC_VERSION);
278     }
279
280     public void setDerivedFromGenericVersion(String derivedFromGenericVersion){
281         setMetadataValue(JsonPresentationFields.DERIVED_FROM_GENERIC_VERSION, derivedFromGenericVersion);
282     }
283
284     public Boolean isArchived() { return (Boolean) getMetadataValue(JsonPresentationFields.IS_ARCHIVED); }
285
286     public void setArchived(Boolean archived) { setMetadataValue(JsonPresentationFields.IS_ARCHIVED, archived); }
287
288     public Long getArchiveTime() {
289         Object archiveTime = getMetadataValue(JsonPresentationFields.ARCHIVE_TIME);
290         if (archiveTime instanceof Integer){
291             return new Long((Integer)getMetadataValue(JsonPresentationFields.ARCHIVE_TIME));
292         }
293         return (Long)archiveTime;
294     }
295
296     public void setArchiveTime(Long archiveTime) { setMetadataValue(JsonPresentationFields.ARCHIVE_TIME, archiveTime); }
297
298     public Boolean isVspArchived() { return (Boolean) getMetadataValue(JsonPresentationFields.IS_VSP_ARCHIVED); }
299
300     public void setVspArchived(Boolean vspArchived) { setMetadataValue(JsonPresentationFields.IS_VSP_ARCHIVED, vspArchived); }
301
302     public String getCreatorUserId() {
303         return creatorUserId;
304     }
305
306     public void setCreatorUserId(String creatorUserId) {
307         this.creatorUserId = creatorUserId;
308     }
309
310     public String getCreatorFullName() {
311         return creatorFullName;
312     }
313
314     public void setCreatorFullName(String creatorFullName) {
315         this.creatorFullName = creatorFullName;
316     }
317
318     public String getLastUpdaterUserId() {
319         return lastUpdaterUserId;
320     }
321
322     public void setLastUpdaterUserId(String lastUpdaterUserId) {
323         this.lastUpdaterUserId = lastUpdaterUserId;
324     }
325
326     public String getLastUpdaterFullName() {
327         return lastUpdaterFullName;
328     }
329
330     public void setLastUpdaterFullName(String lastUpdaterFullName) {
331         this.lastUpdaterFullName = lastUpdaterFullName;
332     }
333
334     public void generateUUID() {
335         String prevUUID = getUUID();
336         String version = getVersion();
337         if ((prevUUID == null && NodeTypeOperation.uuidNormativeNewVersion.matcher(version).matches()) || NodeTypeOperation.uuidNewVersion.matcher(version).matches()) {
338             UUID uuid = UUID.randomUUID();
339             setUUID(uuid.toString());
340             MDC.put("serviceInstanceID", uuid.toString());
341         }
342     }
343
344 }