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.jsontitan.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.PropertyDataDefinition;
26 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
27 import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields;
28 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
29 import org.openecomp.sdc.be.model.LifecycleStateEnum;
30 import org.openecomp.sdc.be.model.category.CategoryDefinition;
31 import org.openecomp.sdc.be.model.jsontitan.operations.NodeTypeOperation;
34 import java.util.HashMap;
35 import java.util.List;
37 import java.util.UUID;
39 public abstract class ToscaElement {
41 protected Map<String, Object> metadata;
42 protected List<CategoryDefinition> categories;
43 protected Map<String, ArtifactDataDefinition> toscaArtifacts;
44 private Map<String, ArtifactDataDefinition> artifacts;
45 private Map<String, ArtifactDataDefinition> deploymentArtifacts;
46 private Map<String, AdditionalInfoParameterDataDefinition> additionalInformation;
47 private Map<String, PropertyDataDefinition> properties;
49 protected ToscaElementTypeEnum toscaType;
51 private String creatorUserId;
52 private String creatorFullName;
53 private String lastUpdaterUserId;
54 private String lastUpdaterFullName;
56 private Map<String, String> allVersions;
58 public ToscaElement(ToscaElementTypeEnum toscaType){
59 this.toscaType = toscaType;
62 public Map<String, Object> getMetadata() {
66 public void setMetadata(Map<String, Object> metadata) {
67 this.metadata = metadata;
70 public List<CategoryDefinition> getCategories() {
74 public void setCategories(List<CategoryDefinition> categories) {
75 this.categories = categories;
77 public Map<String, ArtifactDataDefinition> getToscaArtifacts() {
78 return toscaArtifacts;
81 public void setToscaArtifacts(Map<String, ArtifactDataDefinition> toscaArtifacts) {
82 this.toscaArtifacts = toscaArtifacts;
85 public ToscaElementTypeEnum getToscaType() {
89 public void setToscaType(ToscaElementTypeEnum toscaType) {
90 this.toscaType = toscaType;
92 public Map<String, ArtifactDataDefinition> getArtifacts() {
96 public void setArtifacts(Map<String, ArtifactDataDefinition> artifacts) {
97 this.artifacts = artifacts;
100 public Map<String, ArtifactDataDefinition> getDeploymentArtifacts() {
101 return deploymentArtifacts;
104 public void setDeploymentArtifacts(Map<String, ArtifactDataDefinition> deploymentArtifacts) {
105 this.deploymentArtifacts = deploymentArtifacts;
107 public Map<String, AdditionalInfoParameterDataDefinition> getAdditionalInformation() {
108 return additionalInformation;
110 public void setAdditionalInformation(Map<String, AdditionalInfoParameterDataDefinition> additionalInformation) {
111 this.additionalInformation = additionalInformation;
113 public Map<String, PropertyDataDefinition> getProperties() {
116 public void setProperties(Map<String, PropertyDataDefinition> properties) {
117 this.properties = properties;
120 public Map<String, String> getAllVersions() {
124 public void setAllVersions(Map<String, String> allVersions) {
125 this.allVersions = allVersions;
128 // metadata properties
129 // ----------------------------
130 public Object getMetadataValue(JsonPresentationFields name) {
131 return getMetadataValueOrDefault(name, null);
134 public Object getMetadataValueOrDefault(JsonPresentationFields name, Object defaultVal) {
135 if (metadata != null) {
136 return metadata.getOrDefault(name.getPresentation(), defaultVal);
141 public void setMetadataValue(JsonPresentationFields name, Object value) {
142 if (metadata == null) {
143 metadata = new HashMap<>();
145 metadata.put(name.getPresentation(), value);
148 // --------------------
149 public String getUUID() {
150 return (String) getMetadataValue(JsonPresentationFields.UUID);
153 public void setUUID(String uuid) {
154 setMetadataValue(JsonPresentationFields.UUID, uuid);
157 public String getVersion() {
158 return (String) getMetadataValue(JsonPresentationFields.VERSION);
161 public String getNormalizedName() {
162 return (String) getMetadataValue(JsonPresentationFields.NORMALIZED_NAME);
165 public void setNormalizedName(String normaliseComponentName) {
166 setMetadataValue(JsonPresentationFields.NORMALIZED_NAME, normaliseComponentName);
169 public String getName() {
170 return (String) getMetadataValue(JsonPresentationFields.NAME);
173 public String getSystemName() {
174 return (String) getMetadataValue(JsonPresentationFields.SYSTEM_NAME);
176 public void setSystemName(String systemName) {
177 setMetadataValue(JsonPresentationFields.SYSTEM_NAME, systemName);
180 public void setLifecycleState(LifecycleStateEnum state) {
182 setMetadataValue(JsonPresentationFields.LIFECYCLE_STATE, state.name());
185 public LifecycleStateEnum getLifecycleState() {
186 return LifecycleStateEnum.findState( (String) getMetadataValue(JsonPresentationFields.LIFECYCLE_STATE));
189 public Long getCreationDate() {
190 return (Long) getMetadataValue(JsonPresentationFields.CREATION_DATE);
193 public void setCreationDate(Long currentDate) {
194 setMetadataValue(JsonPresentationFields.CREATION_DATE, currentDate);
197 public void setLastUpdateDate(Long currentDate) {
198 setMetadataValue(JsonPresentationFields.LAST_UPDATE_DATE, currentDate);
200 public Long getLastUpdateDate() {
201 return (Long) getMetadataValue(JsonPresentationFields.LAST_UPDATE_DATE);
204 public String getUniqueId() {
205 return (String) getMetadataValue(JsonPresentationFields.UNIQUE_ID);
207 public void setUniqueId(String uniqueId) {
208 setMetadataValue(JsonPresentationFields.UNIQUE_ID, uniqueId);
211 public void setHighestVersion(Boolean isHighest) {
212 setMetadataValue(JsonPresentationFields.HIGHEST_VERSION, isHighest);
215 public Boolean isHighestVersion() {
216 return (Boolean) getMetadataValue(JsonPresentationFields.HIGHEST_VERSION);
219 public ResourceTypeEnum getResourceType() {
220 String resourceType = (String) getMetadataValue(JsonPresentationFields.RESOURCE_TYPE);
221 return resourceType != null ? ResourceTypeEnum.valueOf(resourceType) : null;
224 public void setResourceType(ResourceTypeEnum resourceType) {
225 if(resourceType != null)
226 setMetadataValue(JsonPresentationFields.RESOURCE_TYPE, resourceType.name());
229 public ComponentTypeEnum getComponentType() {
230 return ComponentTypeEnum.valueOf((String) getMetadataValue(JsonPresentationFields.COMPONENT_TYPE));
233 public void setComponentType(ComponentTypeEnum componentType) {
234 if(componentType != null)
235 setMetadataValue(JsonPresentationFields.COMPONENT_TYPE, componentType.name());
238 public String getDerivedFromGenericType(){
239 return (String) getMetadataValue(JsonPresentationFields.DERIVED_FROM_GENERIC_TYPE);
242 public void setDerivedFromGenericType(String derivedFromGenericType){
243 setMetadataValue(JsonPresentationFields.DERIVED_FROM_GENERIC_TYPE, derivedFromGenericType);
246 public String getDerivedFromGenericVersion(){
247 return (String) getMetadataValue(JsonPresentationFields.DERIVED_FROM_GENERIC_VERSION);
250 public void setDerivedFromGenericVersion(String derivedFromGenericVersion){
251 setMetadataValue(JsonPresentationFields.DERIVED_FROM_GENERIC_VERSION, derivedFromGenericVersion);
254 public Boolean isArchived() { return (Boolean) getMetadataValue(JsonPresentationFields.IS_ARCHIVED); }
256 public void setArchived(Boolean archived) { setMetadataValue(JsonPresentationFields.IS_ARCHIVED, archived); }
258 public Long getArchiveTime() {
259 Object archiveTime = getMetadataValue(JsonPresentationFields.ARCHIVE_TIME);
260 if (archiveTime instanceof Integer){
261 return new Long((Integer)getMetadataValue(JsonPresentationFields.ARCHIVE_TIME));
263 return (Long)archiveTime;
266 public void setArchiveTime(Long archiveTime) { setMetadataValue(JsonPresentationFields.ARCHIVE_TIME, archiveTime); }
268 public Boolean isVspArchived() { return (Boolean) getMetadataValue(JsonPresentationFields.IS_VSP_ARCHIVED); }
270 public void setVspArchived(Boolean vspArchived) { setMetadataValue(JsonPresentationFields.IS_VSP_ARCHIVED, vspArchived); }
272 public String getCreatorUserId() {
273 return creatorUserId;
276 public void setCreatorUserId(String creatorUserId) {
277 this.creatorUserId = creatorUserId;
280 public String getCreatorFullName() {
281 return creatorFullName;
284 public void setCreatorFullName(String creatorFullName) {
285 this.creatorFullName = creatorFullName;
288 public String getLastUpdaterUserId() {
289 return lastUpdaterUserId;
292 public void setLastUpdaterUserId(String lastUpdaterUserId) {
293 this.lastUpdaterUserId = lastUpdaterUserId;
296 public String getLastUpdaterFullName() {
297 return lastUpdaterFullName;
300 public void setLastUpdaterFullName(String lastUpdaterFullName) {
301 this.lastUpdaterFullName = lastUpdaterFullName;
304 public void generateUUID() {
305 String prevUUID = getUUID();
306 String version = getVersion();
307 if ((prevUUID == null && NodeTypeOperation.uuidNormativeNewVersion.matcher(version).matches()) || NodeTypeOperation.uuidNewVersion.matcher(version).matches()) {
308 UUID uuid = UUID.randomUUID();
309 setUUID(uuid.toString());
310 MDC.put("serviceInstanceID", uuid.toString());