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.resources.data;
23 import com.google.gson.reflect.TypeToken;
24 import org.openecomp.sdc.be.dao.graph.datatype.GraphNode;
25 import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary;
26 import org.openecomp.sdc.be.datatypes.elements.CapabilityDataDefinition;
27 import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
29 import java.lang.reflect.Type;
30 import java.util.HashMap;
31 import java.util.List;
34 public class CapabilityData extends GraphNode {
35 private CapabilityDataDefinition capabilityDataDefiniton;
37 public CapabilityData() {
38 this(new CapabilityDataDefinition());
41 public CapabilityData(CapabilityDataDefinition capabilityDataDefiniton) {
42 super(NodeTypeEnum.Capability);
43 this.capabilityDataDefiniton = capabilityDataDefiniton;
46 public CapabilityData(Map<String, Object> properties) {
49 capabilityDataDefiniton.setUniqueId((String) properties.get(GraphPropertiesDictionary.UNIQUE_ID.getProperty()));
50 capabilityDataDefiniton.setType((String) properties.get(GraphPropertiesDictionary.TYPE.getProperty()));
52 Type listType = new TypeToken<List<String>>() {
54 List<String> validSourceTypesfromJson = getGson().fromJson(
55 (String) properties.get(GraphPropertiesDictionary.VALID_SOURCE_TYPES.getProperty()), listType);
57 capabilityDataDefiniton.setValidSourceTypes(validSourceTypesfromJson);
59 this.setCreationTime((Long) properties.get(GraphPropertiesDictionary.CREATION_DATE.getProperty()));
61 this.setModificationTime((Long) properties.get(GraphPropertiesDictionary.LAST_UPDATE_DATE.getProperty()));
63 capabilityDataDefiniton.setDescription((String) properties.get(GraphPropertiesDictionary.DESCRIPTION.getProperty()));
64 capabilityDataDefiniton.setMinOccurrences((String) properties.get(GraphPropertiesDictionary.MIN_OCCURRENCES.getProperty()));
65 capabilityDataDefiniton.setMaxOccurrences((String) properties.get(GraphPropertiesDictionary.MAX_OCCURRENCES.getProperty()));
68 private Long creationTime;
70 private Long modificationTime;
73 public String getUniqueId() {
74 return capabilityDataDefiniton.getUniqueId();
78 public CapabilityDataDefinition getCapabilityDataDefinition() {
79 return capabilityDataDefiniton;
82 public void setUniqueId(String uniqueId) {
83 capabilityDataDefiniton.setUniqueId(uniqueId);
86 public String getDescription() {
87 return capabilityDataDefiniton.getDescription();
90 public void setDescription(String description) {
91 capabilityDataDefiniton.setDescription(description);
95 * Get the type of the capability
98 public String getType() {
99 return capabilityDataDefiniton.getType();
103 * Set the type of the capability
106 public void setType(String type) {
107 capabilityDataDefiniton.setType(type);
110 public List<String> getValidSourceTypes() {
111 return capabilityDataDefiniton.getValidSourceTypes();
114 public void setValidSourceTypes(List<String> validSourceTypes) {
115 capabilityDataDefiniton.setValidSourceTypes(validSourceTypes);
118 public Long getCreationTime() {
122 public void setCreationTime(Long creationTime) {
123 this.creationTime = creationTime;
126 public Long getModificationTime() {
127 return modificationTime;
130 public void setModificationTime(Long modificationTime) {
131 this.modificationTime = modificationTime;
134 public String getMinOccurrences() {
135 return capabilityDataDefiniton.getMinOccurrences();
138 public void setMinOccurrences(String minOccurrences) {
139 if (minOccurrences != null) {
140 capabilityDataDefiniton.setMinOccurrences(minOccurrences);
144 public String getMaxOccurrences() {
145 return capabilityDataDefiniton.getMaxOccurrences();
148 public void setMaxOccurrences(String maxOccurrences) {
149 if (maxOccurrences != null) {
150 capabilityDataDefiniton.setMaxOccurrences(maxOccurrences);
155 public Map<String, Object> toGraphMap() {
157 Map<String, Object> map = new HashMap<>();
159 addIfExists(map, GraphPropertiesDictionary.UNIQUE_ID, capabilityDataDefiniton.getUniqueId());
161 addIfExists(map, GraphPropertiesDictionary.VALID_SOURCE_TYPES, capabilityDataDefiniton.getValidSourceTypes());
163 addIfExists(map, GraphPropertiesDictionary.TYPE, capabilityDataDefiniton.getType());
165 addIfExists(map, GraphPropertiesDictionary.CREATION_DATE, creationTime);
167 addIfExists(map, GraphPropertiesDictionary.LAST_UPDATE_DATE, modificationTime);
169 addIfExists(map, GraphPropertiesDictionary.DESCRIPTION, capabilityDataDefiniton.getDescription());
170 addIfExists(map, GraphPropertiesDictionary.MIN_OCCURRENCES, capabilityDataDefiniton.getMinOccurrences());
171 addIfExists(map, GraphPropertiesDictionary.MAX_OCCURRENCES, capabilityDataDefiniton.getMaxOccurrences());
177 public String toString() {
178 return "CapabilityData [capabilityDataDefiniton=" + capabilityDataDefiniton
179 + ", creationTime=" + creationTime + ", modificationTime=" + modificationTime + "]";