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;
35 import org.openecomp.sdc.common.log.api.ILogConfiguration;
38 import java.util.HashMap;
39 import java.util.List;
41 import java.util.UUID;
43 public abstract class ToscaElement {
45 protected Map<String, Object> metadata;
46 protected List<CategoryDefinition> categories;
47 protected Map<String, ArtifactDataDefinition> toscaArtifacts;
48 private Map<String, ArtifactDataDefinition> artifacts;
49 private Map<String, ArtifactDataDefinition> deploymentArtifacts;
50 private Map<String, AdditionalInfoParameterDataDefinition> additionalInformation;
51 private Map<String, PropertyDataDefinition> properties;
52 private Map<String, ListCapabilityDataDefinition> capabilities;
53 private Map<String, MapPropertiesDataDefinition> capabiltiesProperties;
54 private Map<String, ListRequirementDataDefinition> requirements;
56 protected ToscaElementTypeEnum toscaType;
58 private String creatorUserId;
59 private String creatorFullName;
60 private String lastUpdaterUserId;
61 private String lastUpdaterFullName;
63 private Map<String, String> allVersions;
65 public ToscaElement(ToscaElementTypeEnum toscaType){
66 this.toscaType = toscaType;
69 public Map<String, Object> getMetadata() {
73 public void setMetadata(Map<String, Object> metadata) {
74 this.metadata = metadata;
77 public List<CategoryDefinition> getCategories() {
81 public void setCategories(List<CategoryDefinition> categories) {
82 this.categories = categories;
84 public Map<String, ArtifactDataDefinition> getToscaArtifacts() {
85 return toscaArtifacts;
88 public void setToscaArtifacts(Map<String, ArtifactDataDefinition> toscaArtifacts) {
89 this.toscaArtifacts = toscaArtifacts;
92 public ToscaElementTypeEnum getToscaType() {
96 public void setToscaType(ToscaElementTypeEnum toscaType) {
97 this.toscaType = toscaType;
99 public Map<String, ArtifactDataDefinition> getArtifacts() {
103 public void setArtifacts(Map<String, ArtifactDataDefinition> artifacts) {
104 this.artifacts = artifacts;
107 public Map<String, ArtifactDataDefinition> getDeploymentArtifacts() {
108 return deploymentArtifacts;
111 public void setDeploymentArtifacts(Map<String, ArtifactDataDefinition> deploymentArtifacts) {
112 this.deploymentArtifacts = deploymentArtifacts;
114 public Map<String, AdditionalInfoParameterDataDefinition> getAdditionalInformation() {
115 return additionalInformation;
117 public void setAdditionalInformation(Map<String, AdditionalInfoParameterDataDefinition> additionalInformation) {
118 this.additionalInformation = additionalInformation;
120 public Map<String, PropertyDataDefinition> getProperties() {
123 public void setProperties(Map<String, PropertyDataDefinition> properties) {
124 this.properties = properties;
127 public Map<String, String> getAllVersions() {
131 public void setAllVersions(Map<String, String> allVersions) {
132 this.allVersions = allVersions;
135 public Map<String, ListCapabilityDataDefinition> getCapabilities() {
139 public void setCapabilities(Map<String, ListCapabilityDataDefinition> capabilities) {
140 this.capabilities = capabilities;
143 public Map<String, ListRequirementDataDefinition> getRequirements() {
147 public void setRequirements(Map<String, ListRequirementDataDefinition> requirements) {
148 this.requirements = requirements;
151 public Map<String, MapPropertiesDataDefinition> getCapabilitiesProperties() {
152 return capabiltiesProperties;
155 public void setCapabilitiesProperties(Map<String, MapPropertiesDataDefinition> capabiltiesProperties) {
156 this.capabiltiesProperties = capabiltiesProperties;
159 // metadata properties
160 // ----------------------------
161 public Object getMetadataValue(JsonPresentationFields name) {
162 return getMetadataValueOrDefault(name, null);
165 public Object getMetadataValueOrDefault(JsonPresentationFields name, Object defaultVal) {
166 if (metadata != null) {
167 return metadata.getOrDefault(name.getPresentation(), defaultVal);
172 public void setMetadataValue(JsonPresentationFields name, Object value) {
173 if (metadata == null) {
174 metadata = new HashMap<>();
176 metadata.put(name.getPresentation(), value);
179 // --------------------
180 public String getUUID() {
181 return (String) getMetadataValue(JsonPresentationFields.UUID);
184 public void setUUID(String uuid) {
185 setMetadataValue(JsonPresentationFields.UUID, uuid);
188 public String getVersion() {
189 return (String) getMetadataValue(JsonPresentationFields.VERSION);
192 public String getNormalizedName() {
193 return (String) getMetadataValue(JsonPresentationFields.NORMALIZED_NAME);
196 public void setNormalizedName(String normaliseComponentName) {
197 setMetadataValue(JsonPresentationFields.NORMALIZED_NAME, normaliseComponentName);
200 public String getName() {
201 return (String) getMetadataValue(JsonPresentationFields.NAME);
204 public String getSystemName() {
205 return (String) getMetadataValue(JsonPresentationFields.SYSTEM_NAME);
207 public void setSystemName(String systemName) {
208 setMetadataValue(JsonPresentationFields.SYSTEM_NAME, systemName);
211 public void setLifecycleState(LifecycleStateEnum state) {
213 setMetadataValue(JsonPresentationFields.LIFECYCLE_STATE, state.name());
216 public LifecycleStateEnum getLifecycleState() {
217 return LifecycleStateEnum.findState( (String) getMetadataValue(JsonPresentationFields.LIFECYCLE_STATE));
220 public Long getCreationDate() {
221 return (Long) getMetadataValue(JsonPresentationFields.CREATION_DATE);
224 public void setCreationDate(Long currentDate) {
225 setMetadataValue(JsonPresentationFields.CREATION_DATE, currentDate);
228 public void setLastUpdateDate(Long currentDate) {
229 setMetadataValue(JsonPresentationFields.LAST_UPDATE_DATE, currentDate);
231 public Long getLastUpdateDate() {
232 return (Long) getMetadataValue(JsonPresentationFields.LAST_UPDATE_DATE);
235 public String getUniqueId() {
236 return (String) getMetadataValue(JsonPresentationFields.UNIQUE_ID);
238 public void setUniqueId(String uniqueId) {
239 setMetadataValue(JsonPresentationFields.UNIQUE_ID, uniqueId);
242 public void setHighestVersion(Boolean isHighest) {
243 setMetadataValue(JsonPresentationFields.HIGHEST_VERSION, isHighest);
246 public Boolean isHighestVersion() {
247 return (Boolean) getMetadataValue(JsonPresentationFields.HIGHEST_VERSION);
250 public ResourceTypeEnum getResourceType() {
251 String resourceType = (String) getMetadataValue(JsonPresentationFields.RESOURCE_TYPE);
252 return resourceType != null ? ResourceTypeEnum.valueOf(resourceType) : null;
255 public void setResourceType(ResourceTypeEnum resourceType) {
256 if(resourceType != null)
257 setMetadataValue(JsonPresentationFields.RESOURCE_TYPE, resourceType.name());
260 public ComponentTypeEnum getComponentType() {
261 return ComponentTypeEnum.valueOf((String) getMetadataValue(JsonPresentationFields.COMPONENT_TYPE));
264 public void setComponentType(ComponentTypeEnum componentType) {
265 if(componentType != null)
266 setMetadataValue(JsonPresentationFields.COMPONENT_TYPE, componentType.name());
269 public String getDerivedFromGenericType(){
270 return (String) getMetadataValue(JsonPresentationFields.DERIVED_FROM_GENERIC_TYPE);
273 public void setDerivedFromGenericType(String derivedFromGenericType){
274 setMetadataValue(JsonPresentationFields.DERIVED_FROM_GENERIC_TYPE, derivedFromGenericType);
277 public String getDerivedFromGenericVersion(){
278 return (String) getMetadataValue(JsonPresentationFields.DERIVED_FROM_GENERIC_VERSION);
281 public void setDerivedFromGenericVersion(String derivedFromGenericVersion){
282 setMetadataValue(JsonPresentationFields.DERIVED_FROM_GENERIC_VERSION, derivedFromGenericVersion);
285 public Boolean isArchived() { return (Boolean) getMetadataValue(JsonPresentationFields.IS_ARCHIVED); }
287 public void setArchived(Boolean archived) { setMetadataValue(JsonPresentationFields.IS_ARCHIVED, archived); }
289 public Long getArchiveTime() {
290 Object archiveTime = getMetadataValue(JsonPresentationFields.ARCHIVE_TIME);
291 if (archiveTime instanceof Integer){
292 return new Long((Integer)getMetadataValue(JsonPresentationFields.ARCHIVE_TIME));
294 return (Long)archiveTime;
297 public void setArchiveTime(Long archiveTime) { setMetadataValue(JsonPresentationFields.ARCHIVE_TIME, archiveTime); }
299 public Boolean isVspArchived() { return (Boolean) getMetadataValue(JsonPresentationFields.IS_VSP_ARCHIVED); }
301 public void setVspArchived(Boolean vspArchived) { setMetadataValue(JsonPresentationFields.IS_VSP_ARCHIVED, vspArchived); }
303 public String getCreatorUserId() {
304 return creatorUserId;
307 public void setCreatorUserId(String creatorUserId) {
308 this.creatorUserId = creatorUserId;
311 public String getCreatorFullName() {
312 return creatorFullName;
315 public void setCreatorFullName(String creatorFullName) {
316 this.creatorFullName = creatorFullName;
319 public String getLastUpdaterUserId() {
320 return lastUpdaterUserId;
323 public void setLastUpdaterUserId(String lastUpdaterUserId) {
324 this.lastUpdaterUserId = lastUpdaterUserId;
327 public String getLastUpdaterFullName() {
328 return lastUpdaterFullName;
331 public void setLastUpdaterFullName(String lastUpdaterFullName) {
332 this.lastUpdaterFullName = lastUpdaterFullName;
335 public void generateUUID() {
336 String prevUUID = getUUID();
337 String version = getVersion();
338 if ((prevUUID == null && NodeTypeOperation.uuidNormativeNewVersion.matcher(version).matches()) || NodeTypeOperation.uuidNewVersion.matcher(version).matches()) {
339 UUID uuid = UUID.randomUUID();
340 setUUID(uuid.toString());
341 MDC.put(ILogConfiguration.MDC_SERVICE_INSTANCE_ID, uuid.toString());