2 * ============LICENSE_START=======================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.openecomp.sdc.be.model.jsonjanusgraph.datamodel;
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;
37 import java.util.HashMap;
38 import java.util.List;
40 import java.util.UUID;
42 public abstract class ToscaElement {
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;
55 protected ToscaElementTypeEnum toscaType;
57 private String creatorUserId;
58 private String creatorFullName;
59 private String lastUpdaterUserId;
60 private String lastUpdaterFullName;
62 private Map<String, String> allVersions;
64 public ToscaElement(ToscaElementTypeEnum toscaType){
65 this.toscaType = toscaType;
68 public Map<String, Object> getMetadata() {
72 public void setMetadata(Map<String, Object> metadata) {
73 this.metadata = metadata;
76 public List<CategoryDefinition> getCategories() {
80 public void setCategories(List<CategoryDefinition> categories) {
81 this.categories = categories;
83 public Map<String, ArtifactDataDefinition> getToscaArtifacts() {
84 return toscaArtifacts;
87 public void setToscaArtifacts(Map<String, ArtifactDataDefinition> toscaArtifacts) {
88 this.toscaArtifacts = toscaArtifacts;
91 public ToscaElementTypeEnum getToscaType() {
95 public void setToscaType(ToscaElementTypeEnum toscaType) {
96 this.toscaType = toscaType;
98 public Map<String, ArtifactDataDefinition> getArtifacts() {
102 public void setArtifacts(Map<String, ArtifactDataDefinition> artifacts) {
103 this.artifacts = artifacts;
106 public Map<String, ArtifactDataDefinition> getDeploymentArtifacts() {
107 return deploymentArtifacts;
110 public void setDeploymentArtifacts(Map<String, ArtifactDataDefinition> deploymentArtifacts) {
111 this.deploymentArtifacts = deploymentArtifacts;
113 public Map<String, AdditionalInfoParameterDataDefinition> getAdditionalInformation() {
114 return additionalInformation;
116 public void setAdditionalInformation(Map<String, AdditionalInfoParameterDataDefinition> additionalInformation) {
117 this.additionalInformation = additionalInformation;
119 public Map<String, PropertyDataDefinition> getProperties() {
122 public void setProperties(Map<String, PropertyDataDefinition> properties) {
123 this.properties = properties;
126 public Map<String, String> getAllVersions() {
130 public void setAllVersions(Map<String, String> allVersions) {
131 this.allVersions = allVersions;
134 public Map<String, ListCapabilityDataDefinition> getCapabilities() {
138 public void setCapabilities(Map<String, ListCapabilityDataDefinition> capabilities) {
139 this.capabilities = capabilities;
142 public Map<String, ListRequirementDataDefinition> getRequirements() {
146 public void setRequirements(Map<String, ListRequirementDataDefinition> requirements) {
147 this.requirements = requirements;
150 public Map<String, MapPropertiesDataDefinition> getCapabilitiesProperties() {
151 return capabiltiesProperties;
154 public void setCapabilitiesProperties(Map<String, MapPropertiesDataDefinition> capabiltiesProperties) {
155 this.capabiltiesProperties = capabiltiesProperties;
158 // metadata properties
159 // ----------------------------
160 public Object getMetadataValue(JsonPresentationFields name) {
161 return getMetadataValueOrDefault(name, null);
164 public Object getMetadataValueOrDefault(JsonPresentationFields name, Object defaultVal) {
165 if (metadata != null) {
166 return metadata.getOrDefault(name.getPresentation(), defaultVal);
171 public void setMetadataValue(JsonPresentationFields name, Object value) {
172 if (metadata == null) {
173 metadata = new HashMap<>();
175 metadata.put(name.getPresentation(), value);
178 // --------------------
179 public String getUUID() {
180 return (String) getMetadataValue(JsonPresentationFields.UUID);
183 public void setUUID(String uuid) {
184 setMetadataValue(JsonPresentationFields.UUID, uuid);
187 public String getVersion() {
188 return (String) getMetadataValue(JsonPresentationFields.VERSION);
191 public String getNormalizedName() {
192 return (String) getMetadataValue(JsonPresentationFields.NORMALIZED_NAME);
195 public void setNormalizedName(String normaliseComponentName) {
196 setMetadataValue(JsonPresentationFields.NORMALIZED_NAME, normaliseComponentName);
199 public String getName() {
200 return (String) getMetadataValue(JsonPresentationFields.NAME);
203 public String getSystemName() {
204 return (String) getMetadataValue(JsonPresentationFields.SYSTEM_NAME);
206 public void setSystemName(String systemName) {
207 setMetadataValue(JsonPresentationFields.SYSTEM_NAME, systemName);
210 public void setLifecycleState(LifecycleStateEnum state) {
212 setMetadataValue(JsonPresentationFields.LIFECYCLE_STATE, state.name());
215 public LifecycleStateEnum getLifecycleState() {
216 return LifecycleStateEnum.findState( (String) getMetadataValue(JsonPresentationFields.LIFECYCLE_STATE));
219 public Long getCreationDate() {
220 return (Long) getMetadataValue(JsonPresentationFields.CREATION_DATE);
223 public void setCreationDate(Long currentDate) {
224 setMetadataValue(JsonPresentationFields.CREATION_DATE, currentDate);
227 public void setLastUpdateDate(Long currentDate) {
228 setMetadataValue(JsonPresentationFields.LAST_UPDATE_DATE, currentDate);
230 public Long getLastUpdateDate() {
231 return (Long) getMetadataValue(JsonPresentationFields.LAST_UPDATE_DATE);
234 public String getUniqueId() {
235 return (String) getMetadataValue(JsonPresentationFields.UNIQUE_ID);
237 public void setUniqueId(String uniqueId) {
238 setMetadataValue(JsonPresentationFields.UNIQUE_ID, uniqueId);
241 public void setHighestVersion(Boolean isHighest) {
242 setMetadataValue(JsonPresentationFields.HIGHEST_VERSION, isHighest);
245 public Boolean isHighestVersion() {
246 return (Boolean) getMetadataValue(JsonPresentationFields.HIGHEST_VERSION);
249 public ResourceTypeEnum getResourceType() {
250 String resourceType = (String) getMetadataValue(JsonPresentationFields.RESOURCE_TYPE);
251 return resourceType != null ? ResourceTypeEnum.valueOf(resourceType) : null;
254 public void setResourceType(ResourceTypeEnum resourceType) {
255 if(resourceType != null)
256 setMetadataValue(JsonPresentationFields.RESOURCE_TYPE, resourceType.name());
259 public ComponentTypeEnum getComponentType() {
260 return ComponentTypeEnum.valueOf((String) getMetadataValue(JsonPresentationFields.COMPONENT_TYPE));
263 public void setComponentType(ComponentTypeEnum componentType) {
264 if(componentType != null)
265 setMetadataValue(JsonPresentationFields.COMPONENT_TYPE, componentType.name());
268 public String getDerivedFromGenericType(){
269 return (String) getMetadataValue(JsonPresentationFields.DERIVED_FROM_GENERIC_TYPE);
272 public void setDerivedFromGenericType(String derivedFromGenericType){
273 setMetadataValue(JsonPresentationFields.DERIVED_FROM_GENERIC_TYPE, derivedFromGenericType);
276 public String getDerivedFromGenericVersion(){
277 return (String) getMetadataValue(JsonPresentationFields.DERIVED_FROM_GENERIC_VERSION);
280 public void setDerivedFromGenericVersion(String derivedFromGenericVersion){
281 setMetadataValue(JsonPresentationFields.DERIVED_FROM_GENERIC_VERSION, derivedFromGenericVersion);
284 public Boolean isArchived() { return (Boolean) getMetadataValue(JsonPresentationFields.IS_ARCHIVED); }
286 public void setArchived(Boolean archived) { setMetadataValue(JsonPresentationFields.IS_ARCHIVED, archived); }
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));
293 return (Long)archiveTime;
296 public void setArchiveTime(Long archiveTime) { setMetadataValue(JsonPresentationFields.ARCHIVE_TIME, archiveTime); }
298 public Boolean isVspArchived() { return (Boolean) getMetadataValue(JsonPresentationFields.IS_VSP_ARCHIVED); }
300 public void setVspArchived(Boolean vspArchived) { setMetadataValue(JsonPresentationFields.IS_VSP_ARCHIVED, vspArchived); }
302 public String getCreatorUserId() {
303 return creatorUserId;
306 public void setCreatorUserId(String creatorUserId) {
307 this.creatorUserId = creatorUserId;
310 public String getCreatorFullName() {
311 return creatorFullName;
314 public void setCreatorFullName(String creatorFullName) {
315 this.creatorFullName = creatorFullName;
318 public String getLastUpdaterUserId() {
319 return lastUpdaterUserId;
322 public void setLastUpdaterUserId(String lastUpdaterUserId) {
323 this.lastUpdaterUserId = lastUpdaterUserId;
326 public String getLastUpdaterFullName() {
327 return lastUpdaterFullName;
330 public void setLastUpdaterFullName(String lastUpdaterFullName) {
331 this.lastUpdaterFullName = lastUpdaterFullName;
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());