ExternalAccessRolesController 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.db.DomainVo;
49 import org.onap.portal.domain.db.fn.FnApp;
50 import org.onap.portal.domain.db.fn.FnRole;
51
52 @Getter
53 @Setter
54 @NoArgsConstructor
55 @AllArgsConstructor
56 public class EPUserApp extends DomainVo implements java.io.Serializable, Comparable {
57
58         private static final long serialVersionUID = 1L;
59         
60         private Long userId;
61         @Valid
62         private FnApp app;
63         @Valid
64         private FnRole role;
65
66         private Integer priority;
67
68         public EPUserApp(final Long userId, final FnApp app, final FnRole role) {
69                 this.userId = userId;
70                 this.app = app;
71                 this.role = role;
72         }
73
74         public Long getAppId() {
75                 return this.getApp().getId();
76         }
77         
78         public Long getRoleId() {
79                 return (role == null) ? null : role.getId();
80         }
81         
82         public Long getAppRoleId() {
83                 return this.role.getAppRoleId();
84         }
85                 
86         @Override 
87         public String toString() {
88                 return "[u: "+getUserId()+"; a: "+getAppId()+", r: "+getRoleId()+"; appRoleId: "+getAppRoleId()+"]";
89         }
90
91         public Integer getPriority() {
92                 return (this.priority == null) ? 1 : priority;
93         }
94
95
96         @Override
97         public boolean equals(Object other) {
98                 if ((this == other))
99                         return true;
100                 if ((other == null))
101                         return false;
102                 if (!(other instanceof EPUserApp))
103                         return false;
104                 EPUserApp castOther = (EPUserApp) other;
105
106                 return (otherUserIdIsSameAsThisUserId(castOther))
107                                 && (otherAppIdIsSameAsThis(castOther))
108                                 && (otherRoleIsSameAsThis(castOther))
109                                 && (otherPriorityIsSameAsThis(castOther));
110         }
111
112         public int hashCode() {
113                 int result = 17;
114
115                 result = 37 * result + (this.getUserId()==null ? 0 : this.getUserId().intValue());
116                 result = 37 * result + (this.getApp().getId()==null ? 0 : this.getApp().getId().intValue());
117                 result = 37 * result + (this.getRole().getId()==null ? 0 : this.getRole().getId().intValue());
118                 result = 37 * result + (this.priority==null ? 0 : this.priority);
119                 return result;
120         }
121
122         public int compareTo(Object other){
123             EPUserApp castOther = (EPUserApp) other;
124
125             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);
126             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);
127
128             return c1.compareTo(c2);
129         }
130         private boolean otherPriorityIsSameAsThis(EPUserApp other){
131                 return (this.priority==null && other.getPriority()==null) || this.getPriority().equals(other.getPriority());
132         }
133
134         private boolean otherRoleIsSameAsThis(EPUserApp other){
135                 return this.getRole().getId().equals(other.getRole().getId());
136         }
137
138         private boolean otherAppIdIsSameAsThis(EPUserApp other){
139                 return this.getApp().getId().equals(other.getApp().getId());
140         }
141
142         private boolean otherUserIdIsSameAsThisUserId(EPUserApp other){
143                 return this.getUserId().equals(other.getUserId());
144         }
145 }