Reformat catalog-dao
[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 package org.openecomp.sdc.be.resources.data;
21
22 import com.google.gson.reflect.TypeToken;
23 import java.lang.reflect.Type;
24 import java.util.HashMap;
25 import java.util.List;
26 import java.util.Map;
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;
31
32 public class CapabilityData extends GraphNode {
33
34     private CapabilityDataDefinition capabilityDataDefiniton;
35     private Long creationTime;
36     private Long modificationTime;
37
38     public CapabilityData() {
39         this(new CapabilityDataDefinition());
40     }
41
42     public CapabilityData(CapabilityDataDefinition capabilityDataDefiniton) {
43         super(NodeTypeEnum.Capability);
44         this.capabilityDataDefiniton = capabilityDataDefiniton;
45     }
46     public CapabilityData(Map<String, Object> properties) {
47         this();
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>>() {
51         }.getType();
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()));
60     }
61
62     @Override
63     public String getUniqueId() {
64         return capabilityDataDefiniton.getUniqueId();
65     }
66
67     public void setUniqueId(String uniqueId) {
68         capabilityDataDefiniton.setUniqueId(uniqueId);
69     }
70
71     public CapabilityDataDefinition getCapabilityDataDefinition() {
72         return capabilityDataDefiniton;
73     }
74
75     public String getDescription() {
76         return capabilityDataDefiniton.getDescription();
77     }
78
79     public void setDescription(String description) {
80         capabilityDataDefiniton.setDescription(description);
81     }
82
83     /**
84      * Get the type of the capability
85      *
86      * @return
87      */
88     public String getType() {
89         return capabilityDataDefiniton.getType();
90     }
91
92     /**
93      * Set the type of the capability
94      *
95      * @return
96      */
97     public void setType(String type) {
98         capabilityDataDefiniton.setType(type);
99     }
100
101     public List<String> getValidSourceTypes() {
102         return capabilityDataDefiniton.getValidSourceTypes();
103     }
104
105     public void setValidSourceTypes(List<String> validSourceTypes) {
106         capabilityDataDefiniton.setValidSourceTypes(validSourceTypes);
107     }
108
109     public Long getCreationTime() {
110         return creationTime;
111     }
112
113     public void setCreationTime(Long creationTime) {
114         this.creationTime = creationTime;
115     }
116
117     public Long getModificationTime() {
118         return modificationTime;
119     }
120
121     public void setModificationTime(Long modificationTime) {
122         this.modificationTime = modificationTime;
123     }
124
125     public String getMinOccurrences() {
126         return capabilityDataDefiniton.getMinOccurrences();
127     }
128
129     public void setMinOccurrences(String minOccurrences) {
130         if (minOccurrences != null) {
131             capabilityDataDefiniton.setMinOccurrences(minOccurrences);
132         }
133     }
134
135     public String getMaxOccurrences() {
136         return capabilityDataDefiniton.getMaxOccurrences();
137     }
138
139     public void setMaxOccurrences(String maxOccurrences) {
140         if (maxOccurrences != null) {
141             capabilityDataDefiniton.setMaxOccurrences(maxOccurrences);
142         }
143     }
144
145     @Override
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());
156         return map;
157     }
158
159     @Override
160     public String toString() {
161         return "CapabilityData [capabilityDataDefiniton=" + capabilityDataDefiniton + ", creationTime=" + creationTime + ", modificationTime="
162             + modificationTime + "]";
163     }
164 }