WidgetCatalog class DB constraints
[portal.git] / ecomp-portal-widget-ms / widget-ms / src / main / java / org / onap / portalapp / widget / domain / WidgetCatalog.java
1 package org.onap.portalapp.widget.domain;
2
3 import java.util.Set;
4
5 import javax.persistence.CascadeType;
6 import javax.persistence.Column;
7 import javax.persistence.Entity;
8 import javax.persistence.FetchType;
9 import javax.persistence.GeneratedValue;
10 import javax.persistence.GenerationType;
11 import javax.persistence.Id;
12 import javax.persistence.JoinColumn;
13 import javax.persistence.JoinTable;
14 import javax.persistence.ManyToMany;
15 import javax.persistence.Table;
16 import javax.persistence.Transient;
17 import javax.validation.constraints.Digits;
18 import javax.validation.constraints.NotNull;
19 import javax.validation.constraints.Size;
20 import lombok.Getter;
21 import lombok.Setter;
22 import org.hibernate.validator.constraints.SafeHtml;
23
24
25 @Entity
26 @Table(name="EP_WIDGET_CATALOG")
27 @Getter
28 @Setter
29 public class WidgetCatalog{
30         
31         @Id
32         @Column(name = "widget_id")
33         @GeneratedValue(strategy=GenerationType.AUTO)
34         @Digits(integer = 11, fraction = 0)
35         private long id;
36         
37         @Column(name = "wdg_name")
38         @Size(max = 100)
39         @SafeHtml
40         @NotNull
41         private String name;
42         
43         @Column(name = "wdg_desc")
44         @Size(max = 200)
45         @SafeHtml
46         private String desc;    
47         
48         @Column(name = "wdg_file_loc")
49         @Size(max = 256)
50         @SafeHtml
51         @NotNull
52         private String fileLocation;
53         
54         @Column(name = "all_user_flag")
55         @Size(max = 1)
56         @SafeHtml
57         @NotNull
58         private String allowAllUser;
59         
60         @Column(name = "service_id")
61         @Digits(integer = 11, fraction = 0)
62         private Long serviceId;
63         
64         @Transient
65         private String sortOrder;
66
67         @Transient
68         private String statusCode;
69
70         @ManyToMany(fetch = FetchType.EAGER, cascade = {CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REFRESH})
71         @JoinTable(name = "ep_widget_catalog_role", 
72                         joinColumns = {@JoinColumn(name = "WIDGET_ID")},
73                         inverseJoinColumns = {@JoinColumn(name = "ROLE_ID")}
74         )
75         private Set<RoleApp> widgetRoles;
76
77         @Override
78         public String toString() {
79                 return "WidgetCatalog [id=" + id + ", name=" + name + ", desc=" + desc + ", fileLocation=" + fileLocation
80                                 + ", allowAllUser=" + allowAllUser + ", serviceId=" + serviceId + ", sortOrder=" + sortOrder
81                                 + ", statusCode=" + statusCode + ", widgetRoles=" + widgetRoles + "]";
82         }
83 }