Merge "VES Heartbeat and Software Management Feature"
[oam/tr069-adapter.git] / ves-agent / src / main / java / org / commscope / tr069adapter / vesagent / entity / DeviceDataEntity.java
1 package org.commscope.tr069adapter.vesagent.entity;\r
2 \r
3 import com.google.gson.Gson;\r
4 \r
5 import java.util.Date;\r
6 import java.util.Map;\r
7 \r
8 import javax.persistence.Column;\r
9 import javax.persistence.Entity;\r
10 import javax.persistence.GeneratedValue;\r
11 import javax.persistence.GenerationType;\r
12 import javax.persistence.Id;\r
13 import javax.persistence.Table;\r
14 import javax.persistence.Transient;\r
15 import javax.persistence.UniqueConstraint;\r
16 \r
17 /**\r
18  * \r
19  * @version 1.0\r
20  * @since May 21, 2020\r
21  * @author Prashant Kumar\r
22  */\r
23 \r
24 @Entity\r
25 @Table(name = "VES_DEVICE_DATA",\r
26     uniqueConstraints = @UniqueConstraint(columnNames = {"DEVICE_ID", "ATTR_GROUP"}))\r
27 public class DeviceDataEntity {\r
28 \r
29   @Id\r
30   @Column(name = "ID")\r
31   @GeneratedValue(strategy = GenerationType.AUTO)\r
32   private Long id;\r
33 \r
34   @Column(name = "DEVICE_ID", length = 30)\r
35   private String deviceId;\r
36 \r
37   @Column(name = "ENODEB_NAME", length = 100)\r
38   private String eNodeBName;\r
39 \r
40   @Column(name = "OUI", length = 30)\r
41   private String oui;\r
42 \r
43   @Column(name = "PRODUCT_CLASS", length = 100)\r
44   private String productClass;\r
45 \r
46   @Column(name = "ATTR_JSON", length = 4000)\r
47   private String attrJson;\r
48 \r
49   @Column(name = "ATTR_GROUP", length = 255)\r
50   private String attrGroup;\r
51 \r
52   @Column(name = "LAST_UPDATED_TIME")\r
53   private Date lastUpdateTime = new Date();\r
54 \r
55   public Long getId() {\r
56     return id;\r
57   }\r
58 \r
59   public void setId(Long id) {\r
60     this.id = id;\r
61   }\r
62 \r
63   public String getDeviceId() {\r
64     return deviceId;\r
65   }\r
66 \r
67   public void setDeviceId(String deviceId) {\r
68     this.deviceId = deviceId;\r
69   }\r
70 \r
71   public String geteNodeBName() {\r
72     return eNodeBName;\r
73   }\r
74 \r
75   public void seteNodeBName(String eNodeBName) {\r
76     this.eNodeBName = eNodeBName;\r
77   }\r
78 \r
79   public String getOui() {\r
80     return oui;\r
81   }\r
82 \r
83   public void setOui(String oui) {\r
84     this.oui = oui;\r
85   }\r
86 \r
87   public String getProductClass() {\r
88     return productClass;\r
89   }\r
90 \r
91   public void setProductClass(String productClass) {\r
92     this.productClass = productClass;\r
93   }\r
94 \r
95   public String getAttrJson() {\r
96     return attrJson;\r
97   }\r
98 \r
99   public void setAttrJson(String attrJson) {\r
100     this.attrJson = attrJson;\r
101   }\r
102 \r
103   public String getAttrGroup() {\r
104     return attrGroup;\r
105   }\r
106 \r
107   public void setAttrGroup(String attrGroup) {\r
108     this.attrGroup = attrGroup;\r
109   }\r
110 \r
111   public Date getLastUpdateTime() {\r
112     return lastUpdateTime;\r
113   }\r
114 \r
115   public void setLastUpdateTime(Date lastUpdateTime) {\r
116     this.lastUpdateTime = lastUpdateTime;\r
117   }\r
118 \r
119   @Transient\r
120   public void setAttributesMap(Map<String, String> attributesMap) {\r
121     if (null == attributesMap || attributesMap.isEmpty()) {\r
122       return;\r
123     }\r
124 \r
125     this.attrJson = new Gson().toJson(attributesMap);\r
126 \r
127   }\r
128 \r
129   @Transient\r
130   public Map<String, String> getAttributesMap() {\r
131     Map<String, String> attributesMap = null;\r
132     if (null != this.attrJson && !this.attrJson.isEmpty()) {\r
133       attributesMap = new Gson().fromJson(this.attrJson, Map.class);\r
134     }\r
135     return attributesMap;\r
136   }\r
137 }\r