Ecomp DTO up
[portal.git] / portal-BE / src / main / java / org / onap / portal / domain / dto / ecomp / EPUserApp.java
1 /*
2  * ============LICENSE_START==========================================
3  * ONAP Portal
4  * ===================================================================
5  * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
6  * ===================================================================
7  * Modifications Copyright (c) 2019 Samsung
8  * ===================================================================
9  *
10  * Unless otherwise specified, all software contained herein is licensed
11  * under the Apache License, Version 2.0 (the "License");
12  * you may not use this software except in compliance with the License.
13  * You may obtain a copy of the License at
14  *
15  *             http://www.apache.org/licenses/LICENSE-2.0
16  *
17  * Unless required by applicable law or agreed to in writing, software
18  * distributed under the License is distributed on an "AS IS" BASIS,
19  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20  * See the License for the specific language governing permissions and
21  * limitations under the License.
22  *
23  * Unless otherwise specified, all documentation contained herein is licensed
24  * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
25  * you may not use this documentation except in compliance with the License.
26  * You may obtain a copy of the License at
27  *
28  *             https://creativecommons.org/licenses/by/4.0/
29  *
30  * Unless required by applicable law or agreed to in writing, documentation
31  * distributed under the License is distributed on an "AS IS" BASIS,
32  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
33  * See the License for the specific language governing permissions and
34  * limitations under the License.
35  *
36  * ============LICENSE_END============================================
37  *
38  *
39  */
40
41 package org.onap.portal.domain.dto.ecomp;
42
43 import javax.validation.Valid;
44 import lombok.AllArgsConstructor;
45 import lombok.Getter;
46 import lombok.NoArgsConstructor;
47 import lombok.Setter;
48 import org.onap.portal.domain.dto.DomainVo;
49
50 @Getter
51 @Setter
52 @NoArgsConstructor
53 @AllArgsConstructor
54 public class EPUserApp extends DomainVo implements java.io.Serializable, Comparable {
55
56         private static final long serialVersionUID = 1L;
57         
58         private Long userId;
59         @Valid
60         private EPApp app;
61         @Valid
62         private EPRole role;
63         private Integer priority;
64         
65         public Long getAppId() {
66                 return this.getApp().getId();
67         }
68         
69         public Long getRoleId() {
70                 return (role == null) ? null : role.getId();
71         }
72         
73         public Long getAppRoleId() {
74                 return this.role.getAppRoleId();
75         }
76                 
77         @Override 
78         public String toString() {
79                 return "[u: "+getUserId()+"; a: "+getAppId()+", r: "+getRoleId()+"; appRoleId: "+getAppRoleId()+"]";
80         }
81
82         public Integer getPriority() {
83                 return (this.priority == null) ? 1 : priority;
84         }
85
86
87         @Override
88         public boolean equals(Object other) {
89                 if ((this == other))
90                         return true;
91                 if ((other == null))
92                         return false;
93                 if (!(other instanceof EPUserApp))
94                         return false;
95                 EPUserApp castOther = (EPUserApp) other;
96
97                 return (otherUserIdIsSameAsThisUserId(castOther))
98                                 && (otherAppIdIsSameAsThis(castOther))
99                                 && (otherRoleIsSameAsThis(castOther))
100                                 && (otherPriorityIsSameAsThis(castOther));
101         }
102
103         public int hashCode() {
104                 int result = 17;
105
106                 result = 37 * result + (this.getUserId()==null ? 0 : this.getUserId().intValue());
107                 result = 37 * result + (this.getApp().getId()==null ? 0 : this.getApp().getId().intValue());
108                 result = 37 * result + (this.getRole().getId()==null ? 0 : this.getRole().getId().intValue());
109                 result = 37 * result + (this.priority==null ? 0 : this.priority);
110                 return result;
111         }
112
113         public int compareTo(Object other){
114             EPUserApp castOther = (EPUserApp) other;
115
116             Long c1 = (this.getUserId()==null ? 0 : this.getUserId()) + (this.getApp()==null||this.getApp().getId()==null ? 0 : this.getApp().getId()) + (this.getRole()==null||this.getRole().getId()==null ? 0 : this.getRole().getId()) + (this.priority==null ? 0 : this.priority);
117             Long c2 = (castOther.getUserId()==null ? 0 : castOther.getUserId()) + (castOther.getApp()==null||castOther.getApp().getId()==null ? 0 : castOther.getApp().getId()) + (castOther.getRole()==null||castOther.getRole().getId()==null ? 0 : castOther.getRole().getId()) + (castOther.priority==null ? 0 : castOther.priority);
118
119             return c1.compareTo(c2);
120         }
121         private boolean otherPriorityIsSameAsThis(EPUserApp other){
122                 return (this.priority==null && other.getPriority()==null) || this.getPriority().equals(other.getPriority());
123         }
124
125         private boolean otherRoleIsSameAsThis(EPUserApp other){
126                 return this.getRole().getId().equals(other.getRole().getId());
127         }
128
129         private boolean otherAppIdIsSameAsThis(EPUserApp other){
130                 return this.getApp().getId().equals(other.getApp().getId());
131         }
132
133         private boolean otherUserIdIsSameAsThisUserId(EPUserApp other){
134                 return this.getUserId().equals(other.getUserId());
135         }
136 }