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=========================================================
20 package org.openecomp.sdc.be.resources.data;
22 import com.google.gson.reflect.TypeToken;
23 import java.lang.reflect.Type;
24 import java.util.HashMap;
25 import java.util.List;
27 import org.openecomp.sdc.be.dao.graph.datatype.GraphNode;
28 import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary;
29 import org.openecomp.sdc.be.datatypes.elements.CapabilityDataDefinition;
30 import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
32 public class CapabilityData extends GraphNode {
34 private CapabilityDataDefinition capabilityDataDefiniton;
35 private Long creationTime;
36 private Long modificationTime;
38 public CapabilityData() {
39 this(new CapabilityDataDefinition());
42 public CapabilityData(CapabilityDataDefinition capabilityDataDefiniton) {
43 super(NodeTypeEnum.Capability);
44 this.capabilityDataDefiniton = capabilityDataDefiniton;
46 public CapabilityData(Map<String, Object> properties) {
48 capabilityDataDefiniton.setUniqueId((String) properties.get(GraphPropertiesDictionary.UNIQUE_ID.getProperty()));
49 capabilityDataDefiniton.setType((String) properties.get(GraphPropertiesDictionary.TYPE.getProperty()));
50 Type listType = new TypeToken<List<String>>() {
52 List<String> validSourceTypesfromJson = getGson()
53 .fromJson((String) properties.get(GraphPropertiesDictionary.VALID_SOURCE_TYPES.getProperty()), listType);
54 capabilityDataDefiniton.setValidSourceTypes(validSourceTypesfromJson);
55 this.setCreationTime((Long) properties.get(GraphPropertiesDictionary.CREATION_DATE.getProperty()));
56 this.setModificationTime((Long) properties.get(GraphPropertiesDictionary.LAST_UPDATE_DATE.getProperty()));
57 capabilityDataDefiniton.setDescription((String) properties.get(GraphPropertiesDictionary.DESCRIPTION.getProperty()));
58 capabilityDataDefiniton.setMinOccurrences((String) properties.get(GraphPropertiesDictionary.MIN_OCCURRENCES.getProperty()));
59 capabilityDataDefiniton.setMaxOccurrences((String) properties.get(GraphPropertiesDictionary.MAX_OCCURRENCES.getProperty()));
63 public String getUniqueId() {
64 return capabilityDataDefiniton.getUniqueId();
67 public void setUniqueId(String uniqueId) {
68 capabilityDataDefiniton.setUniqueId(uniqueId);
71 public CapabilityDataDefinition getCapabilityDataDefinition() {
72 return capabilityDataDefiniton;
75 public String getDescription() {
76 return capabilityDataDefiniton.getDescription();
79 public void setDescription(String description) {
80 capabilityDataDefiniton.setDescription(description);
84 * Get the type of the capability
88 public String getType() {
89 return capabilityDataDefiniton.getType();
93 * Set the type of the capability
97 public void setType(String type) {
98 capabilityDataDefiniton.setType(type);
101 public List<String> getValidSourceTypes() {
102 return capabilityDataDefiniton.getValidSourceTypes();
105 public void setValidSourceTypes(List<String> validSourceTypes) {
106 capabilityDataDefiniton.setValidSourceTypes(validSourceTypes);
109 public Long getCreationTime() {
113 public void setCreationTime(Long creationTime) {
114 this.creationTime = creationTime;
117 public Long getModificationTime() {
118 return modificationTime;
121 public void setModificationTime(Long modificationTime) {
122 this.modificationTime = modificationTime;
125 public String getMinOccurrences() {
126 return capabilityDataDefiniton.getMinOccurrences();
129 public void setMinOccurrences(String minOccurrences) {
130 if (minOccurrences != null) {
131 capabilityDataDefiniton.setMinOccurrences(minOccurrences);
135 public String getMaxOccurrences() {
136 return capabilityDataDefiniton.getMaxOccurrences();
139 public void setMaxOccurrences(String maxOccurrences) {
140 if (maxOccurrences != null) {
141 capabilityDataDefiniton.setMaxOccurrences(maxOccurrences);
146 public Map<String, Object> toGraphMap() {
147 Map<String, Object> map = new HashMap<>();
148 addIfExists(map, GraphPropertiesDictionary.UNIQUE_ID, capabilityDataDefiniton.getUniqueId());
149 addIfExists(map, GraphPropertiesDictionary.VALID_SOURCE_TYPES, capabilityDataDefiniton.getValidSourceTypes());
150 addIfExists(map, GraphPropertiesDictionary.TYPE, capabilityDataDefiniton.getType());
151 addIfExists(map, GraphPropertiesDictionary.CREATION_DATE, creationTime);
152 addIfExists(map, GraphPropertiesDictionary.LAST_UPDATE_DATE, modificationTime);
153 addIfExists(map, GraphPropertiesDictionary.DESCRIPTION, capabilityDataDefiniton.getDescription());
154 addIfExists(map, GraphPropertiesDictionary.MIN_OCCURRENCES, capabilityDataDefiniton.getMinOccurrences());
155 addIfExists(map, GraphPropertiesDictionary.MAX_OCCURRENCES, capabilityDataDefiniton.getMaxOccurrences());
160 public String toString() {
161 return "CapabilityData [capabilityDataDefiniton=" + capabilityDataDefiniton + ", creationTime=" + creationTime + ", modificationTime="
162 + modificationTime + "]";