re base code
[sdc.git] / catalog-dao / src / main / java / org / openecomp / sdc / be / resources / data / AnnotationTypeData.java
1 package org.openecomp.sdc.be.resources.data;
2
3 import org.openecomp.sdc.be.dao.graph.datatype.GraphNode;
4 import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary;
5 import org.openecomp.sdc.be.datatypes.elements.AnnotationTypeDataDefinition;
6 import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
7
8 import java.util.HashMap;
9 import java.util.Map;
10
11 public class AnnotationTypeData extends GraphNode {
12
13     private AnnotationTypeDataDefinition annotationTypeDataDefinition;
14
15     public AnnotationTypeData() {
16         super(NodeTypeEnum.AnnotationType);
17         annotationTypeDataDefinition = new AnnotationTypeDataDefinition();
18     }
19
20     public AnnotationTypeData(AnnotationTypeDataDefinition annotationTypeDataDefinition) {
21         super(NodeTypeEnum.AnnotationType);
22         this.annotationTypeDataDefinition = annotationTypeDataDefinition;
23     }
24
25     public AnnotationTypeData(Map<String, Object> properties) {
26         this();
27         annotationTypeDataDefinition
28                 .setUniqueId((String) properties.get(GraphPropertiesDictionary.UNIQUE_ID.getProperty()));
29         annotationTypeDataDefinition.setType((String) properties.get(GraphPropertiesDictionary.TYPE.getProperty()));
30         annotationTypeDataDefinition
31                 .setDescription((String) properties.get(GraphPropertiesDictionary.DESCRIPTION.getProperty()));
32         annotationTypeDataDefinition.setHighestVersion(
33                 (boolean) properties.get(GraphPropertiesDictionary.IS_HIGHEST_VERSION.getProperty()));
34         annotationTypeDataDefinition.setVersion((String) properties.get(GraphPropertiesDictionary.VERSION.getProperty()));
35         annotationTypeDataDefinition
36                 .setCreationTime((Long) properties.get(GraphPropertiesDictionary.CREATION_DATE.getProperty()));
37         annotationTypeDataDefinition
38                 .setModificationTime((Long) properties.get(GraphPropertiesDictionary.LAST_UPDATE_DATE.getProperty()));
39     }
40
41     @Override
42     public String getUniqueId() {
43         return annotationTypeDataDefinition.getUniqueId();
44     }
45
46     @Override
47     public Map<String, Object> toGraphMap() {
48         Map<String, Object> map = new HashMap<>();
49         addIfExists(map, GraphPropertiesDictionary.UNIQUE_ID, annotationTypeDataDefinition.getUniqueId());
50         addIfExists(map, GraphPropertiesDictionary.TYPE, annotationTypeDataDefinition.getType());
51         addIfExists(map, GraphPropertiesDictionary.VERSION, annotationTypeDataDefinition.getVersion());
52         addIfExists(map, GraphPropertiesDictionary.IS_HIGHEST_VERSION, annotationTypeDataDefinition.isHighestVersion());
53         addIfExists(map, GraphPropertiesDictionary.DESCRIPTION, annotationTypeDataDefinition.getDescription());
54         addIfExists(map, GraphPropertiesDictionary.CREATION_DATE, annotationTypeDataDefinition.getCreationTime());
55         addIfExists(map, GraphPropertiesDictionary.LAST_UPDATE_DATE, annotationTypeDataDefinition.getModificationTime());
56         return map;
57     }
58
59     public void setInitialCreationProperties(String uniqueId) {
60         annotationTypeDataDefinition.setUniqueId(uniqueId);
61         Long creationDate = annotationTypeDataDefinition.getCreationTime();
62         if (creationDate == null) {
63             creationDate = System.currentTimeMillis();
64         }
65         annotationTypeDataDefinition.setCreationTime(creationDate);
66         annotationTypeDataDefinition.setModificationTime(creationDate);
67     }
68
69     public void setUpdateProperties(AnnotationTypeDataDefinition originalDefinition) {
70         annotationTypeDataDefinition.setUniqueId(originalDefinition.getUniqueId());
71         annotationTypeDataDefinition.setCreationTime(originalDefinition.getCreationTime());
72         annotationTypeDataDefinition.setModificationTime(System.currentTimeMillis());
73     }
74
75     public AnnotationTypeDataDefinition getAnnotationTypeDataDefinition() {
76         return annotationTypeDataDefinition;
77     }
78
79     @Override
80     public String toString() {
81         return "AnnotationTypeData [annotationTypeDataDefinition=" + annotationTypeDataDefinition + "]";
82     }
83
84 }