re base code
[sdc.git] / catalog-dao / src / main / java / org / openecomp / sdc / be / resources / data / CapabilityData.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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=========================================================
19  */
20
21 package org.openecomp.sdc.be.resources.data;
22
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;
28
29 import java.lang.reflect.Type;
30 import java.util.HashMap;
31 import java.util.List;
32 import java.util.Map;
33
34 public class CapabilityData extends GraphNode {
35     private CapabilityDataDefinition capabilityDataDefiniton;
36
37         public CapabilityData() {
38                 this(new CapabilityDataDefinition());
39         }
40         
41         public CapabilityData(CapabilityDataDefinition capabilityDataDefiniton) { 
42             super(NodeTypeEnum.Capability);
43         this.capabilityDataDefiniton = capabilityDataDefiniton;
44         }
45
46         public CapabilityData(Map<String, Object> properties) {
47                 this();
48
49                 capabilityDataDefiniton.setUniqueId((String) properties.get(GraphPropertiesDictionary.UNIQUE_ID.getProperty()));
50                 capabilityDataDefiniton.setType((String) properties.get(GraphPropertiesDictionary.TYPE.getProperty()));
51
52                 Type listType = new TypeToken<List<String>>() {
53                 }.getType();
54                 List<String> validSourceTypesfromJson = getGson().fromJson(
55                                 (String) properties.get(GraphPropertiesDictionary.VALID_SOURCE_TYPES.getProperty()), listType);
56
57                 capabilityDataDefiniton.setValidSourceTypes(validSourceTypesfromJson);
58
59                 this.setCreationTime((Long) properties.get(GraphPropertiesDictionary.CREATION_DATE.getProperty()));
60
61                 this.setModificationTime((Long) properties.get(GraphPropertiesDictionary.LAST_UPDATE_DATE.getProperty()));
62
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()));
66         }
67
68         private Long creationTime;
69
70         private Long modificationTime;
71
72         @Override
73         public String getUniqueId() {
74                 return capabilityDataDefiniton.getUniqueId();
75         }
76         
77         
78         public CapabilityDataDefinition getCapabilityDataDefinition() {
79             return capabilityDataDefiniton;
80         }
81
82         public void setUniqueId(String uniqueId) {
83             capabilityDataDefiniton.setUniqueId(uniqueId);
84         }
85
86         public String getDescription() {
87                 return capabilityDataDefiniton.getDescription();
88         }
89
90         public void setDescription(String description) {
91             capabilityDataDefiniton.setDescription(description);
92         }
93
94         /**
95          * Get the type of the capability
96          * @return
97          */
98         public String getType() {
99                 return capabilityDataDefiniton.getType();
100         }
101
102         /**
103      * Set the type of the capability
104      * @return
105      */
106         public void setType(String type) {
107             capabilityDataDefiniton.setType(type);
108         }
109
110         public List<String> getValidSourceTypes() {
111                 return capabilityDataDefiniton.getValidSourceTypes();
112         }
113
114         public void setValidSourceTypes(List<String> validSourceTypes) {
115             capabilityDataDefiniton.setValidSourceTypes(validSourceTypes);
116         }
117
118         public Long getCreationTime() {
119                 return creationTime;
120         }
121
122         public void setCreationTime(Long creationTime) {
123                 this.creationTime = creationTime;
124         }
125
126         public Long getModificationTime() {
127                 return modificationTime;
128         }
129
130         public void setModificationTime(Long modificationTime) {
131                 this.modificationTime = modificationTime;
132         }
133
134         public String getMinOccurrences() {
135                 return capabilityDataDefiniton.getMinOccurrences();
136         }
137
138         public void setMinOccurrences(String minOccurrences) {
139                 if (minOccurrences != null) {
140                     capabilityDataDefiniton.setMinOccurrences(minOccurrences);
141                 }
142         }
143
144         public String getMaxOccurrences() {
145                 return capabilityDataDefiniton.getMaxOccurrences();
146         }
147
148         public void setMaxOccurrences(String maxOccurrences) {
149                 if (maxOccurrences != null) {
150                     capabilityDataDefiniton.setMaxOccurrences(maxOccurrences);
151                 }
152         }
153
154         @Override
155         public Map<String, Object> toGraphMap() {
156
157                 Map<String, Object> map = new HashMap<>();
158
159                 addIfExists(map, GraphPropertiesDictionary.UNIQUE_ID, capabilityDataDefiniton.getUniqueId());
160
161                 addIfExists(map, GraphPropertiesDictionary.VALID_SOURCE_TYPES, capabilityDataDefiniton.getValidSourceTypes());
162                 
163                 addIfExists(map, GraphPropertiesDictionary.TYPE, capabilityDataDefiniton.getType());
164
165                 addIfExists(map, GraphPropertiesDictionary.CREATION_DATE, creationTime);
166
167                 addIfExists(map, GraphPropertiesDictionary.LAST_UPDATE_DATE, modificationTime);
168
169                 addIfExists(map, GraphPropertiesDictionary.DESCRIPTION, capabilityDataDefiniton.getDescription());
170                 addIfExists(map, GraphPropertiesDictionary.MIN_OCCURRENCES, capabilityDataDefiniton.getMinOccurrences());
171                 addIfExists(map, GraphPropertiesDictionary.MAX_OCCURRENCES, capabilityDataDefiniton.getMaxOccurrences());
172
173                 return map;
174         }
175
176         @Override
177         public String toString() {
178                 return "CapabilityData [capabilityDataDefiniton=" + capabilityDataDefiniton
179                                 + ", creationTime=" + creationTime + ", modificationTime=" + modificationTime + "]";
180         }
181
182 }